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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gcc.c (warn_std): Delete.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* config.gcc: Add support for ip2k.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* explow.c (probe_stack_range): Use gen_rtx_fmt_ee.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* expr.c (vector_mode_valid_p): New.

	* expr.h: Add vector_mode_valid_p.

	* defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* cpptrad.c (_cpp_replacement_text_len): initialize len.

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

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

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

	* except.c (ehl_free): Remove.

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

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

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

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

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

	* Makefile.in (QMTEST_DIR): Simplify definition.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* doc/md.texi: Ditto.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* dwarfout.c: Include function.h.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* diagnostic.c (output_format): Fix thinko.

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

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

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

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

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

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

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

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

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

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

	* i386.c (ix86_expand_movstr):  Fix pasto.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* doc/gty.texi: Small updates.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* mips.c (embedded_pic_fnaddr_reg): Fix typo.

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

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

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

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

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

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

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

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

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

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

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

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

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

	* cfgbuild.c: Update copyright years.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fix cfi generation for SH[1-4]:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* diagnostic.c (diagnostic_build_prefix): Fix initialization.

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

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

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

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

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

	* diagnostic.c (diagnostic_build_prefix): Tidy.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* Makefile.in: Remove missed halfpic bits.

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

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

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

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

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

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

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

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

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

	* toplev.h (report_error_function): Remove.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Merge from pch-branch:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* ggc-callbacks.c: Remove.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* varasm.c (compare_constant): Fix typo.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure.in (HAVE_AS_TLS): Add alpha tests.
	* configure: Rebuild.
	* config/alpha/alpha.c (TARGET_AS_TLS): New.
	(alpha_tls_size, alpha_tls_size_string): New.
	(overide_options): Set it.  Always install machine_status hooks.
	(input_operand): Accept got tls predicates.
	(local_symbol_p): Merge into ...
	(local_symbolic_operand): ... here.  Reject tls symbols.
	(global_symbolic_operand): Likewise.
	(tls_symbolic_operand_1, dtp16_symbolic_operand): New.
	(dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
	(tp16_symbolic_operand, tp32_symbolic_operand): New.
	(gottp_symbolic_operand, tls_symbolic_operand_type): New.
	(alpha_encode_section_info): Handle TLS symbols.
	(alpha_strip_name_encoding): Likewise.
	(alpha_legitimate_address_p): Likewise.
	(alpha_legitimize_address): Likewise.
	(alpha_expand_mov): Early exit to avoid nop moves.
	(struct machine_function): Move from unicosmk.h.  Add some_ld_name.
	(alpha_init_machine_status, alpha_mark_machine_status,
	alpha_free_machine_status): Always define.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
	(print_operand, print_operand_address): Add TLS relocs.
	* config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
	(MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
	(TARGET_SWITCHES): Add -mtls-kernel.
	(alpha_tls_size, alpha_tls_size_string): New.
	(TARGET_OPTIONS): Add -mtls-size=.
	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
	REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
	(ASM_OUTPUT_LABELREF): Skip %.
	(PRINT_OPERAND_PUNCT_VALID_P): Add &.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
	UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
	UNSPEC_TP, UNSPECV_SET_TP): New.
	(adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
	adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
	set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
	movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
	(call_value_osf_2_er): Accept anything as op4.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.

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

	* cppinit.c (append_include_chain): Always pay attention to
	cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
	marker on argument.

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

	* target.h: Fix formatting.
	* timevar.h: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* toplev.h: Likewise.
	* tree.c: Likewise.
	* tree-dump.h: Likewise.
	* tree.h: Likewise.
	* tree-inline.h: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind.h: Likewise.
	* unwind-sjlj.c: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.
	* vmsdbg.h: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.h: Likewise.

2002-05-31  Igor Shevlyakov <igor@microunity.com>

	* expr.c (compare_from_rtx): Generate comparison between op0 and op1
	rather than cc0 and 0 in a case when HAVE_cc0 is not defined.

2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>

	* gcc.c (cpp_unique_options): Remove "-d" options.
	(cpp_debug_options): New spec string.
	(default_compilers): Use it.
	* objc/lang-specs.h: Likewise.

2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>

	* gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
	BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
	* gcc/mklibgcc.in: Likewise.
	* gcc/config/arc/t-arc: Likewise.
	* gcc/configure.in: Likewise.
	* gcc/configure: Regenerate.

2002-05-31  Stan Shebs  <shebs@apple.com>
	    Turly O'Connor  <turly@apple.com>

	* c-decl.c (struct binding_level): Change int field n_incomplete
	to tree list incomplete_list.
	(clear_binding_level): Init field with NULL.
	(pushdecl): Add incomplete type to list.
	(mark_binding_level): Mark the incomplete list.
	(finish_struct): Scan the incomplete list for types instead
	of all decls in the current binding level.

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

	* pa.c (output_millicode_call): Add missing '%' characters.
	(output_call): Likewise.

2002-05-31  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.

2002-05-31  Alan Lehotsky <apl@alum.mit.edu>

	* varasm.c (mark_constant_pool): Walk epilogue delay list
	checking the insn, not the chain for potential constants.

Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.

Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly handle base types.

	* dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
	Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
	registers.

Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (gcse_emit_move_after): New.
	(pre_delete, hoist_store): Use it.

	* reload1.c (emit_input_reload_insns): Use constrain_operands
	instead of constraint_accepts_reg_p to verify optimization.
	(constraint_accepts_reg_p): Kill.

	* reload1.c (reload_cse_delete_noop_set): Kill.
	(reload_cse_simplify): Use delete_insn_and_edges.

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

	* cfgloop.c (flow_loops_find): Initialize first and last fields
	correctly.

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

	* c-common.c (builtin_define_std): Correct logic.

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

	* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
	(output_call): Likewise.

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

	* pa.c: Move output.h include after tree.h include.
	(pa_asm_output_mi_thunk): Constify identifier lab.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/ns32k/ns32k.h: Define named constants for the
	bits in target_flags and use them.
	* config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.

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

	* config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
	architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
	* pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
	default scheduling model.
	* pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
	* pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
	* pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
	* doc/install.texi (hppa*-*-*): Document default scheduling.

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

	* pa.c (following_call): Check TARGET_JUMP_IN_DELAY.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (ns32k-*-netbsd*): Set tm_file to
	"${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
	* config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
	netbsd.h, or netbsd-aout.h.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* longlong.h (count_trailing_zeros): Add missing \, and clean up
	whitespace in __ns32000__ case.

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

	* expr.c (expand_expr): Output partially zeroed out vectors with
	output_constant_def.

2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
	(sh-*-netbsdelf*)
	(shl*-*-netbsdelf*): New targets.
	* config/sh/netbsd-elf.h: New file.
	* config/sh/t-netbsd: New file.

2002-05-30  Richard Henderson  <rth@redhat.com>
	    Eric Botcazou  <ebotcazou@multimania.com>

	PR optimization/6822
	* config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
	to unsigned int for op1 comparisons.  Use gen_int_mode.

2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>

	* expmed.c (const_mult_add_overflow_p): New.
	* expr.h: Declare it.
	* loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
	Don't eliminate the biv if the giv has a constant multiplier and
	the rhs argument of the comparison does satisfy the predicate.
	Use expand_mult_add to compute the replacement constant.

2002-05-30  Osku Salerma  <osku@iki.fi>

	* c-common.c (c_common_attribute_table): Add "may_alias" entry.
	(c_common_get_alias_set): Handle it.
	* doc/extend.texi: Document it.

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

	* defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
	* toplev.c (process_options): Don't check it.
	* doc/tm.texi: Don't document it.
	* config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
	(TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
	* config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
	frame pointer optimization if current_function_profile.

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

	* langhooks.c: Fix formatting.
	* langhooks.h: Likewise.
	* lcm.c: Likewise.
	* libgcc2.c: Likewise.
	* lists.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.

2002-05-30  Marc Espie <espie@openbsd.org>

	* config.gcc (sparc64-*-openbsd*): New.
	* config/sparc/openbsd1-64.h: New.
	* config/sparc/openbsd64.h: New.

2002-05-30  Jeff Law <law@redhat.com>

	* flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
	a dead insn with a REG_RETVAL note when the entire libcall is not
	dead and remove the associated REG_LIBCALL note at the same time.

Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* lcm.c (output.h): #include.
	(compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
	as an ordinary block.
	(optimize_mode_switching): Don't pretend that the exit block is
	an ordinary block, or handle sucessors of entry block specially.
	Instead, split edges from entry block and to exit block, and
	put a computing definition on the thus gained post-entry-block,
	and a need on the pre-exit-block.

Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
	* rtl.texi: Document 'B'

2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
	at run-time.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.

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

	* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
	const0_rtx instead of NULL_RTX when in error.
	(altivec_expand_abs_builtin): Same.
	(rs6000_expand_binop_builtin): Same.
	(altivec_expand_predicate_builtin): Same.
	(altivec_expand_stv_builtin): Same.
	(rs6000_expand_ternop_builtin): Same.
	(altivec_expand_builtin): Same.

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

	* rtl.h (clear_emit_caches): Delete.
	* integrate.c (output_inline_function): Don't call it.
	* emit-rtl.c (restore_emit_status, init_emit): Likewise.
	(clear_emit_caches): Delete definition.
	(SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.

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

	* config/mmix/mmix.c: Include real.h.
	(mmix_constant_address_p): Remove redundant test before switch.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
	only if not already defined.

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

	* config/h8300/h8300-protos.h: Remove prototypes for
	ok_for_bclr and small_power_of_two.
	* config/h8300/h8300.c (small_power_of_two): Remove.
	(ok_for_blcr): Likewise.
	(fix_bit_operand): Make WHAT deal with an integer instead of a
	constraint character.
	* config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
	(CONST_OK_FOR_P): Likewise.
	(CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
	CONST_OK_FOR_P any more.
	* config/h8300/h8300.md (andqi3): Adjust to the new prototype
	of fix_bit_operand.
	(iorqi3): Likewise.
	(xorqi3): Likewise.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
	since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
	or -U__MIPSEB__ before defining one or the other.  Instead,
	use %(subtarget_endian_default) if neither -EB nor -EL are
	specified.
	(SUBTARGET_EXTRA_SPECS): Define.
	(SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
	%(netbsd_cpp_spec).

2002-05-29  Hans-Peter Nilsson  <hp@axis.com>

	* doc/md.texi (Patterns): Note pattern condition pitfall
	for unnamed insn.

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

	* rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
	when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
	ternary operations from here...
	(rs6000_expand_builtin): ...to here.
	New argument expandedp.
	Change all instances of altivec_expand_binop_builtin to
	rs6000_expand_binop_builtin.
	(altivec_expand_unop_builtin): Rename to
	rs6000_expand_unop_builtin.
	(altivec_expand_binop_builtin): Rename to
	rs6000_expand_binop_builtin.
	(altivec_expand_ternop_builtin): Rename to
	rs6000_expand_ternop_builtin.

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

	* config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
	(TARGET_BI_ARCH): Likewise.
	* config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
	(TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
	(TARGET_64BIT_DEFAULT): Default to 0.
	(TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.

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

	* config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
	(get_pc_thunk_name): New.
	(output_set_got): Use it.
	(ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
	into linkonce sections.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
	(CPP_SUBTARGET_SPEC): Don't provide different versions for
	default-32 and default-64.  Just always use %(netbsd_cpp_spec).
	(SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
	cpp_subtarget_spec64.  Add netbsd_cpp_spec.
	* config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).

2002-05-29  Jeff Law <law@redhat.com>

	* pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.

	* flow.c (propagate_one_insn): Do not remove a dead insn if it
	contains a REG_RETVAL note.

	* haifa-sched (sched_analyze): Remove another useless clearing
	of SCHED_GROUP_P I missed yesterday.

	* pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
	* pa.c (pa_asm_output_mi_thunk): New function.
	* pa-protos.h (pa_asm_output_mi_thunk): Declare.

2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
	(avr_asm_only_p): Make non-static.
	(enum avr_arch): Remove.
	(avr_arch_types): New.
	(avr_mcu_types): Update.
	(avr_override_options): Use avr_arch_types table instead of switch.
	* avr.h (CPP_PREDEFINES): Die.
	(avr_base_arch_macro, avr_extra_arch_macro): New.
	(TARGET_CPU_CPP_BUILTINS): New.
	(CPP_SPEC, EXTRA_SPECS): Simplify.
	(CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
	CPP_AVR5_SPEC): Die.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
	NETBSD_OS_CPP_BUILTINS_AOUT.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).

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

	* config/i386/i386.c (ix86_output_function_epilogue): New.
	(TARGET_ASM_FUNCTION_EPILOGUE): New.
	(pic_label_name): Remove.
	(pic_labels_used): New.
	(ix86_asm_file_end): Emit one pc load stub for each register used.
	(output_set_got): Generate deep pc load to any register.
	(ix86_select_alt_pic_regnum): New.
	(ix86_save_reg): Don't save pic register if we can find a valid
	call-clobbered replacement.
	(ix86_expand_prologue): If we found a valid replacement, renumber
	pic_offset_table_rtx.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
	pic_offset_table_rtx after reload.
	(REAL_PIC_OFFSET_TABLE_REGNUM): New.
	* config/i386/i386.md (set_got): Make insn, not expander.
	(set_got_nopic, set_got_deep, set_got_nodeep): Remove.

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

	* config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
	alignment for alloca.

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

	* config/i386/i386.c (output_pic_addr_const): Lowercase rip.
	(print_operand_address): Only add rip for symbolic addresses
	for which we do not have another relocation type.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(EXTRA_SPECS): Add netbsd_cpp_spec.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	(CPP_PREDEFINES): Remove.
	* config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	(CPP_PREDEFINES): Remove.

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

	PR preprocessor/6844
	* cppmacro.c (cpp_macro_definition): Reserve space for terminating
	NUL.

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

	* config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
	mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.

2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/fr30/fr30.md: Remove previous restriction on splits.
	Enforce conformance through gen_lowpart and cont_int_operand.
	* config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
	as the assembler does not support ".bss".

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	* config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	* config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
	(SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
	Add netbsd_cpp_spec.
	(CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).

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

	* cppexp.c (cpp_num): Move to cpplib.h.
	(CPP_ERROR): Remove.
	(interpret_float_suffix, interpret_int_suffix): New.
	(struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
	(cpp_classify_number, cpp_interpret_integer): New.
	(interpret_number): Remove.
	(eval_token): Update to use new routines.
	* cpphash.h (cpp_num_part): Move to cpplib.h.
	* cppinit.c (cpp_post_options): Set warn_long_long.
	* cpplib.h (struct cpp_options): Add warn_long_long.
	(cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
	CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
	CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
	CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
	cpp_interpret_integer): New.

2002-05-29  Joel Sherrill <joel@OARcorp.com>

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
	NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
	(CPP_SUBTARGET_SPEC): Define.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Remove.

2002-05-29  Chris Lattner  <sabre@nondot.org>

	* ssa.c (rename_insn_1): Rename uses of undefined registers to
	prevent confusion if/when the register is defined.

2002-05-29  Hans-Peter Nilsson  <hp@axis.com>

	PR target/6838
	* config/cris/cris.md: Fix typos and thinkos in comments.
	("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
	second alternative.
	("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
	("*mov_sideqi_mem"): Similar, but for operand 3.
	("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
	(splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
	Remove spurious mode specifier on operand 2.

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

	* config/h8300/h8300-protos.h: Remove the prototype for
	o_operand.
	Add prototypes for single_one_operand and single_zero_operand.
	* config/h8300/h8300.c (o_operand): Remove.
	(single_one_operand): New.
	(single_zero_operand): Likewise.
	(print_operand): For 'V' operand, and the operand with 0xff.
	For 'V' and 'W' operands, do not and the bit position with 7.
	* config/h8300/h8300.md (various anonymous patterns): Replace
	use of exact_log2 with single_one_operand/single_zero_operand.

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

	* config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.

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

	* config/s390/s390.c (legitimate_pic_operand_p): Do not
	accept symbolic LARL operands.
	(s390_emit_epilogue): Do not set FRAME_RELATED_P on
	epilogue insns.

2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md (cmpstr_64/31): Mark whole
	input registers as used.

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

	* config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
	not current_function_uses_pic_offset_table and
	current_function_uses_const_pool; examine current_function_profile.
	(ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
	input to blockage if needed.
	(ix86_expand_call): Do not set current_function_uses_pic_offset_table.
	(legitimize_pic_address): Likewise.  Set regs_ever_live for
	pic_offset_table_rtx when invoked during reload.
	* config/i386/i386.h (FINALIZE_PIC): Remove.
	* config/i386/i386.md (tablejump): Reformat.  Do not set
	current_function_uses_pic_offset_table.
	(tls_global_dynamic, tls_local_dynamic_base): Likewise.
	(blockage): Accept anything as operand 0.

2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
	common CPP built-ins for all NetBSD a.out targets.
	* config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
	common CPP built-ins for all NetBSD ELF targets.
	* config/netbsd.h: Add missing notice.
	(NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
	for all NetBSD targets.
	(NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
	for all NetBSD targets using an LP64 code model.
	(NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
	NetBSD targets.

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

	* flow.c (update_life_info_in_dirty_blocks): Only do a partial
	update if UPDATE_LIFE_LOCAL.

2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.

Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
			  Jason R. Thorpe <thorpej@wasabisystems.com>

	config/sh reorganization to factor out endianness and coff:

	* config/sh/little.h: New file.
	* config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
	defined, define to 0 to select big-endian.
	(SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
	(TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* config/sh/t-be: New file.
	* config/sh/t-le: New file.

	* sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
	(SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
	(TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
	(USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
	(ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
	(CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
	(SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
	(EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
	CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
	SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
	(LINK_SPEC): Define to SH_LINK_SPEC.
	(TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
	(LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
	(SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
	(CPP_SPEC): Reduce to %(subtarget_cpp_spec).
	(TARGET_ENDIAN_DEFAULT): Define if not already defined.
	* config/sh/coff.h: New file.
	(TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
	(TARGET_OBJFMT_CPP_BUILTINS): Define.
	* config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
	(ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
	(DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
	(ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
	(PTRDIFF_TYPE): Likewise.
	("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
	(CPP_PREDEFINES): Don't define.
	(TARGET_OBJFMT_CPP_BUILTINS): Define.
	(LINK_SPEC): Define to SH_LINK_SPEC.
	(LINK_EMUL_PREFIX): Redefine.
	* config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
	(SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
	(CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
	(CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define.
	(TARGET_DEFAULT): Redefine.
	(SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
	(LINK_SPEC): Don't redefine.
	(LINK_DEFAULT_CPU_EMUL): Redefine.
	(TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* sh.c (sh_asm_named_section): Don't declare / define.
	* t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
	* config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
	(sh64-*-elf* tm_file): Likewise.
	(sh-*-rtemself* tm_file): Likewise.
	(sh-*-linux* tm_file): Likewise.  Add sh/little.h.
	(sh-*-linux* tmake_file): Add sh/t-le.
	(sh-*-rtems* tm_file): Add sh/coff.h
	(sh-*-* tm_file): Likewise.

Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
	CONSTANT_POOL_ADDRESS_P.

	* coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.

2002-05-28  David Edelsohn  <edelsohn@gnu.org>
	    Jeff Law <law@redhat.com>

	* optabs.c (expand_binop): Fix nwords sign warnings.
	generate pseudo for add_optab.

	* sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
	* haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.

2002-05-28	Marc Espie <espie@openbsd.org>

	* config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
	inherited from gas.h.
	(ASM_QUAD):  Undef.  OpenBSD does not support it.

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

	* doc/install.texi (binaries): Change mingw binaries
	link to www.mingw.org.

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

	* cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.

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

	* config/i386/i386.c (ix86_compute_frame_layout): Do not add
	bottom alignment for leaf functions.

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

	* config/pa/milli32.S, config/pa/lib1funcs.asm,
	config/sparc/sol2-g1.asm: Delete unused files.

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

	* cfg.c (dump_flow_info): Print bb->index, not i, for block number.

	* flow.c (calculate_global_regs_live): Rename call_used to
	invalidated_by_call.  Initialize from regs_invalidated_by_call
	instead of call_used_regs.

	* varasm.c (default_binds_local_p): Check TREE_PUBLIC before
	DECL_EXTERNAL.

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

	* tree.h: Don't include real.h.
	Forward-declare struct realvaluetype.
	(struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
	contain it.
	(TREE_REAL_CST_PTR): New accessor.
	(TREE_REAL_CST): Update.
	* real.h: Include machmode.h.
	(realvaluetype): Make it struct realvaluetype, not a typedef.
	(build_real): Prototype here.

	* tree.c: Include real.h.
	(build_real): Allocate the REAL_VALUE_TYPE as a separate
	object in GC memory, set TREE_REAL_CST_PTR to point to it.
	(build_real_from_int_cst): Use build_real.
	* ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
	REAL_CST.

	* builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
	fold-const.c, print-tree.c, real.c: Include real.h.
	* Makefile.in: Update dependency lists.

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

	* basic-block.h (last_basic_block): Declare.
	(expunge_block_nocompact): Declaration removed.
	(compact_blocks): Declare.
	* cfg.c (last_basic_block): New variable.
	(expunge_block_nocompact): Removed.
	(expunge_block): Do not compact basic blocks.
	(compact_blocks): New.
	* cfganal.c (flow_call_edges_add): Use the fact that bb indices no
	longer change.
	* cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
	last_basic_block.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
	real positions of blocks.
	(delete_unreachable_blocks): Simplified -- quadratic behavior now
	cannot occur.
	(cleanup_cfg): Compact blocks.
	* cfgrtl.c (create_basic_block): Insert basic blocks to the end of
	basic_block_info varray.
	(flow_delete_block): Comment update.
	(back_edge_of_syntactic_loop_p): Modify position check code.
	(verify_flow_info): Update checking.
	* flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
	* ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
	(find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
	indices no longer change.
	* lcm.c (optimize_mode_switching): Replace n_basic_blocks with
	last_basic_block.
	* predict.c (estimate_bb_frequencies): Remove unneccessary code.
	* profile.c (branch_prob): Compact blocks.
	* sched-rgn.c (find_rgns): Replace n_basic_blocks with
	last_basic_block.

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

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

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

	* config/sparc/sparc.md (cpu): Tidy.
	(type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
	'trap'.
	(in_call_delay): Delete reference to 'return' type.
	(eligible_for_return_delay, in_return_delay, define_delay
	referencing those): Delete.
	(rest of file): Use new type attributes as appropriate.
	* config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
	* config/sparc/sparc.c (eligible_for_return_delay): Likewise.
	* config/sparc/ultra1_2.md (us1_single): New reservation.
	(us1_ialuX): Likewise.
	* config/sparc/ultra3.md (us3_single): Likewise.
	(us3_ialuX): Likewise.
	(us3_imul, us3_idiv): Tweak.

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

	* config/alpha/alpha.c (alpha_in_small_data_p): Return false for
	STRING_CST.

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

	* config.gcc: Obsolete mn10200.

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

	* cppexp.c (interpret_number): Optimize for single-digit
	and less-than-half-precision cases.
	(num_trim, num_positive, num_div_op): Cast constants.

2002-05-27  Bo Thorsen  <bo@suse.de>

	* config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
	3.1 branch. The file was made by Jakub Jelinek.
	* config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
	support so multilib doesn't break. And don't define this at all
	when -Dinhibit_libc is used.
	(MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
	* config/i386/t-linux64: Implement full multilib support. Patch
	originally done by Andreas Jaeger and Jakub Jelinek.

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

	* c-common.c: Add support for __attribute__((nothrow)) to specify
	that a function cannot throw an exception (using TREE_NOTHROW).
	(handle_nothrow_attribute): New function to process this attribute.

	* doc/extend.texi: Document the new nothrow function attribute.

2002-05-27  H.J. Lu  (hjl@gnu.org)

	* cppexp.c (num_trim): Use 1UL instead of 1 for long int.
	(num_positive): Likewise.
	(num_div_op): Likewise.

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

	* c-common.c (c_common_init): Always use intmax_t.

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

	* c-common.c (c_common_init): Use intmax_t for now.

2002-05-24  Andrew Haley  <aph@redhat.com>

	* fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
	if T is a boolean type.

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

	* basic-block.h (last_basic_block): Defined as synonym for
	n_basic_blocks.
	* cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
	flow_depth_first_order_compute, flow_preorder_transversal_compute,
	flow_dfs_compute_reverse_init): Replaced relevant occurences of
	n_basic_blocks with last_basic_block.
	* cfgbuild.c (make_edges): Likewise.
	* cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
	* cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
	* combine.c (combine_instructions): Likewise.
	* df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
	iterative_dataflow_bitmap): Likewise.
	* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
	calc_idoms, idoms_to_doms): Likewise.
	* flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
	Likewise.
	* gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
	compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
	one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
	one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
	delete_null_pointer_checks, compute_code_hoist_vbeinout,
	hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
	compute_store_table, build_store_vectors): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ifcvt.c (if_convert): Likewise.
	* lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
	pre_edge_lcm, compute_available, compute_nearerout,
	compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
	Likewise.
	* predict.c (estimate_probability, process_note_prediction,
	note_prediction_to_br_prob): Likewise.
	* profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
	* recog.c (split_all_insns, peephole2_optimize): Likewise.
	* regrename.c (copyprop_hardreg_forward): Likewise.
	* resource.c (init_resource_info): Likewise.
	* sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
	init_regions, schedule_insns): Likewise.
	* ssa-ccp.c (ssa_const_prop): Likewise.
	* ssa-dce.c (ssa_eliminate_dead_code): Likewise.
	* ssa.c (compute_dominance_frontiers,
	compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.

	* df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
	* gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
	sizes consistently.

Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
	new.
	* rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
	hoist_insn_after, hoist_insn_to_edge): New.

Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (PEOP_SCAN_DEAD_STORES): New.
	(PROP_FINAL): Include.
	* flow.c (life_analysis, update_life_info,
	init_propagate_block_info, mark_set_1, mark_used_rgs):
	Support SCAN_DEAD_STORE.

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

	* c-common.c (c_common_init): Set CPP arithmetic precision.
	* cppexp.c (cpp_num_part): Move typedef ...
	* cpphash.h: ...here; make unsigned HOST_WIDE_INT.
	* cppinit.c (cpp_create_reader): Default to host long arithmetic.
	(sanity_checks): Update.

2002-05-26  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
	(mkheaders): New rule.
	(install-mkheaders): New rule.
	* configure.in (all_outputs): Add mkheaders.
	* configure: Regenerate.
	* mkheaders.in: New file.

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

	* cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.

2002-05-26  Andreas Jaeger  <aj@suse.de>

	* cfg.c (dump_flow_info): Remove extra argument to fprintf.

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

	* cppexp.c (possible_sum_sign, integer_overflow, left_shift,
	right_shift): Remove.
	(cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
	HIGH_PART): New.
	(struct op): Use cpp_num.
	(num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
	num_part_mul, num_unary_op, num_binary_op, num_negate,
	num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
	num_div_op, num_lshift, num_rshift, append_digit): New.
	(interpret_number, parse_defined, eval_token, reduce): Update
	for two-integer arithmetic.
	(binary_handler): New typedef.
	(optab): Update.
	(COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
	(_cpp_parse_expr, reduce): Update to handle two-integers.
	* cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.

2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
	* config/avr/avr.c (jump_over_one_insn_p): Take length of the
	branch insn into account, do not assume 1.
	(avr_out_sbxx_branch): New function.  Optimize cases of skipping
	over single word insn.  Handle upper half of I/O space too.
	* config/avr/avr.md (*sbrx_branch): Use it.
	(*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
	(*sbix_branch, *sbix_branch_bit7): Likewise.
	(*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
	Use RTL peepholes to optimize register operand sign tests.

2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_asm_only_p): New variable.
	(avr_override_options): Set it here if AVR1.
	(asm_file_start): Test it here, report an error if set.

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

	* alias.c: Fix formatting.
	* attribs.c: Likewise.
	* bb-reorder.c: Likewise.
	* bitmap.c: Likewise.
	* bitmap.h: Likewise.
	* builtins.c: Likewise.

Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reload.c (find_valid_class): Accept new argument DEST,
	choose class accordingly.
	(push_reload): Update callers.

2002-05-26  Andreas Jaeger  <aj@suse.de>

	* combine.c (combine_instructions): Do not indent #if for
	traditional C.

2002-05-25  Richard Henderson  <rth@redhat.com>

	* c-pragma.c (apply_pragma_weak): Convert value identifier to
	string for decl_attributes.
	(handle_pragma_weak): Call assemble_alias if we're modifying
	an existing decl.

2002-05-25  Richard Henderson  <rth@redhat.com>

	PR target/6788
	* config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
	using rtl instead of fprintf.
	* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
	* config/sparc/sparc-protos.h: Update.

2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (C_COMMON_H): Fix.
	Update other targets.
	* c-common.c: Don't include c-lex.h.
	(builtin_define_with_value): Make static and prototype.
	(builtin_define_std): Move from c-lex.h.
	* c-common.h (init_c_lex): Move from c-lex.h.
	* c-decl.c: Don't include c-lex.h.
	(make_pointer_declarator): Move from c-parse.in.
	* c-lex.c: Don't include c-lex.h.
	* c-lex.h: Remove.
	* c-parse.in: Don't include c-lex.h; include c-pragma.h.
	(make_pointer_declarator): Move to c-decl.c.
	* c-pragma.c: Don't include c-lex.h.
	* c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
	* c-tree.h (make_pointer_declarator): New.
doc:
	* passes.texi, tm.texi: Update.
objc:
	* Make-lang.in: Update and correct.
	* objc-act.c: Don't include c-lex.h or cpplib.h.
treelang:
	* treetree.c: Don't include c-lex.h.
config:
	* darwin-c.c: Don't include c-lex.h.
	* c4x/c4x-c.c: Don't include c-lex.h.
	* c4x/t-c4x: Update.
	* i370/i370-c.c: Don't include c-lex.h.
	* i370/t-i370: Update.
	* i960/i960-c.c: Don't include c-lex.h.
	* i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
	* i960/t-960bare: Update.
	* i960/t-vxworks: Update.
	* rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
	* rs6000/t-darwin: Update.
	* rs6000/t-rs6000-c-rule: Update.
	* v850/v850-c.c: Don't include c-lex.h.
	* v850/v850.c: Don't include c-lex.h or cpplib.h.


2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* tree.def: Fix typos.
	* doc/install.texi: Likewise.

2002-05-25  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_AS_TLS): Add ia64 test.
	* configure: Rebuild.
	* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
	(override_options): Set it.
	(TARGET_HAVE_TLS): New.
	(sdata_symbolic_operand): Look for 's'.
	(tls_symbolic_operand): New.
	(ia64_expand_load_address): Abort for tls symbols.
	(gen_tls_get_addr): New.
	(gen_thread_pointer): New.
	(ia64_expand_move): Split out from movdi.  Handle tls symbols.
	(rtx_needs_barrier): Add new unspecs.
	(ia64_encode_section_info): Handle tls symbols.
	(ia64_strip_name_encoding): Strip two encoding chars.
	* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
	(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
	(TARGET_OPTIONS): Add tls-size.
	(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
	* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
	UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
	(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
	(movsf, movdf): Likewise.
	(movdi_symbolic): Use match_scratch.  Don't split if we won't
	have a scratch availiable.
	(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
	add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
	load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	sdata_symbolic_operand.
	(ASM_OUTPUT_LABELREF): Strip two characters.

2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c (simplify_set): Remove an unnecessary subreg.

2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.

	* config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.

2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.

2002-05-25  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_gen_relational): Simplify the RTX
	(cond (compare x y) 0) into the equivalent (cond x y).

2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.

2002-05-24  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc: Remove all stanzas for previously obsoleted
	systems.  Where necessary, add explicit error stanzas to
	prevent removed systems from being misidentified as something
	else.  Begin a fresh obsoletions list, with the systems that
	were reprieved last round.
	* doc/install.texi: Remove all mention of dead targets.
	* fixinc/mkfixinc.sh: Likewise.

	* config/arm/arm.h: Bit 31 of target_flags is no longer
	reserved.

	* config/1750a/1750a-protos.h, config/1750a/1750a.c,
	config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
	config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
	config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
	config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
	config/alpha/osf12.h, config/alpha/osf2or3.h,
	config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
	config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
	config/clipper/clipper-protos.h, config/clipper/clipper.c,
	config/clipper/clipper.h, config/clipper/clipper.md,
	config/clipper/clix.h, config/convex/convex-protos.h,
	config/convex/convex.c, config/convex/convex.h,
	config/convex/convex.md, config/convex/fixinc.convex,
	config/convex/proto.h, config/elxsi/elxsi-protos.h,
	config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
	config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
	config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
	config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
	config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
	config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
	config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
	config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
	config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
	config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
	config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
	config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
	config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
	config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
	config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
	config/m68k/altos3068.h, config/m68k/apollo68.h,
	config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
	config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
	config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
	config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
	config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
	config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
	config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
	config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
	config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
	config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
	config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
	config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
	config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
	config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
	config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
	config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
	config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
	config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
	config/mips/dec-osf1.h, config/mips/elflorion.h,
	config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
	config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
	config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
	config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
	config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
	config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
	config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
	config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
	config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
	config/ns32k/pc532-min.h, config/ns32k/pc532.h,
	config/ns32k/sequent.h, config/ns32k/tek6000.h,
	config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
	config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
	config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
	config/sparc/rtems.h, config/we32k/we32k-protos.h,
	config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
	Delete file.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
	* toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
	* config/i386/i386.c (tls_model_chars): Add leading space.
	(tls_symbolic_operand): Don't bias by 1.
	(legitimize_address): Don't unbias by 1.

2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* lcm.c (optimize_mode_switching): Change bb used as indices
	to bb->index.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
	of update_life_info_in_dirty_blocks.

2002-05-24  Jakub Jelinek  <jakub@redhat.com>

	PR other/6782
	* final.c (get_mem_expr_from_op): Return 0 if op is NULL.

2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6780
	* cppmacro.c (enter_macro_context): Clear state.angled_headers.

2002-05-24  Jim Blandy  <jimb@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
	entry with a type code of zero, marking the end of the compilation
	unit's macro info.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* varasm.c (asm_output_bss): Always output one byte.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.

2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* tree.c (decl_type_context): Return NULL_TREE if decl's context is a
	namespace.

2002-05-24  Andreas Jaeger  <aj@suse.de>

	* ggc-page.c (alloc_page): Cast variables of type size_t to
	unsigned long, adjust printf format string.
	(ggc_alloc): Likewise.
	(ggc_print_statistics): Likewise.
	(ggc_print_statistics): Correct printf format string for SCALE to
	use unsigned long.

2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/mingw32.h (CPP_SPEC): Remove -remap.

2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
	    Zack Weinberg     <zack@codesourcery.com>

	* config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
	quoted strings.
	* dwarf2out.c (lookup_filename): Properly quote filename in .file
	directive in assembly file.
	* config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
	* config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
	* config/pj/pj.h (ASM_FILE_START): Likewise.
	* config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
	* config/avr/avr.c (asm_file_end): Likewise.
	* toplev.c (output_quoted_string): Handle possibly signed plain
	char.
	* toplev.h (output_clean_symbol_name): Declare
	* toplev.c (output_clean_symbol_name): Define.
	* config/alpha/alpha.c (unicosmk_output_module_name): Use it.
	* config/1750a/1750a.h (ASM_FILE_START): Likewise.

2002-05-24  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.

2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
	of size of unsigned.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_AS_TLS): New test.
	* config.in, configure: Rebuild.
	* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
	(ix86_tls_dialect_string, ix86_tls_dialect): New.
	(override_options): Set it.
	(tls_model_chars, tls_symbolic_operand): New.
	(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
	(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
	(local_exec_symbolic_operand): New.
	(get_pic_label_name): Merge into output_set_got.
	(ix86_asm_file_end): Emit pic_label_name if defined.
	(legitimate_constant_p, constant_address_p): New.
	(legitimate_pic_operand_p): New.
	(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
	(legitimate_address_p): Likewise.
	(ix86_encode_section_info): Rename from i386_; handle tls decls.
	(ix86_strip_name_encoding): New.
	(get_thread_pointer): New.
	(legitimize_address): Handle tls symbols.
	(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
	Remove UNSPEC_PLT.
	(struct machine_function): Add some_ld_name.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
	(print_operand) [&]: Use it.  Handle UNSPEC_TP.
	(output_addr_const_extra): New.
	(maybe_get_pool_constant): New.
	(ix86_split_to_parts): Use it.
	(ix86_expand_move): Handle tls symbols.
	(ix86_tls_get_addr): New.
	* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
	(TARGET_OPTIONS): Add tls-dialect.
	(CONSTANT_ADDRESS_P): Use new out-of-line function.
	(LEGITIMATE_CONSTANT_P): Likewise.
	(LEGITIMATE_PIC_OPERAND_P): Likewise.
	(TARGET_STRIP_NAME_ENCODING): New.
	(ASM_OUTPUT_LABELREF): New.
	(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
	(OUTPUT_ADDR_CONST_EXTRA): New.
	(PREDICATE_CODES): Update.
	(ix86_tls_dialect, ix86_tls_dialect_string): New.
	* config/i386/i386.md: Regroup and renumber unspec constants.
	(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
	(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
	(tls_global_dynamic, tls_local_dynamic_base): New.
	(tls_local_dynamic_once): New.
	* config/i386/i386-protos.h: Update.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* genemit.c (gen_insn): Print file:lineno comment before function.
	(main): likewise.
	* gensupport.c (struct queue_elem): Add filename member.
	(queue_pattern): Initialize it; update all callers.
	(process_include): Don't free filename.
	(read_md_rtx): Set read_rtx_filename.

2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>

	* config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (C++98 Thread-Local Edits): Update with
	commentary from Mark.

2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
	Use FOR_EACH_BB macros to iterate over basic block chain.
	* cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
	alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
	Likewise.
	* cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
	find_unreachable_blocks, create_edge_list, verify_edge_list,
	remove_fake_edges, add_noreturn_fake_exit_edges,
	flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
	Likewise.
	* cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
	find_sub_basic_blocks): Likewise.
	* cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
	Likewise.
	* cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
	Likewise.
	* cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
	Likewise.
	* cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
	commit_edge_insertions, commit_edge_insertions_watch_calls,
	print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
	* combine.c (combine_instructions, reg_dead_at_p): Likewise.
	* conflict.c (conflict_graph_compute): Likewise.
	* df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
	df_modified_p, df_refs_unlink, df_dump): Likewise.
	* dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
	* final.c (compute_alignments): Likewise.
	* flow.c (update_life_info, update_life_info_in_dirty_blocks,
	delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
	count_or_remove_death_notes): Likewise.
	* gcse.c (oprs_unchanged_p, record_last_reg_set_info,
	compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
	classic_gcse, compute_transp, cprop, compute_pre_data,
	compute_transpout, invalidate_nonnull_info,
	delete_null_pointer_checks_1, delete_null_pointer_checks,
	compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
	compute_store_table, build_store_vectors, store_motion): Likewise.
	* global.c (global_conflicts, mark_elimination): Likewise.
	* graph.c (print_rtl_graph_with_bb): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ifcvt.c (if_convert): Likewise.
	* lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
	compute_available, compute_nearerout, compute_rev_insert_delete,
	optimize_mode_switching): Likewise.
	* local-alloc.c (local_alloc, update_equiv_regs): Likewise.
	* predict.c (estimate_probability, note_prediction_to_br_prob,
	propagate_freq, counts_to_freqs, expensive_function_p,
	estimate_bb_frequencies): Likewise.
	* profile.c (instrument_edges, get_exec_counts,
	compute_branch_probabilities, compute_checksum, branch_prob,
	find_spanning_tree): Likewise.
	* recog.c (split_all_insns, peephole2_optimize): Likewise.
	* reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
	Likewise.
	* regclass.c (scan_one_insn, regclass): Likewise.
	* regmove.c (mark_flags_life_zones, regmove_optimize,
	record_stack_memrefs): Likewise.
	* regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
	* reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
	* resource.c (find_basic_block): Likewise.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (is_cfg_nonregular, build_control_flow,
	find_single_block_region, find_rgns, schedule_insns)
	* sibcall.c (optimize_sibling_and_tail_recursive_call)
	* ssa-ccp.c (optimize_unexecutable_edges,
	ssa_ccp_df_delete_unreachable_insns): Likewise.
	* ssa-dce.c (ssa_eliminate_dead_code): Likewise.
	* ssa.c (find_evaluations, compute_dominance_frontiers_1,
	rename_block, convert_to_ssa, compute_conservative_reg_partition,
	compute_coalesced_reg_partition, rename_equivalent_regs,
	convert_from_ssa): Likewise.
	* config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
	process_for_unwind_directive): Likewise.

	* df.c (FOR_ALL_BBS): Removed.
	* gcse.c (struct null_pointer_info): Type of current_block field
	changed.
	(struct reg_avail_info): Type of last_bb field changed.
	* config/ia64/ia64.c (block_num): Removed.
	(need_copy_state): Type changed.
	(last_block): New.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (mark_named_operators): Split out from init_builtins.
	(cpp_finish_options): Call it from here instead.

2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>

	* builtin-attrs.def: Update copyright years.
	(ATTR_NONNULL): New attribute identifier.
	(ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
	attribute tree lists.
	(DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
	format operand.
	(ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
	(DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
	attribute lists.  Chain the appropriate nonnull attribute.
	* c-format.c (check_format_arg): Remove null format string
	warning.
	* testsuite/gcc.dg/format/null-1.c: New test.

2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (ADAC): Define.
	(SYSLIBS): Define.
	(.SUFFIXES): Move before language makefile fragments.
	(STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.

2002-05-23  Mark Mitchell  <mark@codesourcery.com>

	* varasm.c (make_decl_rtl): Don't allow weak variables to be
	placed in common.

Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfg.c (dump_flow_info): Print results of
	maybe_hot/probably_never_executed predicates.
	* toplev.c (open_dump_file): Print function frequency.

2002-05-23  David S. Miller  <davem@redhat.com>

	* cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
	regsets.

2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>

	* c-common.c (warn_nonnull): Declare.
	(c_common_attribute_table): Add "nonnull" attribute.
	(handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
	check_nonnull_arg, get_nonnull_operand, check_function_arguments,
	check_function_arguments_recurse): New functions.
	* c-common.h (warn_nonnull): Declare extern.
	(check_function_arguments, check_function_arguments_recurse): New
	prototypes.
	* c-decl.c (c_decode_option): Add -Wnonnull option.
	* c-format.c (set_Wformat): Set warn_nonnull if enabling
	format checking.
	(format_check_context): New structure.
	(check_format_info_recurse): Remove recursion and rename to...
	(check_format_arg): ...this.  Update comment.
	(check_format_info): Use check_function_arguments_recurse.
	* c-typeck.c (build_function_call): Call check_function_arguments
	instead of check_function_format.
	* doc/extend.texi: Document "nonnull" attribute.
	* doc/invoke.texi: Docuemnt -Wnonnull option.
	* testsuite/gcc.dg/nonnull-1.c: New test.
	* testsuite/gcc.dg/nonnull-2.c: New test.

2002-05-23  David S. Miller  <davem@redhat.com>

	* basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
	* cfgcleanup.c (cleanup_cfg): If it is set do not
	attempt to delete trivially dead insns.
	* except.c (finish_eh_generation): Pass it to cleanup_cfg.
	* toplev.c (rest_of_compilation): Document non-trivial aspect
	the RTL before optimize_save_area_alloca is run.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.c (indent_level): Remove.
	(cb_file_change, c_lex): Remove indent level handling.
	* c-lex.h (indent_level): Remove.
	* input.h (struct file_stack): Remove indent_level.
	* toplev.c (push_srcloc): Remove indent_level handling.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/6753
	* config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
	of x in constraints for clarity.
	(sse_mov?fcc split): abort if op2 == op3.
	(sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
	sse_movsfcc_const0_4): Add earlyclobber.
	(sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
	sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
	Use Y instead of x in constraints.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (C99 Thread-Local Edits): New subsection.
	(C++98 Thread-Local Edits): New subsection.

	* config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
	(ix86_arch): Set type to enum processor_type.

	* config/i386/i386.md (movsi_1, movdi_1_rex64): Use
	LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	* configure.in: Fix as version test for binutils 2.12.1 releases
	(without dates).
	* configure: Rebuilt.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (get_pic_label_name): New.
	(load_pic_register): Remove.
	(output_set_got): New.
	(ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
	* config/i386/i386.md (UNSPEC_SET_GOT): New.
	(UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
	(prologue_set_got, prologue_get_pc): Remove.
	(set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
	(builtin_setjmp_receiver): Use gen_set_got.
	* config/i386/i386-protos.h: Update.

Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (hash_expr): Do not use alias set for hashing.

2002-05-22  Kevin Buettner  <kevinb@redhat.com>

	* dbxout.c (dbxout_class_name_qualifiers): New function.
	(dbxout_symbol): Output class/struct qualifiers for a .stabs entry.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c (_cpp_begin_message): No special casing
	of CPP_FATAL_LIMIT.
	* cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
	(output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
	* cpplib.c (do_include_common): Use DL_ERROR.
	* cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
	(DL_ICE): Renumber.
	* fix-header.c (read_scan_file): Update.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_call): New function, extracted
	from md call patterns.  Add pic_offset_table_rtx to
	CALL_INSN_FUNCTION_USAGE when needed.
	* config/i386/i386.md (call_pop, call): Use ix86_expand_call.
	(call_value_pop, call_value, untyped_call): Likewise.
	(call_exp, call_value_exp): Remove.
	* config/i386/i386-protos.h: Update.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_section_type_flags): Check for VAR_DECL
	before using DECL_THREAD_LOCAL.

2002-05-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
	(STARTFILE_SPEC): Delete PE crt0.o.
	* config/rs6000/aix51.h: Same.
	* config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
	function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
	(ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
	* config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_section_type_flags): Handle tls data and
	default sections.
	(default_unique_section): Handle tls sections.

2002-05-23  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (CROSS): Define NATIVE_CROSS.
	* configure: Regenerate.
	* gcc.c (STARTFILE_PREFIX_SPEC): Define.
	(startfile_prefix_spec): New var.
	(static_specs): Add startfile_prefix_spec.
	(do_spec_2): Split out from..
	(do_spec): ..here.
	(main): Process startfile_prefix_spec.
	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
	dynamic linker.
	(STARTFILE_PREFIX_SPEC): Define.
	(STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
	absolute paths.

2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cpperror.c: Fix formatting.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cppmacro.c: Likewise.
	* cppmain.c: Likewise.
	* cppspec.c: Likewise.

2002-05-22  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (force_to_mode): Use gen_int_mode.
	Don't clear CONST_INT bits outside of mode.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
	* fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.

2002-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/6643
	* emit-rtl.c (widen_memory_access): Only call compare_tree_int
	if DECL_SIZE_UNIT is INTEGER_CST.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* flow.c (life_analysis): Delete broken reg_label check.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
	* fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.

Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
	(embed-bb.c): New rule.
	* t-sh64 (LIB2FUNCS_EXTRA): Don't change.
	* config/sh/embed_bb.c: Delete.

Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* c-common.c (cb_register_builtins): Don't indent '#' of #define.

2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorqi3): New.

2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6517
	* Makefile.in: Update.
	* c-common.c (c_common_post_options): Add preprocessor
	errors to the error count.
	* c-lang.c (c_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
	* hooks.h: Add header guards.
	* langhooks-def.h: Include hooks.h.
	(LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options.
	* toplev.c (parse_options_and_default_flags): Update.
objc:
	* objc-lang.c (objc_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.

2002-05-21  Bruce Korb  <bkorb@gnu.org>

	* fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
	* fixinc/inclhack.def(thread_keyword): use c_fix = format.
	* fixinc/fixincl.x: regen.

2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgbuild.c: Fix formatting.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgrtl.c: Likewise.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* c-common.h (enum rid): Add RID_THREAD.
	* c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
	(grokdeclarator): Grok __thread.
	* c-parse.in (reswords): Add __thread.
	(rid_to_yy): Add RID_THREAD.

	* tree.h (DECL_THREAD_LOCAL): New.
	(struct tree_decl): Add thread_local_flag.
	* print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
	* tree.c (staticp): TLS variables are not static.

	* target-def.h (TARGET_HAVE_TLS): New.
	* target.h (have_tls): New.
	* output.h (SECTION_TLS): New.
	* varasm.c (assemble_variable): TLS variables can't be common for now.
	(default_section_type_flags): Handle .tdata and .tbss.
	(default_elf_asm_named_section): Handle SECTION_TLS.
	(categorize_decl_for_section): Handle DECL_THREAD_LOCAL.

	* flags.h (flag_tls_default): Declare.
	* toplev.c (flag_tls_default): Define.
	(display_help): Display help for it.
	(decode_f_option): Set it.

	* doc/extend.texi (Thread-Local): New node describing language-level
	thread-local storage.
	* doc/invoke.texi (-ftls-model): Document.

	* fixinc/inclhack.def (thread_keyword): New.
	* fixinc/fixincl.x: Rebuild.

2002-05-21  Jeffrey A Law  <law@redhat.com>

	* optabs.c (expand_binop): For double-word integer multiplies,
	do not compute intermediate results into something that is
	not a register (such as a SUBREG or MEM).

	* i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
	(ix86_sched_reorder): Make sure to initialize scheduling
	data even when there's only one insn in the ready queue.

2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Fix a typo.

2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Define hash_value as
	set_el_t.  Transform the hash value into unsigned.
	(output_cycle_reservs): Fix bug with output of repeated `nothing'.
	(transform_3): Add code to process `(A,B)+(D,E)'.

2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>

	* reload1.c (do_output_reload): Run delete_output_reload
	only if optimizing.

2002-05-21  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/6600
	* expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
	larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
	(can_store_by_pieces): ... and here to limit the largest mode used.
	Add a comment to document this function.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* flow.c (life_analysis): Fix test for deleted label.

2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/tm.texi: Fix typo.

2002-05-21  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (c_common_init): Set options->unsigned_char from
	flag_signed_char.
	(cb_register_builtins): Define __STRICT_ANSI__ and
	__CHAR_UNSIGNED__ here...
	* cppinit.c (init_builtins): Not here.
	(cpp_create_reader): unsigned_char option defaults to 0, not
	!DEFAULT_SIGNED_CHAR.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
	and -funsigned-char.

	* cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
	* cpphash.c (_cpp_init_hashtable): Don't set it.
	* cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
	directly.  Clarify comment.

2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
	neighboring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
	BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
	BASIC_BLOCK (n_basic_blocks - 1).
	* cfganal.c (can_fallthru, flow_call_edges_add,
	flow_preorder_transversal_compute): Too.
	* cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
	find_sub_basic_blocks): Too.
	* cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
	* cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
	fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
	* cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
	* combine.c (this_basic_block): Type changed to basic_block.
	(combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
	nonzero_bits, num_sign_bit_copies, get_last_value_validate,
	get_last_value, distribute_notes, distribute_links): Too.
	* final.c (compute_alignments): Too.
	* flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
	* function.c (thread_prologue_and_epilogue_insns): Too.
	* gcse.c (compute_code_hoist_vbeinout): Too.
	* global.c (build_insn_chain): Too.
	* ifcvt.c (find_if_block, find_cond_trap): Too.
	* predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
	* regmove.c (regmove_optimize): Too.
	* resource.c (find_basic_block): Too.
	* sched-ebb.c (schedule_ebbs): Too.
	* ssa-dce.c (find_control_dependence, find_pdom): Too.

2002-05-21  Andreas Jaeger  <aj@suse.de>

	* cppinit.c (sanity_checks): Avoid printf mismatch warnings.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
	unspec names, not numbers.

2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/sourcebuild.texi: Mention snapshot-README and
	snapshot-index.html as needing updating for new front ends.

2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
	disabling checking, and avoid multiple evaluation of RTX.

2002-05-21  Richard Earnshaw  <rearnsha@arm.com>

	* bitmap.c (bitmap_find_bit): Return early if we have the correct
	element cached.

Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* profile.c (gen_edge_profiler):  Set alias set before the memory is
	used.

2002-05-20  David S. Miller  <davem@redhat.com>

	* cselib.c (max_value_regs): New.
	(cselib_lookup, cselib_invalidate_regno): Initialize it when
	adding new entries to the REG_VALUES table and we are dealing with
	a hard register.
	(clear_table): Initialize it.
	(cselib_invalidate_regno): Use it to determine which hard
	registers to scan when mode is not VOIDmode.

2002-05-20  Duraid Madina   <duraid@fl.net.au>

	* tradcpp.c (fixup_newlines): Use old-style function header.

2002-05-20  Krister Walfridsson  <cato@df.lth.se>

	* reload1.c (reload_cse_simplify): Fix typo in rtx code check.

2002-05-20  H.J. Lu  (hjl@gnu.org)

	Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:

	* config/mips/mips.h (DFMODE_NAN): Defined.
	(SFMODE_NAN): Likewise.

2002-05-20  Dale Johannesen  <dalej@apple.com>

	* combine.c (cant_combine_insn_p):  Back out my
	previous patch.

2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>

	* params.c: Fix formatting.
	* params.h: Likewise.
	* predict.c: Likewise.
	* prefix.c: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.

2002-05-20  H.J. Lu  (hjl@gnu.org)

	* gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.

2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
	switches straight on to the assembler, do not abbreviate them.
	* config/arm/elf.h (ASM_SPEC): As above.
	* config/arm/semi.h (ASM_SPEC): As above.
	* config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
	* config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
	-mcpu=xscale on to the assembler by default.
	* config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.

2002-05-20  Richard Henderson  <rth@redhat.com>

	* cse.c (canon_hash): Reorder do_not_record test.  Always
	allow pic_offset_table_rtx.

2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>

	* optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
	(expand_binop): Ditto (3 times).

2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>

	* Makefile.in (distclean): Remove QMTest stuff.
	(QMTEST_PATH): New variable.
	(QMTESTFLAGS): Likewise.
	(QMTESTRUNFLAGS): Likewise.
	(QMTEST): Likewise.
	(QMTEST_GPP_TESTS): Likewise.
	(QMTEST_DIR): Likewise.
	(QMTEST_DIR/context): New target.
	(qmtest-g++): Likeise.
	(qmtest-gui): Likewise.
	(QMTEST_DIR/gpp-expected.qmr): Likewise.

2002-05-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
	an altivec register if TARGET_ALTIVEC.

	* config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
	to ALTIVEC_VECTOR_MODE.
	(rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
	(rs6000_va_arg): Vectors may go in registers if they are not
	altivec vectors.

2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>

	* protoize.c: Fix formatting.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* gensupport.c (init_include_reader): Merge into ...
	(process_include): ... here.  Simplify composite path creation.
	Plug memory leaks.  Fix file/line number tracking.  Do not
	process_define_cond_exec.  Return void.
	(process_rtx): Don't check process_include return value.

2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* basic_block.h (struct basic_block_def): Added prev_bb and next_bb
	fields.
	(FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
	traversing basic block chain.
	(create_basic_block_structure, create_basic_block): Declaration changed.
	(link_block, unlink_block): Declare.
	* cfg.c (entry_exit_blocks): Initialize new fields.
	(link_block, unlink_block): New.
	(expunge_block_nocompact): Unlink basic block.
	(dump_flow_info): Print prev_bb/next_bb fields.
	* cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
	* cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
	* cfgrtl.c (create_basic_block_structure, create_basic_block,
	split_block, force_nonfallthru_and_redirect, split_edge): Modified.
	(verify_flow_info): Check that list agrees with numbering.

2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (preprocessing_asm): New macro.
	* c-lex.h (builtin_define, builtin_assert): Use pfile.
doc:
	* tm.texi: Update.
config/alpha:
	* alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
	(CPP_SPEC): Simplify.
	(TARGET_CPU_CPP_BUILTINS): Update.
	* freebsd.h (TARGET_OS_CPP_BUILTINS): New.
	(CPP_SPEC): Simplify.
	* linux.h (CPLUSPLUS_CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): Update.
	* osf.h (CPP_XFLOAT_SPEC): Kill.
	(TARGET_OS_CPP_BUILTINS): Update.
	(CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
	* osf5.h (CPP_XFLOAT_SPEC): Kill.
	* vms.h (CPP_SUBTARGET_SPEC): Kill.
	(TARGET_OS_CPP_BUILTINS): Update.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_binds_local_p): Fix typo.

2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (machine_dependent_reorg): Sign extend the
	CONST_INT operand to the correct mode after adding 1 to it.

2002-05-19  Mark Mitchell  <mark@codesourcery.com>

	* config.gcc (powerpc-wrs-windiss*): New target.

2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.md (ashrdi3_no_power): New.
	(ashrdi3): Use it.

2002-05-18  Mark Mitchell  <mark@codesourcery.com>

	* configure.in (AC_CHECK_FUNCS): Add checks for scandir and
	alphasort.
	* config.in: Regenerated.
	* configure: Regenerated.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* target-def.h (TARGET_BINDS_LOCAL_P): New.
	* target.h (struct gcc_target): Move boolean fields to the end.
	Add binds_local_p.
	* varasm.c (default_binds_local_p): New.
	* output.h: Declare it.

	* config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
	* config/cris/cris.c (cris_encode_section_info): Likewise.
	* config/i386/i386.c (i386_encode_section_info): Likewise.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/sh/sh.c (sh_encode_section_info): Likewise.

	* doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
	(TARGET_BINDS_LOCAL_P): New.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
	FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
	MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.

	* toplev.c (display_help): Kill -a -ax help.

	* config/1750a/1750a.h, config/alpha/alpha.h,
	config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
	config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
	(FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.

	* libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
	* config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.

	* config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
	(ix86_output_function_block_profiler): Kill.
	* config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
	(m68hc11_function_block_profiler): Kill.
	* config/m68hc11/m68hc11-protos.h: Update.
	* config/m88k/m88k.c (output_block_profiler): Kill.
	(output_function_block_profiler): Kill.
	* config/m88k/m88k-protos.h: Update.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* system.h (STRIP_NAME_ENCODING): Poison it.
	* output.h (STRIP_NAME_ENCODING): Remove.
	(default_strip_name_encoding): Declare.
	* target-def.h (TARGET_STRIP_NAME_ENCODING): New.
	* target.h (strip_name_encoding): New.
	* varasm.c (default_strip_name_encoding): New.

	* dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
	config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
	config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
	config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
	config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
	config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
	config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
	config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
	config/v850/v850.h: Use the hook, not the macro.

	* config/darwin-protos.h, config/darwin.c, config/darwin.h,
	config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
	config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
	config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
	config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
	config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
	config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
	config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
	config/v850/v850.c, config/v850/v850.h:
	Move STRIP_NAME_ENCODING to out-of-line function and add
	TARGET_STRIP_NAME_ENCODING.

	* config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
	config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
	with TARGET_STRIP_NAME_ENCODING referencing existing function;
	make function static.

	* xcoffout.c: Include target.h
	* Makefile.in (xcoffout.o): Update.

	* config/avr/avr.c (avr_encode_section_info): Correct prototype.
	* config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
	* config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
	reloc argument unused.
	* config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.

	* doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
	STRIP_NAME_ENCODING docs.

2002-05-19  Andreas Jaeger  <aj@suse.de>

	* gengenrtl.c: Add prototype for excluded_rtx.

	* real.h: Add prototype for exact_real_truncate.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* system.h (ENCODE_SECTION_INFO): Poison it.
	* target-def.h (TARGET_ENCODE_SECTION_INFO): New.
	* target.h (encode_section_info): New.
	* varasm.c (make_decl_rtl, output_constant_def): Use it.
	* hooks.c (hook_tree_int_void): New.
	* hooks.h: Declare it.

	* config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
	config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
	config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
	config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
	config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
	config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
	config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
	config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
	config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
	config/stormy16/stormy16.c, config/stormy16/stormy16.h:
	Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
	referencing existing function.  Make function static.

	* config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
	config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
	config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
	config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
	config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
	config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
	config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
	config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
	config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
	config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
	config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
	config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
	config/xtensa/xtensa.c, config/xtensa/xtensa.h:
	Move ENCODE_SECTION_INFO to out-of-line function and add
	TARGET_ENCODE_SECTION_INFO.

	* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
	(ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.

	* config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
	from SUBTARGET_*
	(switch_to_section): Replace in_rdata case with in_readonly_data.

	* config/h8300/h8300.c (h8300_encode_label): Make static.
	* config/h8300/h8300-protos.h: Update.

	* config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
	from rs6000_encode_section_info; make static.
	(rs6000_xcoff_encode_section_info): New.

	* config/v850/v850.c (v850_encode_data_area): Make static.
	* config/v850/v850-protos.h: Update.

	* config/vax/vax.c: Include flags.h.
	(vms_select_section): Fix typo.

	* doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
	ENCODE_SECTION_INFO docs.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
	REGISTER_TARGET_PRAGMAS.
	* config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.

	* config.gcc: Do not use rs6000-c.c on powerpc-darwin.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* system.h (SELECT_RTX_SECTION): Poison.
	* target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
	* target.h (select_rtx_section): New.
	* varasm.c (output_constant_pool): Use it.
	(default_select_rtx_section, default_elf_select_rtx_section): New.
	* output.h: Declare them.

	* config/darwin.h (SELECT_RTX_SECTION): Move ...
	* config/darwin.c (machopic_select_rtx_section): ... here.
	* config/darwin-protos.h: Update.

	* config/nextstep.h (SELECT_RTX_SECTION): Move ...
	* config/nextstep.c (machopic_select_rtx_section): ... here.
	(nextstep_select_section): Rename variable to avoid macro clash.
	* config/nextstep-protos.h: Update.

	* config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
	config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
	config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
	config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
	config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
	config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
	config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
	config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
	config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
	(SELECT_RTX_SECTION): Remove.

	* config/darwin.h, config/elfos.h, config/nextstep.h,
	config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
	config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
	config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
	config/sparc/lynx.h, config/xtensa/xtensa.c
	(TARGET_ASM_SELECT_RTX_SECTION): New.

	* config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
	* config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
	* config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
	* config/ia64/ia64.c (ia64_select_rtx_section): ... here.
	(ia64_aix_select_rtx_section): New.
	* config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
	redefining.
	* config/mips/mips.c (mips_select_rtx_section): Make static.
	Support ELF SHF_MERGE features.
	* config/mips/mips-protos.h: Update.
	* config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
	* config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
	(rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
	make static, fall back to default_elf_select_rtx_section.
	* config/rs6000/rs6000-protos.h: Update.
	* config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
	* config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
	* config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
	* config/romp/romp.c (romp_select_rtx_section): New.
	* config/s390/s390.c (s390_select_rtx_section): New.
	* config/xtensa/xtensa.c: Include output.h.  Shuffle local function
	declarations before target macro definition.
	(xtensa_emit_call): Use static buffer.
	(xtensa_select_rtx_section): New.
	* config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
	(IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
	(ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.

	* doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
	SELECT_RTX_SECTION docs.

Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movsi/movdi): Fix template.
	(sse2 patterns): Set attributes consistently.

	* i386.md (pushqi2, ashrqi_*): Fix constraint.

2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>

	* optabs.c (complex_part_zero_p): New.
	* (expand_cmplxdiv_straight): Use it.
	* (expand_cmplxdiv_wide): Ditto.
	* (expand_binop): Ditto.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* final.c (HAVE_READONLY_DATA_SECTION): New.
	(shorten_branches): Use it instead of ifdefs.
	* varasm.c (enum in_section): Add in_readonly_data.
	(text_section, data_section): Tidy.
	(readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.

	* config/darwin.h, config/nextstep.h, config/h8300/elf.h,
	config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
	(READONLY_DATA_SECTION): Don't undef.

	* config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
	config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
	config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.

	* config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
	config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
	config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.

	* config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
	config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
	config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
	config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
	config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
	config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
	config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
	config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
	CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.

	* config/elfos.h, config/netware.h, config/1750a/1750a.h,
	config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
	config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
	config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h, config/sparc/litecoff.h
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.

	* config/elfos.h, config/netware.h, config/svr3.h,
	config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
	config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i386/i386-interix.h,
	config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.

	* config/elfos.h, config/netware.h, config/svr3.h,
	config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
	config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.

	* config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
	config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
	config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
	config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
	config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
	config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
	config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
	config/rs6000/sysv4.h, config/v850/v850.h
	(EXTRA_SECTIONS): Remove in_const/in_rdata.
	(EXTRA_SECTION_FUNCTIONS): Remove accompanying function.

	* config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
	config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
	config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
	* config/alpha/alpha.c (alpha_start_function): Likewise.
	(alpha_write_linkage): Likewise.
	* config/m32r/m32r.c (m32r_select_section): Likewise.
	* config/m88k/m88k.c (m88k_select_section): Likewise.
	* config/mips/mips.c (mips_select_rtx_section): Likewise.
	* config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
	(rs6000_elf_select_section): Likewise.
	* config/v850/v850.c (v850_select_section): Likewise.

	* config/1750a/1750a.h, config/i860/sysv3.h
	(READONLY_DATA_SECTION_ASM_OP): New.
	READONLY_DATA_SECTION_ASM_OP.
	* config/i386/interix.c, config/i386/winnt.c
	(i386_pe_unique_section): Always use .rdata prefix.
	* config/pa/som.h (readonly_data): Always switch to read-only section.
	(READONLY_DATA_SECTION): Predicate on flag_pic.
	* config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
	* doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
	(READONLY_DATA_SECTION): Update.

2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* c-common.c (c_common_post_options): Warn if -Wformat-zero-length
	is used without -Wformat.
	* c-common.h (warn_format_zero_length): Declare extern.
	* c-decl.c (warn_options): Add "format-zero-length".
	* c-format.c (warn_format_zero_length): Declare.
	(set_Wformat): Set warn_format_zero_length for -Wformat.
	(check_format_info): Only warn about zero-length formats if
	warn_format_zero_length is true.  Include the format type
	name in the warning message.
	* doc/invoke.texi: Document -Wformat-zero-length.
	* testsuite/gcc.dg/format/zero-length-1.c: New test.

2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>

	* timevar.c: Fix formatting.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.

2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (cpp_post_options): If preprocessed, turn off
	traditional.  If traditional, turn off column numbers.
	* cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
	* cpptrad.c (handle_newline): Update line_base.
	(skip_comment): Handle -Wcomment.

2002-05-17  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (struct builtin): Remove unused fields.
	(CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
	(operator_array): New - was second half of builtin_array.
	(init_builtins): Simplify loop over builtin_array/operator_array.

2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* defaults.h (UNIQUE_SECTION): Remove.
	* system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* expr.c (init_expr_once): Don't use start/end_sequence.
	Use rtx_alloc instead of emit_insn.
	* toplev.c (lang_dependent_init): Run init_expr_once here ...
	(lang_independent_init): ... not here.

2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.

2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_regs_to_save): New function.  Also check
	for fixed registers, possibly used for global register variables.
	(initial_elimination_offset, avr_output_function_prologue,
	avr_output_function_epilogue):  Move common code to avr_regs_to_save.

2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update for cpptrad.c.
	* cpphash.h (struct cpp_buffer): New members for buffer
	overlays.
	(struct cpp_reader): New members for traditional output.
	(_cpp_read_logical_line, _cpp_overlay_buffer): New.
	* cppinit.c (cpp_create_reader): Set trad_line.
	(cpp_destroy): Free trad_out_base if used.
	(cpp_read_main_file): Overlay an empty buffer if traditional.
	(cpp_finish_options): Don't do builtins.
	(COMMAND_LINE_OPTIONS): Add -traditional-cpp.
	(cpp_handle_option): Handle it.
	* cpplex.c (continue_after_nul): New.
	(_cpp_lex_direct): Use handle_nul.
	* cpplib.h (struct cpp_options): New traditional option.
	* cpptrad.c: New file.

2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init_options): Use C89 for Objective-C,
	and set the options flag.
	* cppinit.c (lang_flags): Remove objc.
	(lang_defaults): Remove OBJC and OBJCXX.
	(set_lang): Update.
	(COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
	(cpp_handle_option): Remove -+ and -lang-objc++.
	For ObjC, just set a flag.
	(print_help): Update.
	* cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.

2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, mips-sgi-irix6): Document need to
	bootstrap with -mips3.

2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>

	* final.c: Fix formatting.
	* fix-header.c: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.

2002-05-17  David S. Miller  <davem@redhat.com>

	PR c/6689, PR optimization/6615
	* local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
	and make it a pointer to rtx.  Update comments.
	(update_equiv_regs): When scanning for equivalences, record
	address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
	it while making the equiv replacements.

2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.

2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
	when encoding visibility into SYMBOL_REF_FLAG.

2002-05-17  Richard Sandiford  <rsandifo@redhat.com>

	* expr.c (force_operand): Fix reversed move.

2002-05-17  Kurt Wall <kwall@kurtwerks.com>

	* doc/install.texi (Testing): Mention two common DejaGnu warnings
	that can be ignored.

2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Final install): Recommend to install into a
	"clean" target directory.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.md: Use braced strings instead of quoted strings
	for code blocks.  Tidy whitespace.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* hooks.c (hook_tree_bool_false): New.
	* hooks.h: Declare it.
	* target-def.h (TARGET_ASM_SELECT_SECTION): New.
	(TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
	* target.h (select_section, unique_section): New.
	(in_small_data_p): New.
	* varasm.c (resolve_unique_section): Use hooks instead of macros.
	(variable_section, output_constant_def_contents): Likewise.
	(default_select_section, default_unique_section): New.
	(categorize_decl_for_section, default_elf_select_section): New.
	* output.h: Declare them.

	* config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/darwin.c (machopic_select_section): ... here.
	* config/darwin-protos.h: Update.

	* config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/nextstep.c (nextstep_select_section): ... here.
	* config/nextstep-protos.h: Update.

	* config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/svr3.h (SELECT_SECTION): Remove.

	* config/alpha/alpha.c (unicosmk_unique_section): Make static.
	(TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
	(TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
	(alpha_encode_section_info): Use it.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/elf.h (DO_SELECT_SECTION): Remove.
	(SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.

	* config/arm/pe.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.

	* config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
	(avr_unique_section): Rename from unique_section; make static.
	* config/avr/avr-protos.h: Update.
	* config/avr/avr.h (UNIQUE_SECTION): Remove.

	* config/c4x/c4x.h (SELECT_SECTION): Remove.

	* config/i386/cygwin.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/win32.h: Likewise.
	* config/i386/djgpp.h (UNIQUE_SECTION): Remove.
	* config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
	* config/i386/sco5.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/i386/svr3gas.h (SELECT_SECTION): Remove.

	* config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
	instead of SELECT_SECTION.
	* config/m68k/dpx2.h: Likewise.
	* config/rs6000/lynx.h: Likewise.

	* config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
	* config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
	(ia64_in_small_data_p): New.
	(ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
	(ia64_aix_select_section, ia64_aix_unique_section): New.
	* config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
	(SELECT_SECTION, UNIQUE_SECTION): Remove.

	* config/m32r/m32r.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/m32r/m32r.c (m32r_select_section): Take align argument.
	* config/m32r/m32r-protos.h: Update.

	* config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/m88k/m88k.c (m88k_select_section): ... here.

	* config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
	* config/mcore/mcore.h (UNIQUE_SECTION): Remove.
	* config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
	(mcore_unique_section): Make static.
	* config/mcore/mcore-protos.h: Update.

	* config/mips/elf.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.
	* config/mips/elf64.h: Likewise.
	* config/mips/iris6gld.h: Likewise.
	* config/mips/linux.h: Likewise.
	* config/mips/mips-protos.h: Update.
	* config/mips/mips.c (mips_select_section): Add align argument.
	* config/mips/mips.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.

	* config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	* config/mmix/mmix.c (mmix_select_section): Remove.
	(mmix_unique_section): Remove.
	* config/mmix/mmix-protos.h: Update.

	* config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/pa/pa.c (pa_select_section): ... here.
	* config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.

	* config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
	from rs6000_select_section and make static.
	(rs6000_elf_unique_section): Similarly.
	(rs6000_xcoff_select_section): From xcoff.h.
	(rs6000_xcoff_unique_section): Likewise.
	* config/rs6000/rs6000-protos.h: Update.
	* config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
	* config/rs6000/xcoff.h: Likewise.

	* config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/sparc/sparc.c (sparc_aout_select_section): ... here.

	* config/v850/v850.h (SELECT_SECTION): Move ...
	* config/v850/v850.c (v850_select_section): ... here.
	(TARGET_ASM_SELECT_SECTION): New.

	* config/vax/vms.h (SELECT_SECTION): Move ...
	* config/vax/vax.c (vms_select_section): ... here.
	(TARGET_ASM_SELECT_SECTION): New.

	* doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
	for the target hooks.

2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (emit_multi_reg_push): Do not set
	RTX_FRAME_RELATED_P on the SEQUENCE.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
	splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.

	* config/ia64/ia64.c (saveable_obstack): Do not declare.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
	cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
	conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
	gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
	local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
	recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
	reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
	sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
	Revert "Basic block renumbering removal", and two followup patches.

2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>

	* lcm.c (optimize_mode_switching): Revert previous change.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* sched-rgn.c (schedule_insns): Initialize large_region_blocks
	with only extant block numbers.

2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>

	* lcm.c (optimize_mode_switching): Fix typo.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* flow.c (calculate_global_regs_live): Queue blocks in program order.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Configuration): Document PWDCMD.

2002-05-16  Dale Johannesen  <dalej@apple.com>

	* combine.c (cant_combine_insn_p):  Reenable combinations
	involving hard regs unless CLASS_LIKELY_SPILLED_P.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (cb_register_builtins): Handle more built-ins
	here rather than in gcc.c specs.
	* gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
	(cpp_options): Pass -O flags even when only preprocessing.
	* toplev.c (set_fast_math_flags): New prototype.
	(fast_math_flags_set_p): New.
	(set_no_fast_math_flags): Remove.
	(decode_f_option): Update.
	* toplev.h (set_fast_math_flags): Update.
	(fast_math_flags_set_p): New.
	(set_no_fast_math_flags): Remove.
config:
	* c4x/c4x.c (c4x_override_options): Update.

2002-05-16  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
	Default-define here.
	(builtin_define_with_value): Can now wrap the expansion in
	quotation marks if such is wanted.
	(cb_register_builtins): Update calls to	builtin_define_with_value.
	Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
	here.
	(c_common_init): Set options->stdc_0_in_system_headers.
	* c-lex.h: Update prototype of builtin_define_with_value.
	* cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
	and REGISTER_PREFIX.

	* cppinit.c (VERS, ULP, C, X): Kill.
	(builtin_array): Remove entries for __VERSION__,
	__USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
	__HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
	a constant.
	(init_builtins): Kill off a bunch of now-dead code.
	(COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
	-fno-leading-underscore.
	(cpp_handle_option): Remove code to set user_label_prefix.
	(cpp_post_options): Likewise.

	* cpplib.h (struct cpp_options): Remove user_label_prefix.
	(stdc_0_in_system_headers): New.
	* cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
	stdc_0_in_system_headers) too to decide the value of __STDC__.

	* tradcpp.c (user_label_prefix): Kill.
	(main): Remove code handling -f(no-)leading-underscore.
	(initialize_builtins): Don't define __REGISTER_PREFIX__
	or __USER_LABEL_PREFIX__.
	(install_value): Wrap compound statement in dummy loop so the
	macro works properly in an if statement.


2002-05-16  Janis Johnson  <janis187@us.ibm.com>

	* loop.h (struct loop_info): Add member has_prefetch.
	* loop.c (PREFETCH_CONDITIONAL): Change default to 1.
	(prescan_loop): Initialize has_prefetch.
	(struct prefetch_info): Change prefetch_in_loop and
	prefetch_before_loop from bit fields to ints.
	(emit_prefetch_instructions): Several small fixes.
	(check_dbra_loop): Don't reverse loop that uses prefetch.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Allow for PWDCMD to override hardcoded pwd.
	* configure.in: Likewise.
	* fixinc/check.tpl: Likewise.
	* fixinc/fixinc.dgux: Likewise.
	* fixinc/fixinc.svr4: Likewise.
	* fixinc/fixinc.winnt: Likewise.
	* fixinc/fixincl.sh: Likewise.
	* fixproto: Likewise.
	* configure: Regenerate.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	Basic block renumbering removal:
	* basic_block.h (struct basic_block_def): Renamed index to sindex,
	added prev_bb and next_bb fields.
	(n_basic_blocks): Renamed to num_basic_blocks.
	(last_basic_block): New, index of last basic block.
	(FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
	traversing basic block chain.
	(BLOCK_NUM): index -> sindex.
	(create_basic_block_structure, create_basic_block): Declaration changed.
	(debug_num2bb): Declare.
	(expunge_block_nocompact): Declaration removed.
	(link_block, unlink_block, compact_blocks): Declare.
	* bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
	* cfg.c (entry_exit_blocks): Initialize new fields.
	(clear_edges, alloc_block, expunge_block, cached_make_edge,
	redirect_edge_pred, dump_flow_info, dump_edge_info,
	alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
	free_aux_for_edges): Modified.
	(link_block, unlink_block, compact_blocks, debug_num2bb): New.
	(expunge_block_nocompact): Removed.
	* cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
	find_unreachable_blocks, create_edge_list, print_edge_list,
	verify_edge_list, flow_edge_list_print, remove_fake_successors,
	remove_fake_edges, flow_reverse_top_sort_order_compute,
	flow_depth_first_order_compute, flow_preorder_transversal_compute,
	flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
	flow_dfs_compute_reverse_execute): Modified.
	* cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
	find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
	Modified.
	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
	merge_blocks_move_predecessor_nojumps,
	merge_blocks_move_successor_nojumps, merge_blocks,
	outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
	try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
	* cfglayout.c (skip_insns_after_block, label_for_bb,
	record_effective_endpoints, scope_to_insns_finalize,
	fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
	fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
	cfg_layout_duplicate_bb): Modified.
	* cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
	flow_loop_entry_edges_find, flow_loop_exit_edges_find,
	flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
	flow_loops_find, flow_loop_outside_edge_p): Modified.
	* cfgrtl.c (create_basic_block_structure, create_basic_block,
	flow_delete_block, compute_bb_for_insn, split_block,
	try_redirect_by_replacing_jump, redirect_edge_and_branch,
	force_nonfallthru_and_redirect, tidy_fallthru_edge,
	back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
	commit_edge_insertions, commit_edge_insertions_watch_calls,
	dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
	purge_all_dead_edges): Modified.
	* combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
	try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
	get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
	Modified.
	* conflict.c (conflict_graph_compute): Modified.
	* df.c (FOR_ALL_BBS): Removed.
	(df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
	df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
	df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
	* df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
	* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
	calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
	* final.c (compute_alignments, final_scan_insn): Modified.
	* flow.c (verify_local_live_at_start, update_life_info,
	update_life_info_in_dirty_blocks, free_basic_block_vars,
	delete_noop_moves, calculate_global_regs_live,
	initialize_uninitialized_subregs, allocate_bb_life_data,
	regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
	mark_used_reg, count_or_remove_death_notes): Modified.
	* function.c (thread_prologue_and_epilogue_insns): Modified.
	* gcse.c (struct null_pointer_info): Change typo of current_block
	to basic_block.
	(gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
	oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
	compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
	alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
	expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
	classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
	one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
	pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
	pre_delete, one_pre_gcse_pass, compute_transpout,
	invalidate_nonnull_info, delete_null_pointer_checks_1,
	free_code_hoist_mem, compute_code_hoist_vbeinout,
	hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
	compute_ld_motion_mems, store_ops_ok, find_moveable_store,
	compute_store_table, build_store_vectors, insert_insn_start_bb,
	insert_store, replace_store_insn, free_store_memory, store_motion):
	Modified.
	* global.c (global_alloc, global_conflicts, mark_elimination,
	build_insn_chain): Modified.
	* graph.c (print_rtl_graph_with_bb): Modified.
	* haifa-sched.c (sched_init): Modified.
	* ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
	(find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
	if_convert): Modified.
	* lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
	compute_insert_delete, pre_edge_lcm, compute_available,
	compute_farthest, compute_nearerout, compute_rev_insert_delete,
	pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
	Modified.
	* local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
	* loop.c (loop_dump_aux): Modified.
	* predict.c (combine_predictions_for_insn, estimate_probability,
	last_basic_block_p, process_note_prediction, process_note_predictions,
	note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
	expensive_function_p, estimate_bb_frequencies,
	compute_function_frequency): Modified.
	* print-rtl.c (print_rtx): Modified.
	* profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
	get_exec_counts, compute_branch_probabilities, compute_checksum,
	branch_prob, find_spanning_tree): Modified.
	* recog.c (split_all_insns, peephole2_optimize): Modified.
	* reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
	convert_regs_1, convert_regs_2, convert_regs): Modified.
	* regclass.c (scan_one_insn, regclass): Modified.
	* regmove.c (mark_flags_life_zones, regmove_optimize,
	combine_stack_adjustments): Modified.
	* regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
	* reload1.c (reload, reload_combine, copy_eh_notes): Modified.
	* reorg.c (dbr_schedule): Modified.
	* resource.c (find_basic_block, init_resource_info): Modified.
	* sbitmap.c (sbitmap_intersection_of_succs,
	sbitmap_intersection_of_preds, sbitmap_union_of_succs,
	sbitmap_union_of_preds): Modified.
	* sched-deps.c (init_dependency_caches): Modified.
	* sched-ebb.c (schedule_ebbs): Modified.
	* sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
	find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
	* ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
	ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
	ssa_const_prop): Modified.
	* ssa-dce.c (set_control_dependent_block_to_edge_map_,
	find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
	* ssa.c (remove_phi_alternative, find_evaluations,
	compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
	insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
	make_regs_equivalent_over_bad_edges,
	make_equivalent_phi_alternatives_equival,
	compute_conservative_reg_partition,
	coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
	rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
	Modified.

2002-05-16  Mark Mitchell  <mark@codesourcery.com>

	* cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.

2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_rtx_costs): Check for RTX being a
	SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
	(arm_adjust_cost): Check for RTX being a SYMBOL_REF before
	calling CONSTANT_POOL_ADDRESS_P.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
	to decide whether to define __arm__ or __thumb.
	(THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
	SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/arc/arc.h (CPP_PREDEFINES): Remove.
	(CPP_SPEC): Update.
	(TARGET_CPU_CPP_BUILTINS): New.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (cpp_macro): Move here, and make expansion a union.
	* cppmacro.c (cpp_macro): Remove.
	(enter_macro_context, replace_args, warn_of_redefinition,
	_cpp_create_definition, cpp_macro_definition): Update.

2002-05-16  Jason Merrill  <jason@redhat.com>

	* config/mips/mips.c (mips_output_external): Don't do sdata
	optimization for a variable with DECL_COMDAT set.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Cleanups for tighter typechecking.
	Cleanups for accepting modifiers on pointers.
	Fix predicate typos.
	Allow long pointers as well as int pointers.

2002-05-15  Richard Henderson  <rth@redhat.com>

	* varasm.c (merge_weak): Remove special case for extern and common.

2002-05-15  Matt Hiller  <hiller@redhat.com>

	* testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
	XFAILing.
	* testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
	* testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
	* testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* reload1.c (forget_old_reloads_1): Do not use subreg offset.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
	("altivec_mfvscr"): Read from VSCR.

	Add vscr sets for the following insns: altivec_vctuxs,
	altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
	altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
	altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
	altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
	altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
	altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
	altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
	altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
	altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
	altivec_vsum2sws, altivec_vsumsws.

	* config/rs6000/rs6000.h: Add VSCR fixed register.
	(CALL_REALLY_USED_REGISTERS): Add vscr.
	(CALL_USED_REGISTERS): Same.
	(FIXED_REGISTERS): Same.
	(REG_ALLOC_ORDER): Same.
	(reg_class): Add VSCR_REGS.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(VSCR_REGNO): New.
	(REGISTER_NAMES): Add vscr.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(FIRST_PSEUDO_REGISTER): Increment.
	(CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.

2002-05-15  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold): Fix a typo.

2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>

	* fold-const.c (fold) [LT_EXPR]: Move the transformation of a
	comparison against the highest or lowest integer value before
	the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
	transformation and that of an unsigned comparison against 0
	right after.

2002-05-15  Richard Henderson  <rth@redhat.com>

	* varasm.c (merge_weak): Error for any weakening after definition.
	Adjust weakening after use warning to catch more cases.
	(assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
	* config/alpha/alpha.c (alpha_encode_section_info): Do not abort.

Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (-malign-double): Re-add lost warning.

	* i386-protos.h (x86_output_mi_thunk): Declare.
	* unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
	* i386.c (x86_output_mi_thunk): ... here; handle 64bits.

	* dwarf2out.c (output_call_frame_info): Do not skip unwind info
	when flag_asynchronous_unwind_tables is set.

	* flags.h (flag_reorder_functions): Declare.
	* function.c (prepare_function_start): Initialize frequnecy.
	* params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
	* Makefile.in (predict.o): Add dependency on target.h and params.h
	* defaults.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
	* predict.c (choose_function_section): New function.
	(estimate_bb_frequencies): Use it.
	* toplev.c (flag_reorder_functions): New global variable.
	(lang_independent_options): New.
	(parse_options_and_default_flags): Set.
	* varasm.c (assemble_start_function): Bypass functdion alignment
	for never executed functions.
	* invoke.texi (-freorder-blocks, -freorder-functions): Document.
	(param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
	* tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
	Document.

	Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c: Inlude profile.h
	(MIN_COUNT): Rename to MIN_COUNT_FRACTION
	(maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
	Use the information about maximal counter in the program.

	Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
	probably_never_executed_bb_p): New functions.
	* cfgcleanup.c (outgoing_edges_match): Use them.
	* predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
	(maybe_hot_bb_p, probably_cold_bb_p,
	probably_never_executed_bb_p): New functions.

	* function.h (function): Add new field function_frequency.
	* predict.c (compute_function_frequency): New function.
	(estimate_probability): Call it.

2002-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5172, optimization/5200
	* gcse.c (gcse_main): Disable store_motion.

2002-05-14  Zack Weinberg  <zack@codesourcery.com>

	* c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
	(c_common_nodes_and_builtins): Use it.
	(builtin_define_with_value): New function.
	(cb_register_builtins): Define __SIZE_TYPE__,
	__PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
	using builtin_define_with_value.  Use consistent notation when
	defining __GXX_WEAK__.
	(WCHAR_TYPE_SIZE): Don't redefine.
	(combine_strings): Don't use WCHAR_TYPE_SIZE.

	* cppdefault.h: Don't provide defaults for SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
	* cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
	* tradcpp.c (initialize_builtins): Likewise.
	* gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.

	* c-lex.h (builtin_define_with_value): Prototype.
	* system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
	NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
	* doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.

	* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
	config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
	config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
	config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
	config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
	config/sparc/linux64.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2-bi.h, config/sparc/sparc.h:
	Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
	to __SIZE_TYPE__ etc from all spec strings. When this makes
	extra specs empty, delete them.

2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
	for PA8000 or generating dwarf2 call frame information.
	(output_call): Remove DO_FRAME_NOTES check from return pointer
	optimization.
	(following_call): Return 0 when scheduling for PA8000 or generating
	dwarf2 call frame information.  Revise comment.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

config/alpha:
	* alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
	and __IEEE_FP_INEXACT as appropriate.
	(CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
	(CPP_SPEC): Remove ieee defines.
	* freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.

2002-05-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_save_reg): Make regno unsigned.
	(ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC): Update.
	(CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
	CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
	CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
	CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
	(EXTRA_SPECS): Update.
	* arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
	arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
	arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
	define TARGET_OS_CPP_BUILTINS if necessary.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc.c (cpp_options): Must pass -m* and -f* options
	to the front end even when only preprocessing.
	(cc1_options): Remove redundant -lang-c.
	* tradcpp.c (main): Ignore -m options.
objc:
	* lang-specs.h: Similarly.

2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (transform_3): Add code for transformation
	`(A,B,...)+C -> A+C,B,...'.

Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* final.c (end_final): Do not output profile_arcs constructor, when
	no functions are instrumented.

Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (testsi to testqi_zext_1 splitter): Fix typo.

2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi: Remove special markup originally required for
	HTML generation with texi2html.

2002-05-14  Andreas Schwab  <schwab@suse.de>

	* config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
	SELECT_SECTION.
	(UNIQUE_SECTION): Define to get small data correctly.

	* varasm.c (resolve_unique_section): Add third parameter
	flag_function_or_data_sections and use it instead of
	flag_function_sections.
	(assemble_start_function): Pass flag_function_sections.
	(asm_emit_uninitialised): Pass flag_data_sections.
	(assemble_variable): Likewise.

2002-05-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md: Use define_constants for unspec numbers.
	* config/i386/i386.c: Likewise.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/contrib.texi: Update my entry.

2002-05-13  Mark Mitchell  <mark@codesourcery.com>

	* fixinc/inclhack.def (winidss_valist): Limit applicability.
	* fixinc/fixincl.x: Regenerated.
	* fixinc/tests/base/math.h: Update.
	* fixinc/tests/base/testing.h: Likewise.

2002-05-13  Zack Weinberg  <zack@codesourcery.com>

	* genattr.c (gen_attr): Don't emit a comma after the last
	enumerator.

2002-05-13  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
	by non-local gotos.
	* recog.c (peephole2_optimize): Likewise.

2002-05-13  Andris Pavenis  <pavenis@lanet.lv>

	* cppfiles.c (open_file): Change mode (DJGPP only) of redirected
	input to O_BINARY.

2002-05-13  Jeffrey A Law  (law@redhat.com)

	* flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
	Update prototype and callers.
	(propagate_one_insn): Stack pointer adjustments kill MEMs on
	the mem_set_list which reference the stack pointer, as do
	calls to constant functions as they may clobber outgoing
	argument space.

	* i386.c (ia32_multipass_dfa_lookahead): Prototype.

	* i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
	(ia32_multipass_dfa_lookahead): New function.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
	(translate_options): Remove 'V'.
	(process_command): Similarly.
doc:
	* invoke.texi: Remove documentation of 'V'.

2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h: Revert 2002-04-22 changes.

2002-05-13  Scott Marks <SMarks@mobile-mind.com>

	* config/fr30/fr30.md: Only allow splits of immediate loads
	if the destination is a register.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (c-common.o, cppinit.o): Update.
	* c-common.c: Include except.h.
	(cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
	Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
	* cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
	* defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
	CPP_PREDEFINES): Handle here.
config:
	* alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
	alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
	alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
	TARGET_OS_CPP_BUILTINS.
	* alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC, EXTRA_SPECS): Update.
	(CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
	CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
	CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
	CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
	CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
	(TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.

2002-05-12  Zack Weinberg  <zack@codesourcery.com>

	* emit-rtl.c (global_rtl): Update comment.
	(const_double_htab, const_double_htab_hash,
	const_double_htab_hash, lookup_const_double): New.
	(const_int_htab_hash, const_int_htab_eq): Remove const
	qualifiers, which cause tons of warnings with RTL checking on.
	(gen_rtx_CONST_DOUBLE): Deleted.
	(const_double_from_real_value): New function - bears some
	resemblance to the former immed_real_const_1.
	(immed_double_const): Moved here from varasm.c and
	simplified.
	(gen_rtx_REG): Make REGNO unsigned to squelch warnings.
	(gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
	(gen_rtx): Use immed_double_const.
	(init_emit_once): Initialize the const_double_htab.  Use
	REAL_VALUE_FROM_INT where possible.  Can now use
	CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
	* varasm.c (struct varasm_status): Remove x_const_double_chain.
	(const_double_chain, immed_real_const, clear_const_double_mem): Delete.
	(immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
	(init_varasm_status, mark_varasm_status): Don't touch
	x_const_double_chain.

	* output.h: Delete prototype for clear_const_double_mem.
	* real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
	'0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
	const_double_from_real_value, not immed_real_const_1, and use
	it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
	CONST_DOUBLE_ATOF.
	* rtl.h (CONST_DOUBLE_CHAIN): Kill.
	(CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
	(gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
	(gen_rtx_REG): Second arg is unsigned.

	* gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
	(excluded_rtx): New, return true for CONST_DOUBLE.
	(genmacro): Write nothing for excluded codes.
	* combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
	* expr.c (expand_expr): Likewise.
	* ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
	CONST_DOUBLE_CHAIN.
	* toplev.c (rest_of_compilation): Don't call
	clear_const_double_mem.

	* config/rs6000/rs6000.c (rs6000_float_const): Delete.
	(rs6000_hash_constant): Remove CONST_DOUBLE special case.
	(toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
	* config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
	* config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
	* config/dsp16xx/dsp16xx.md, config/mips/mips.md,
	config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
	* config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.

2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.

2002-05-12  Tom Tromey  <tromey@redhat.com>

	* tree.h (copy_node): Don't mention TREE_PERMANENT.

2002-05-12  Zack Weinberg  <zack@codesourcery.com>

	* gensupport.c (n_comma_elts): Moved here from genattrtab.c.
	(scan_comma_elt): New function.  Accepts whitespace in comma lists.
	* gensupport.h: Prototype new routines.
	* genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
	use of printf.
	* genattrtab.c (n_comma_elts): Moved to gensupport.c.
	(next_comma_elt): Use scan_comma_elt.

	* config/i386/i386.md: Use new attribute notation to break up
	long lines in define_attr forms.

2002-05-12  Richard Henderson  <rth@redhat.com>

	* expr.c (compress_float_constant): New.
	(emit_move_insn): Use it.
	(float_extend_from_mem): New.
	(init_expr_once): Initialize it.
	* real.c (exact_real_truncate): New.

	* config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
	dropped into memory; penalize for size.
	(RTX_COSTS): FLOAT_EXTEND is free.
	* config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
	extenddfxf2, extenddftf2): Accept constants and drop them to memory.

2002-05-12  Richard Henderson  <rth@redhat.com>

	* profile.h (profile_info): Add missing extern to declaration.
	* profile.c (profile_info): Define it.

2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
	used for DImode and TImode.

2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (_cpp_lex_direct): When in a directive at EOF
	fake a newline.

2002-05-11  Zack Weinberg  <zack@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_default_long_calls,
	rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
	(TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
	(rs6000_override_options): Handle -m(no-)longcall.
	(init_cumulative_args, output_mi_thunk): Check for both
	longcall and shortcall attributes on the function.
	(rs6000_attribute_table): Add "shortcall".
	(rs6000_handle_longcall_attribute): Update comment.
	(altivec_expand_unop_builtin, altivec_expand_binop_builtin,
	altivec_expand_ternop_builtin): Add default clauses to switches
	to silence warnings.

	* config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
	rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
	(TARGET_OPTIONS): Add longcall and no-longcall.

	* config/rs6000/rs6000.md (call_nonlocal_sysv,
	call_value_nonlocal_sysv): Split by alternatives.  One pair
	accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
	the call cookie.  The other pair accepts only LR/CTR and has
	no restriction.

	* config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
	Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
	tmake_file.
	* config/rs6000/rs6000-c.c: New file.
	* config/rs6000/t-rs6000-c-rule: New file.
	* config/rs6000/rs6000-protos.c: Add multiple-include guard.
	Prototype rs6000_pragma_longcall.

	* doc/extend.texi: Document shortcall attribute.
	* doc/invoke.texi: Document -mlongcall, -mno-longcall.

2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* reorg.c (dbr_schedule): Remove unnecessary test.

Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (testsi to testqi spliters): New.

	2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>

	cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.

	Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>

	* basic-block.h: New flag EDGE_CAN_FALLTHRU
	* cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
	that can be made fallthru.

	Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (cleanup_unconditional_jumps): New static function.
	(cfg_layout_initialize): Use it.

2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Update supported devices.
	* config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>

	* dbxout.c: Fix formatting.
	* dependence.c: Likewise.
	* df.c: Likewise.
	* diagnostic.c: Likewise.
	* doloop.c: Likewise.
	* dominance.c: Likewise.
	* doschk.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.

2002-05-10  Richard Henderson  <rth@redhat.com>

	* final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
	Convert integers constants as needed.  Replace "nwords" field with
	"sizeof_bb".
	(final): Save profile data if cfun->arc_profile, not profile_arc_flag.
	* function.h: Fix typo in comment.
	* libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".

2002-05-10  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
	into the equivalent (signed char)c > 0.

2002-05-10  Janis Johnson  <janis187@us.ibm.com>

	* loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
	(PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
	(struct prefetch_info): Fix spelling of member bytes_accessed.
	(emit_prefetch_instructions): Make dump messages more regular;
	restructure code to add more dump messages; use new macros for
	heuristics. (There are no code generation changes in any of this).

2002-05-10  David S. Miller  <davem@redhat.com>

	* rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
	(struct rtx_def): Update unchanging flag comment.
	* doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
	* reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
	to be handled to INSN too.
	(dbr_schedule): Likewise.
	* resource.c (next_insn_no_annul): Likewise.

	* cse.c (rtx_cost): Remove multiplication by power of 2 special
	casing.

2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Specific, *-*-solaris2*): Update passus on
	setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
	(possibly) work around broken /bin/sh.

2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
	. as N64/N32 libgcc_s.so subdirs.

2002-05-10  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md: Use define_constants for unspec numbers.

	* rtl.h (struct rtx_def): Document unchanging and in_struct flags
	more accurately.
	(INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
	comment.
	(INSN_FROM_TARGET_P): Valid also for CALL_INSN.
	* doc/rtl.texi: Document these macros more accurately.
	* recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
	JUMP_INSNs and CALL_INSNs.
	* resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
	or INSN_FROM_TARGET_P if the code is appropriate.

2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
	before using SYMBOL_REF_FLAG (addr).

	* config/avr/avr-protos.h (avr_io_address_p): Declare.
	* config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
	Make non-static.  Update all callers.
	* config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
	New insns to clear/set/test a single bit in I/O address space.

2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* c-common.c (flag_iso, flag_undef, cb_register_builtins,
	builtin_define_std): New.
	(c_common_init): Register CPP builtins callback.
	* c-common.h (flag_iso, flag_undef): New.
	* c-decl.c (c_decode_option): Set flag_iso and flag_undef.
	* c-lex.c: Don't include target.h.
	(cb_register_builtins): Move to c-common.c.
	(init_c_lex): Don't register hook here.
	* c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
	(cpp_define, cpp_assert): Remove.
	* gcc.c (cc1_options): Pass -undef to front end.
	* target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
	(TARGET_INITIALIZER): Update.
	* target.h (struct cpp_reader): Don't predeclare.
	(struct gcc_target): Remove cpp builtin hook.
	* tree.c (default_register_cpp_builtins): Remove.
doc:
	* tm.texi: Update.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (_cpp_expand_op_stack): Set op_limit.

2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
	(SHLIB_LINK, SHLIB_INSTALL): Adjust.

2002-05-09  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
	* config/sparc/libgcc-sparc-glibc.ver: New file.
	* config/cris/t-linux (SHLIB_MAPFILES): Remove.
	* mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.

2002-05-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/6429
	* Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
	* mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
	shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
	base multilibs.
	* config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
	* config/t-slibgcc-sld (SHLIB_LINK): Likewise.
	* config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
	* config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.

2002-05-09  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.md: Use define_constants for unspec numbers.
	* config/ia64/ia64.c: Likewise.

2002-05-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
	(save_restore_insns): Likewise.
	(mips_expand_prologue, mips_expand_epilogue): Update callers.
	(highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.

Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)

	* athlon.md, k6.md, pentium.md, ppro.md): New files.
	* i386.md: Move scheduling information into new files.

	* i386.md (type attribute): Add "rotate" for rotate insns.
	(rotate insns): Set type to "rotate".
	(various attributes and function units): Treat rotate like shift.
	(pent_pair attribute): Only rotates by one bit position are
	pairable.
	(sbb insns): Explicitly set pent_pair attribute on a couple
	that were missing it.

Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_builtin_saveregs): If starting with an odd fp register,
	make sure that buffer starts on odd word address.
	(sh_va_arg): Skip odd fp registers when reading a double precision
	value.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* tree.h (preserve_data, object_permanent_p, type_precision):
	Remove.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
	* cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
doc:
	* cpp.texi: Update for removal of obsolete features.

Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
			  Jeffrey A Law  (law@redhat.com)

	* i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
	the DFA interface for Pentium processors.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
	(attr_pent_pair, ix86_pent_find_pair): Remove.
	(ix86_sched_reorder_pentium): Remove.
	(ix86_sched_reorder): Remove reordering for Pentium.
	* i386.md (Pentium scheduling): Rewrite using DFA description.

Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfganal.c (can_fallthru): Fix fast path.
	* cfgrtl.c (verify_flow_info): Avoid crash on conditionals
	with edges to the next block.

Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
			       Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>

	* final.c (end_final): Use C trees to output data structures for profiling.

	* Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
	(profile.o): New dependency profile.h
	(final.o): New dependency profile.h
	* profile.h: New file. New global structure profile_info.
	* final.h (count_edges_instrumented_now): Declare.
	(current_function_cfg_checksum): Declare.
	(function_list): New structure.
	(functions_head, functions_tail): New static variables.
	(end_final): Emits more data, removed some -ax stuff.
	(final): Stores function names and chcksums.
	* gcov-io.h (__write_gcov_string): New function.
	(__read_gcov_string): New function.
	* gcov.c (read_profile): New function.
	(create_program_flow_graph): Uses read_profile instead of reading
	da_file.
	(read_files): Removed da_file checking, it's done by read_profile now.
	* libgcc2.c (bb_function_info): New structure.
	(bb): New field in structure, removed some -ax stuff.
	(__bb_exit_func): Changed structure of da_file.
	* profile.c (count_edges_instrumented_now): New global variable.
	(current_function_cfg_checksum): New global variable.
	(max_counter_in_program): New global variable.
	(get_exec_counts): New function.
	(compute_checksum): New function.
	(instrument_edges): Sets count_edges_instrumented_now.
	(compute_branch_probabilities): Uses get_exec_counts instead of
	reading da_file.
	(branch_prob): Calls compute_checksum and writes extra data to bbg_file.
	(init_branch_prob): Removed da_file checking, done in get_exec_counts
	now.
	(end_branch_prob): Removed da_file checking, done in get_exec_counts
	now.
	* gcov.texi: Updated information about gcov file format.

2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>

	* sbitmap.c: Fix formatting.
	* scan.c: Likewise.
	* scan-decls.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa-dce.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* stringpool.c: Likewise.

2002-05-09  David S. Miller  <davem@redhat.com>

	* config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.

2002-05-07  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
	* config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
	* config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
	library implementation clobbers the output before the inputs
	are fully consumed, use stack temporary for the output.

2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (CPP_SPEC): Remove.
	* config/i386/netbsd-elf.h (CPP_SPEC): Define.
	* config/i386/netbsd.h (CPP_SPEC): Define.
	* config/ns32k/netbsd.h (CPP_SPEC): Define.
	* config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
	* config/sparc/netbsd.h (CPP_SPEC): Define.
	* config/vax/netbsd.h (CPP_SPEC): Define.

2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* resource.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.c: Likewise.
	* rtl-error.c: Likewise.

2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
	* pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.

2002-05-08  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
	use __SSE2__ macro instead.
	* config/i386/xmmintrin.h: Likewise.

2002-05-08  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
	and use it in all invocations of these macros.  Clean up comments.
	* rtl.c (rtl_check_failed_flag): Add an argument for the name
	of the flag access macro whose check failed.
	* doc/rtl.texi (Flags): Document additional flag uses.

2002-05-08  Robert Spier <rspier@pobox.com>
	    Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6521
	* cppfiles.c (handle_missing_header): Don't do anything
	different for <> includes.
doc:
	* cppopts.texi: Update documentation for -MG.

2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Truncate as well as
	sign-extend.
doc:
	* cpp.texi: Clarify multichar charconst valuation.

2002-05-08  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: Document -mwindiss option.

2002-05-08  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.

	* dwarf2out.c (gen_type_die): Abort on broken recursion.

	PR c++/6381
	* dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
	REAL_CST.

2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
	little-endian multilibs to override arm/thumb multilibs.
	Do not build hardware floating point multilibs, nor apcs-26
	multilibs for the Thumb.

2002-05-08  Mark Mitchell  <mark@codesourcery.com>

	PR c/6569.
	* varasm.c (mark_weak): New function.
	(merge_weak): Use it.  Do not call declare_weak.
	(declare_weak): Use merge_weak.

Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cse.c (dead_libcall_p): Update counts.
	(delete_trivially_dead_insns): Update call of dead_libcall_p.

Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (function_tail_eff_head): Rename to ...
	(function_footer): ... this one.
	(unlink_insn_chain): New functions.
	(label_for_bb): Only call block_label and emit debug message.
	(record_effective_endpoints): Actually unlink the headers and footers.
	(fixup_reorder_cahin): Re-insert the unlinked sequences.
	(cfg_layout_duplicate_bb): Use duplicate_insn_chain.
	* cfglayout.h (struct reorder_block_def): New fields footer/header;
	remove eff_head/eff_end.
	* rtl.h (set_first_insn): Declare.
	* emit-rtl.c (set_first_insn): New function.

	* cfglayout.c (fixup_reorder_chain): Dump duplicated
	(cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
	cfg_layout_duplicate_bb): New global function.
	(duplicate_insn_chain): New static function.
	* cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
	cfg_layout_duplicate_bb): Declare.
	(struct reorder_block_def): Add "original" field.
	* emit-rtl.c (emit_copy_of_insn_after): New function.
	* rtl.h (emit_copy_of_insn_after): Declare.

	* cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
	(fixup_reorder_chain): properly handle edges to exit block.

Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
			       Jan Hubicka  <jh@suse.cz>

	* basic-block.h (note_prediction_to_br_prob): declare.
	* c-semantics.c: Include predit.h
	(expand_stmt): predict GOTO_STMT as not taken.
	* cfgcleanup.c: (delete_unreachable_blocks): Make global.
	(cleanup_cfg): Do not free tail_recursion_list.
	* cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
	(flow_delete_block): Kill predictions past end of basic block.
	* output.h (delete_unreachable_blocks): Declare.
	* predict.c (predicted_by_p, process_note_predictions,
	process_note_prediction, last_block_p): New function.
	(estimate_probability): Bypass loop on PRED_CONTINUE;
	do not handle noreturn heuristics; kill PRED_RETURN; add
	PRED_EARLY_RETURN.
	* predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
	PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
	* predict.h (IS_TAKEN): New constant.
	* print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
	* rtl.c (NOTE_INSN_PREDICTION): New.
	* rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
	New macro.
	(insn_note): add NOTE_INSN_PREDICTION.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
	CFG; free tail_recursion_label_list.
	* stmt.c: Include predict.h;
	(return_prediction): New.
	(expand_value_return): Use it.
	* toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.

2002-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Name the unspecs with define_constant.
	(*HILO_delay): Rename to 'hilo_delay' (no star).
	(reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
	(reload_outdi, reload_outsi): Likewise.

2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>

	* toplev.c: Fix formatting.

2002-05-07  Janis Johnson  <janis187@us.ibm.com>

	* config.in (ENABLE_RTL_FLAG_CHECKING): New.
	* configure.in (ac_rtlflag_checking): New.
	* doc/install.texi (--enable-checking): Document RTL flag checking.

2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Set options->unsigned_wchar.
	* cppinit.c (cpp_create_reader): Default unsigned_wchar,
	group target dependencies.
	(init_builtins, cpp_handle_option): Update.
	* cpplex.c (cpp_interpret_charconst): Update.
	* cpplib.h (struct cpp_options): Add unsigned_wchar, rename
	signed_char to unsigned_char, group target dependencies.
	* defaults.h (WCHAR_UNSIGNED): Remove.
	* system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
config:
	* freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
	i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
	i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
	i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
	sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
doc:
	* tm.texi: Remove MAX_CHAR_TYPE_SIZE.

2002-05-07  Mark Mitchell  <mark@codesourcery.com>

	* fixinc/inclhack.def (windiss_math1): New fix.
	(windiss_math2): Likewise.
	(windiss_valist): Likewise.
	* fixinc/fixincl.x: Regenerated.

2002-05-07  Andreas Jaeger  <aj@suse.de>

	* genautomata.c (output_internal_min_issue_delay_func): Add
	ATTRIBUTE_UNUSED to avoid warning with empty dfa.
	(output_internal_trans_func): Likewise.

Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (hppa_profile_hook): Use force_reg to get the address
	of the profile hook into an appropriate pseudo register.

2002-05-07  Mark Mitchell  <mark@codesourcery.com>

	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
	(LINK_START_SPEC): Handle it.
	(LINK_OS_SPEC): Likewise.
	(CPP_SPEC): Likewise.
	(STARTFILE_SPEC): Likewise.
	(LIB_SPEC): Likewise.
	(ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
	all platforms.
	(CRTSAVRES_DEFAULT_SPEC): New macro.
	(LIB_WINDISS_SPEC): New macro.
	(CPP_OS_WINDISS_SPEC): Likewise.
	(STARTFILE_WINDISS_SPEC): Likewise.
	(ENDFILE_WINDISS_SPEC): Likewise.
	(LINK_START_WINDISS_SPEC): Likewise.
	(LINK_OS_WINDISS_SPEC): Likewise.
	* config/rs6000/windiss.h: New file.

2002-05-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.

2002-05-06  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (shift insns): Do not mask off
	second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
	take care of it.

2002-05-06  Richard Henderson  <rth@redhat.com>

	PR c++/6212
	* expr.c (highest_pow2_factor_for_type): New.
	(expand_assignment): Use it.

2002-05-06  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
	unspec_volatile.
	("altivec_mfvscr"): Same.

2002-05-06  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (struct rtx_def): Update comments.
	(RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
	(RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
	RTL_FLAG_CHECK macros with list of expected RTL codes.
	* rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
	(rtl_check_failed_flag): New.
	* reload1.c (reload): Use REG macro before changing rtx to MEM.
	(reload_cse_noop_set_p): Check rtx code before using access macro.
	* config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
	before using access macro.

2002-05-06  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Flags): Update to reflect current usage.

2002-05-06  Roger Sayle  <roger@eyesopen.com>

	PR opt/3995
	* fold-const.c (sign_bit_p): New function.
	(fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
	(A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
	Reapply fold when converting (A & C) == C into (A & C) != 0.
	(fold_binary_op_with_conditional_arg): Fix typo in comment.

2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (warn_multichar): New.
	(c_common_init): Set CPP's warn_multichar.
	* c-common.h (warn_multichar): New.
	* c-decl.c (warn_multichar): Remove.
	* c-lex.c (lex_charconst): Update.
	* c-tree.h (warn_multichar): Remove.
	* cppexp.c (eval_token): Sign-extend charconst value.
	* cppinit.c (cpp_create_reader): Set warn_multichar.
	* cpplex.c (cpp_interpret_charconst): Don't sign-extend
	each character.  Update prototype.  Sign-extend the result.
	* cpplib.h: Fix conditions.
	(struct cpp_options): Add new warning flag.
	(cpp_interpret_charconst): Update prototype.
doc:
	* cpp.texi: Update documentation.

2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
	Fix typo in usage of allof instead of unit.

2002-05-06  Richard Henderson  <rth@redhat.com>

	* recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
	and any jump or call for IN.

2002-05-06  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
	-msse2.
	* config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.

2002-05-06  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (lshift-double): Cast the high word to an unsigned
	HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
	(div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
	avoid compiler warning.  (fold): Remove redundant code from
	BIT_AND_EXPR as integer operands are canonicalized to be arg1.

2002-05-06  Jeff Law  <law@redhat.com>

	* pa-protos.h (hppa_fpstore_bypass_p): Declare.
	* pa.c (pa_adjust_cost): Remove all true dependency cost
	adjustments.  Also remove support for non-DFA scheduling.
	* pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
	to adjust true dependency costs.  Update various comments.
	(7100lc, 7200, 7300 scheduling): Simplify by combining the
	FP ALU & MPY units into a single unit.

2002-05-06  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.c (compute_register_save_size): Make sure
	to count all of the registers that will be saved.

Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (q_regs_operand): Use ANY_QI_REGS_P.

2002-05-06  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
	allow result to overlap input operands in memory.

2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>

doc:
	* cpp.texi: Update multichar charconst docs.

2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Sign-extend each
	character.  Don't ignore excess characters.  Treat
	multicharacter character constants as signed.
	(cpp_parse_escape): Clarify diagnostic.

2002-05-05  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
	use add instead of shift.
	(ashldi3_sp64): Likewise.
	(ashlsi3_const1, ashldi3_const1): Remove.
	* config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
	* config/sparc/sparc.c (const1_operand): New.

2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (alpha*-*-netbsd*): Don't use crtstuff.

2002-05-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/6561
	* config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.

2002-05-05  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
	memory latency adjustments.
	(alpha_variable_issue): Remove.
	(alpha_use_dfa_pipeline_interface): New.
	(alpha_multipass_dfa_lookahead): New.
	* config/alpha/alpha.md: Remove define_function_unit scheduling;
	include new dfa scheduling.
	(attr type): Add none.
	(blockage): Use it.
	* config/alpha/ev4.md: New.
	* config/alpha/ev5.md: New.
	* config/alpha/ev6.md: New.

2002-05-05  David S. Miller  <davem@redhat.com>

	* recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.

2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: Fix formatting.
	* emit-rtl.c: Likewise.

2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (initiate_states): Add additional guard to
	initialize `units_array'.

2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
	process_unit_to_form_the_same_automaton_unit_lists,
	form_the_same_automaton_unit_lists
	check_unit_distributions_to_automata): New prototypes and
	functions.
	(check_automata): Rename it into `check_automata_insn_issues'.
	(unit_decl): New fields `the_same_automaton_unit' and
	`the_same_automaton_message_reported_p'.
	(unit_decl_t): New typedef.
	(the_same_automaton_lists): New gloval variable.
	(unit_regexp, unit_set_el, units_array, units_cmp,
	output_get_cpu_unit_code_func): Use the typedef.
	(evaluate_max_reserv_cycles): Increment
	`description->max_insn_reserv_cycles'.
	(initiate_states): Don't increment `max_cycles_num'.
	(transform_insn_regexps): Move code around transformation of
	regexps from `generate'.
	(generate): Remove call of `transform_insn_regexps'.
	(expand_automata): Call `transform_insn_regexps' and
	`check_unit_distributions_to_automata'.  Check errors before
	`generate'.

	* config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
	automaton `ultrasparc3_1'.

2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Set up CPP arithmetic.
	* cppinit.c (cpp_create_reader): Default CPP arithmetic to
	something reasonable for the host.
	(sanity_checks): Add checks.
	(cpp_read_main_file): Call sanity_checks() from here...
	(cpp_post_options): ... not here.
	* cpplex.c (cpp_interpret_charconst): Get max_chars right.
	* cpplib.h (struct cpp_options): New member int_precision.

2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.

2002-05-04  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h, config/sparc/linux64.h
	(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.

	* config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
	more RTX codes.
	* config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.

	* recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
	of SETs.

2002-05-05  Tim Josling  <tej@melbpc.org.au>

	* treelang; New directory for new sample language treelang.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (c-lex.o): Update.
	* c-lex.c: Include target.h.
	(cb_register_builtins): New.
	(init_c_lex): Set builtins callback.
	* c-lex.h (cpp_define, cpp_assert): New prototypes.
	* cppinit.c (init_builtins): Use callback, including for
	GXX_WEAK.
	* cpplib.h (struct cpp_callbacks): New member.
	* target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
	(TARGET_INITIALIZER): Update.
	* target.h (struct gcc_target): New hook.
	* tree.c (default_register_cpp_builtins): New.
	* tree.h (default_register_cpp_builtins): New.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
	(cpp_post_options): Move sanity checks to...
	(sanity_checks): New.
	* cpplex.c (maybe_read_ucs): Fix prototype.
	(parse_string, cpp_parse_escape): Cast for %c format specifier.
	* cpplib.h (cppchar_t): Use unsigned long or unsigned long long
	if necessary.

2002-05-04  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
	builtins.  Use V2DI patterns instead of TI for logical operations.
	(ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
	Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
	(ix86_expand_builtins): Change the pattern used for movntdq.
	* config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
	sse2_nandv2di3): New patterns.
	(sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
	on operands.
	(sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
	(cvtdq2pd): Correct mode on operand 1.
	(sse2_umulsidi3): Describe without unspec.
	(sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
	machine modes.
	(lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
	(ashlv2di3): Likewise, from sse2_ashlv2di3.
	(ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
	ashlv4si3, ashlv2di3): Use SImode for shift count.
	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
	lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
	New patterns.
	* config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
	New typedefs.
	(__m128i, __m128d): New macros.
	(_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
	_mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
	_mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
	_mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
	_mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
	_mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
	_mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
	_mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
	_mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
	_mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
	_mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
	_mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
	_mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
	_mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
	_mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
	_mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
	_mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
	_mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
	_mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
	_mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
	_mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
	_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
	_mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
	_mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
	_mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
	_mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
	_mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
	_mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
	_mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
	_mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
	_mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
	_mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
	_mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
	_mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
	_mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
	_mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
	_mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
	functions.
	(_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
	_mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.

2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* dwarf2out.c: Fix formatting.
	* varasm.c: Likewise.

2002-05-04  David Edelsohn  <edelsohn@gnu.org>

	PR c/6543
	* config/rs6000/rs6000.md (sCC pattern and splitter): Remove
	clobber and use result as temporary value.

Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (force_operand): Use expand_simple_* to handle more
	cases.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
	and sign-extension.
	(lex_charconst): Update for change in prototype of
	cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
	appropriately.
	* cpphash.h (BITS_PER_CPPCHAR_T): New.
	* cppinit.c (cpp_create_reader): Initialize them for no
	change in semantics.
	(cpp_post_options): Add sanity checks.
	* cpplex.c (cpp_parse_escape): Handle precision, sign-extension
	and truncation issues.  Calculate in type cppchar_t.
	(MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
	(cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
	run-time dependent precision correctly.  Return whether the
	result is signed or not.
	* cpplib.c (dequote_string): Use cppchar_t; update.
	* cpplib.h (cppchar_signed_t): New.
	struct cpp_options): New precision members.
	(cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
	* cppexp.c (eval_token): Update.

2002-05-03  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc-protos.h (sparc_rtx_costs): New.
	* config/sparc/sparc.c (sparc_rtx_costs): New function
	implementing RTX_COSTS and CONST_COSTS.
	* config/sparc/sparc.h (CONST_COSTS): Delete.
	(RTX_COSTS_CASES): Define.
	(RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
	the work.

	* config/sparc/sparc.md (DFA schedulers): Split out...
	* config/sparc/cypress.md, config/sparc/hypersparc.md,
	config/sparc/sparclet.md, config/sparc/supersparc.md,
	config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.

	* config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
	checks on it, always defined for SPARC.

	* config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
	Tweak, and add more detailed comments.

2002-05-03  Zack Weinberg  <zack@codesourcery.com>

	* Re-apply patch accidentally reverted with
	DFA scheduler merge: remove all rules and variables to slurp
	source files out of libiberty and rebuild them with HOST_CC.
	($(HOST_PREFIX_1)varray.o): New rule.
	(genattrtab rule): Word wrap.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
	(CPP_SUBTARGET_SPEC): Define.
	(SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
	cpp_subtarget specs.
	(CPP_SPEC): Redefine to include %(cpp_subtarget).

2002-05-03  David S. Miller  <davem@redhat.com>

	* target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
	* target.h (struct gcc_target): Delete cycle_display member.

	* config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
	(rtx_needs_barrier): Delete reference to cycle_display unspec.
	(ia64_sched_reorder2): Mention need for cycle display handling
	once such notes exist.

2002-05-03  Richard Henderson  <rth@redhat.com>

	* real.c (etoasc): Strip most trailing zeros for clarity.
	* sched-vis.c: Include real.h.
	(print_value): Use REAL_VALUE_TO_DECIMAL as needed.
	* Makefile.in (sched-vis.o): Add real.h.

2002-05-03  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
	no longer needed.

2002-05-03  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
	when we get an out of range literal.
	(altivec_expand_ternop_builtin): Same.
	(altivec_expand_unop_builtin): Same.
	(altivec_expand_builtin): Same, for dss.
	(altivec_expand_builtin): Use trees instead of rtl when
	determining literal argument validity.

2002-05-03  David S. Miller  <davem@redhat.com>

	Delete cycle display scheduling hook.
	* config/ia64/ia64.c (ia64_cycle_display,
	TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
	(ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
	and use emit_insn_before instead of ia64_emit_insn_before.
	* config/ia64/ia64.md (unspec usage): Delete cycle display.
	(cycle_display): Delete insn pattern.
	* config/sparc/sparc.md (unspec usage): Delete cycle display.
	(cycle_display): Delete insn pattern.
	* config/sparc/sparc.c (sparc_cycle_display,
	TARGET_SCHED_CYCLE_DISPLAY): Delete.
	* doc/md.texi (cycle_display): Don't mention.
	* doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.

2002-05-03  Richard Henderson  <rth@redhat.com>

	* recog.c (store_data_bypass_p, if_test_bypass_p): New.
	* recog.h: Declare them.

	* config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
	* config/sparc/sparc.md: Use store_data_bypass_p instead.
	* config/sparc/sparc-protos.h: Update.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
	-D__arch64__.  Add -D_LP64.
	(CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
	from sparc.h.
	(CPP_ARCH64_SPEC): Likewise.
	(NO_BUILTIN_PTRDIFF_TYPE): Undef.
	(NO_BUILTIN_SIZE_TYPE): Undef.

2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (min_issue_delay_pass_states): Change return type
	in the prototype.
	(min_issue_delay_pass_states): Change the algorithm.
	(min_issue_delay): Set up min_insn_issue_delay for the state.
	(output_min_issue_delay_table): Interchange the nested loops and
	and initiate min_insn_issue_delay for states.

Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
	jump is simplejump.

Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
	sequence.

2002-05-03  Richard Henderson  <rth@redhat.com>

	PR opt/6534
	* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
	noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
	code before JUMP, not EARLIEST.

2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-format.c (check_format_info_main): Don't check for presence of
	parameter for * width until after operand number has been read,
	and only check for it if format parameters are available.
	Fixes PR c/6547.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
	(LINK_SPEC): Undef before defining.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/6489
	* tradcpp.c (fixup_newlines): New.
	(main, finclude): Use it.

2002-05-03  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
	* config/mips/mips.c (mips_unique_section): Strip encoding from
	decl name.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
	mode.

2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Installing): Mention GCC 3.1 buildstats.
	(Specific): Removed buildstats references.
	(Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
	(Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
	Accomodate Solaris versions beyond 8.
	(Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
	(Specific, *-*-solaris2.8): Removed, obsolete.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/6542
	* config/sparc/sparc.h (leaf_reg_remap): Remove const.
	(CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
	fill leaf_reg_remap with identity.
	* config/sparc/sparc.c (leaf_reg_remap): Remove const.

2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/crti.asm: Remove trailing spaces.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-05-02  Jason Merrill  <jason@redhat.com>

	* defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
	* c-decl.c (c_init_decl_processing): Use it.
	* config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
	* config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
	* config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.

2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* regrename.c: Fix formatting.
	* tree.c: Likewise.

Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (attribute memory): Handle compares properly.

Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_clrsf, sse_clrsi): Set memory attribute
	to none.

2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c: Fix formatting.

2002-05-02  Jan Hubicka  <jh@suse.cz>

	* haifa-sched.c (schedule_insn): Print table of instructions and
	reservations.
	(sched_block): Do not print ready list at verbosity level 1.
	* sched-vis.c (print_insn): Make global.
	* sched-ebb.c (ebb_print_insn): Rename from...
	(print_insn): ... this one.
	* sched-int.h (print_insn): Declare

2002-05-02  Richard Henderson  <rth@redhat.com>

	* haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
	emitted by cycle_display.

2002-05-02  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (*-*-freebsd*): Update to latest status.

2002-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/6540
	* config.gcc (sparc*-*-solaris2*): Set float_format to i128.
	* config/float-sparc.h: Assume 128-bit long double if
	__LONG_DOUBLE_128__ is defined.

2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	* genattrtab.c (write_function_unit_info): Add a dummy element
	when num_units == 0.

2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* predict.c: (propagate_freq, estimate_bb_frequencies): Use
	TYPE_MODE (double_type_node) instead of DFmode.

Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
	jumps post reload.
	* toplev.c (rest_of_compilation): Revert Richard's patch.

2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.

2002-05-02  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.

2002-05-02  Kazu Hirata  <kazu@hxi.com>

	* combine.c: Fix comment typos.
	* expr.c: Likewise.
	* genautomata.c: Likewise.
	* stmt.c: Likewise.
	* tree.h: Likewise.

2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/install.texi: State GNAT version requirements.

2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
	of the frame pointer or arg pointer register which strict register
	checking is not enabled.

2002-05-02  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.dg/altivec-8.c: New.

	* config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
	PRE_INC and PRE_DEC for altivec modes.

2002-05-01  Bruce Korb  <bkorb@gnu.org>

	* fixinc/check.tpl(set-writable): make sure the function exists first
	* fixinc/inclhack.def(alpha_assert): fix test_text
	* fixinc/tests/base/assert.h: add in missing result

2002-05-01  Jeff Law  <law@redhat.com>

	* pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
	'T' constraint.

2002-05-01  Joel Brobecker  <brobecker@gnat.com>

	* dbxout.c (dbxout_type): Emit size information for range types,
	as well, but only when using GDB extensions.

2002-05-01  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
	target-independent gnu binutils date test.

2002-05-01  Richard Henderson  <rth@redhat.com>

	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
	info before expunging the block.

2002-05-01  Jakub Jelinek  <jakub@redhat.com>

	* cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
	(cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
	-M -or -MM is in effect.

2002-05-01  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc: Correct test of --enable-obsolete.  Obsolete all
	A29k configurations.
	* doc/install.texi: Update to match.

2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR bootstrap/6514
	* varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
	for duplicates. Always loop over whole list.

Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload.c (find_reloads, case 'p'): Set BADOP to 0.

2002-05-01	Joel Sherrill <joel@OARcorp.com>

	* config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
	support routines.

2002-05-01	Joel Sherrill <joel@OARcorp.com>

	* config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.

2002-05-01  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
	(nabs_nopower): Same.
	(floatdisf2): New pattern.
	(absdi2): Convert to define_insn_and_split.
	(nabsdi2): Same.
	(trunctfsf2): Same.
	(floatditf2): Same.
	(floatsitf2): Same.
	(fix_trunctfdi2): Same.
	(fix_trunctfsi2): Same.

2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/install.texi: Update Texinfo version requirement
	documentation.

2002-05-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/6512, PR target/5628
	* config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
	when memory is not aligned.
	(movdf_insn_v9only_vis): Likewise.
	* config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
	temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.

2002-05-01  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.dg/altivec-7.c: New.

	* config/rs6000/altivec.h: Cleanup.

2002-04-30  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi (Option Summary): Add -mvrsave=.
	(RS/6000 and PowerPC Options): Document -mvrsave=.

	* config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
	(rs6000_altivec_vrsave_string): Same.
	(rs6000_override_options): Call rs6000_parse_vrsave_option.
	(rs6000_parse_vrsave_option): New.
	(rs6000_stack_info): Only generate vrsave instructions when
	TARGET_ALTIVEC_VRSAVE.

	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
	(rs6000_altivec_vrsave_string): Define extern.
	(rs6000_altivec_vrsave): Same.
	(TARGET_ALTIVEC_VRSAVE): New.

2002-04-30  Richard Henderson  <rth@redhat.com>

	PR opt/6516
	* toplev.c (rest_of_compilation): Don't run cross-jump before
	bb-reorder.

2002-04-30  Tom Rix  <trix@redhat.com>

	* regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
	check which_alternative.

2002-04-30  Kazu Hirata  <kazu@hxi.com>

	* cpplex.c: Fix comment formatting.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* regrename.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* tree-inline.c: Likewise.

2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
	hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
	hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
	hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
	* pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
	* pa/x-ada: New file.  Define ADA_CFLAGS.

2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
	from MMIX_LAST_REGISTER_FILE_REGNUM.
	(NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
	(struct machine_function): New member highest_saved_stack_register
	previously static variable in mmix.c.
	(MACHINE_DEPENDENT_REORG): Define.
	* config/mmix/mmix.c (highest_saved_stack_register): Deleted.
	(MMIX_OUTPUT_REGNO): New.
	(mmix_target_asm_function_prologue): Move calculation of last used
	saved-stack-register into...
	(mmix_machine_dependent_reorg): New function.  Update to also handle
	!TARGET_ABI_GNU.
	(mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
	register names, simplify somewhat by new variable regno.
	<case 'p'>: Remove fixed FIXME.  Always emit highest used saved
	register.
	(mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
	emitting register names.
	(mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
	(mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
	Remove fixed FIXME.
	* config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
	Declare.

	* config/mmix/mmix.md ("divmoddi4"): Update head comment.

2002-04-30  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (emit_soft_tfmode_libcall,
	emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
	emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
	emit_tfmode_cvt): New.
	* config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
	trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
	fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
	addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
	* config/sparc/sparc-protos.h: Update.

2002-04-30  Janis Johnson  <janis187@us.ibm.com>

	* install.texi (Final install): Add to the list of info to include
	in a report of a successful bootstrap, and add link to 3.1 list.

Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
	(mode): Add vector modes
	(i387): Kill attribute.
	(unit): New attribute.
	(length_immediate): Grok new types.
	(prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
	(modrm): Use "unit".
	(memory): Handle MMX/SSE properly.
	(scheduling descriptions): Kill uses of fop1.
	(sse, mmx, fp patterns): Set type and mode properly.

Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (override_options): Default to PA8000 scheduling.
	* doc/invoke.texi (HP-PA options): Mention newly added 7300
	scheduling parameter.

	* pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
	handling of double precision multiplies.

	* pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
	fpdiv and fpsqrt instructions.
	(7200 & 7300 scheduling): Fix typo in handling of
	store-load and store-store penalties.

2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use MIPS instead of Mips and
	mips.  Add two missing commas.

2002-04-30  Paolo Carlini  <pcarlini@unitus.it>

	* doc/contrib.texi (Contributors): Update Paolo Carlini's
	and Benjamin Kosnik's entries.

2002-04-29  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
	SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
	* config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
	* config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.

2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* combine.c (find_split_point): Use gen_int_mode.

2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>

	Merging code from dfa-branch:

	2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_reserv_sets): Fix typo.

	2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_reserv_sets): Remove
	next_cycle_output_flag.

	Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)

	* sched-rgn.c (init_ready_list): Make the DFA code handle
	USE/CLOBBER insns in the same way as the traditional
	scheduler.
	(new_ready): Similarly..

	2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (schedule_block): Change the DFA state only after
	issuing insn.

	Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (hppa_use_dfa_pipeline_interface): New function.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
	(override_options): Add PA7300 scheduling support.
	(pa_adjust_cost): Update various comments.  Properly
	handle anti and output dependencies when using the
	DFA scheduler.
	(pa_issue_rate): Add PA7300 scheduling support.
	(pa_can_combine_p): Call extract_insn before calling
	constrain_operands (taken from mainline tree).
	* pa.h (enum processor_type): Add PROCESSOR_PA7300.
	* pa.md (cpu attr): Add 7300.  Rewrite pipeline
	descriptions using DFA descriptions.  Add PA7300
	scheduling support.

	2002-03-30  David S. Miller  <davem@redhat.com>

	Add UltraSPARC-III DFA scheduling support.
	* config/sparc/sparc.md (define_attr type): Add fpcrmove.
	Update FP conditional move on register insn patterns to use it, as
	appropriate.
	(define_attr cpu): Add ultrasparc3.
	(define_attr us3load_type): New, update integer load patterns to
	set it, as appropriate.
	(define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
	(rest): Add UltraSPARC3 scheduling description.
	* config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
	(PROCESSOR_ULTRASPARC3): New.
	({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
	({ASM,CPP}_CPU_SPEC): Likewise.
	(REGISTER_MOVE_COST): Likewise.
	(RTX_COSTS): Likewise.
	* config/sparc/sparc.c (sparc_override_options,
	sparc_initialize_trampoline, sparc64_initialize_trampoline,
	sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
	sparc_issue_rate): Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/sol2-sld-64.h: Likewise.
	* config/sparc/linux64.h: Likewise.

	2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/md.texi: Add comments about usage the latency time for the
	different dependencies and about case when two or more conditions
	in different define_insn_reservations returns TRUE for an insn.

	* doc/md.texi: Add reference for automaton based pipeline
	description.

	2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/passes.texi: Add missed information about genattrtab.

	2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_automata_list_transition_code): Check
	automata_list on NULL.

	2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_insn_code_cases,
	output_automata_list_min_issue_delay_code,
	output_automata_list_transition_code,
	output_automata_list_state_alts_code): Comment the functions.

	2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (automata_list_el_t): New typedef.
	(get_free_automata_list_el,free_automata_list_el,
	free_automata_list, automata_list_hash, automata_list_eq_p,
	initiate_automata_lists, automata_list_start, automata_list_add,
	automata_list_finish, finish_automata_lists,
	output_insn_code_cases, output_automata_list_min_issue_delay_code,
	output_automata_list_transition_code,
	output_automata_list_state_alts_code, add_automaton_state,
	form_important_insn_automata_lists): New functions and prototypes.
	(insn_reserv_decl): Add members important_automata_list and
	processed_p.
	(ainsn): Add members important_p.
	(automata_list_el): New structure.
	(first_free_automata_list_el, current_automata_list,
	automata_list_table): New global variables.
	(create_ainsns): Initiate member important_p.
	(output_internal_min_issue_delay_func): Generate the switch and
	call output_insn_code_cases.
	(output_internal_trans_func, output_internal_state_alts_func):
	Ditto.
	(generate): Call initiate_automata_lists.
	(automaton_states): New global variable.
	(expand_automata): Call form_important_insn_automata_lists.
	(write_automata): Call finish_automata_lists.

	2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (add_excls, add_presence_absence): Check that
	cpu units in the sets belong the same automaton.

	* rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
	about that cpu units in the sets belong the same automaton.

	* doc/md.texi: Ditto.

	2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
		    Nitin Gupta  <niting@noida.hcltech.com>

	* config/sh/sh.c (sh_use_dfa_interface): New function.

	(sh_issue_rate): New Function.
	TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
	TARGET_SCHED_ISSUE_RATE: define.

	* config/sh/sh.md: Add DFA based pipeline description for SH4.

	(define_attr insn_class): New attribute used for DFA
	 scheduling.
	(define_insn cmpgtsi_t): Set attribute insn_class mt_group.
	(cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
	 cmpeqdi_t): Likewise.

	(add,addc1,addsi3,subc,subc1,*subsi3_internal,
	 negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
	 ex_group.
	(iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.

	2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* haifa-sched.c (queue_to_ready): Remove unnecessary condition for
	break.

	2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
	(output_dfa_insn_code_func): Expand dfa_insn_codes if it is
	necessary.
	(output_dfa_start_func): Initiate new variable insn_codes_length,
	(write_automata): Output definition of the new variable.

	2001-10-02  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (advance_one_cycle): New function.
	(schedule_block): Use it.
	(queue_to_ready): Use it, and also make sure to advance the DFA
	state on all stall cycles, not just those where insn_queue links
	are found.

	2001-10-02  Richard Sandiford  <rsandifo@redhat.com>

	* haifa-sched.c (max_issue): Remove last_p argument.  Only return
	nonzero if the highest-priority instruction could be scheduled.
	(choose_ready): Remove last argument from max_issue call.

	2001-09-28  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
	ultrasparc and 3 for other multi-issue sparcs.

	2001-09-27  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (cycle_display): New pattern.
	* config/sparc/sparc.c (sparc_cycle_display): New.
	(TARGET_SCHED_CYCLE_DISPLAY): Set it.

	2001-09-25  David S. Miller  <davem@redhat.com>

	Convert all of SPARC scheduling to DFA
	* config/sparc/sparc.md: Kill all define_function_unit
	directives and replace with DFA equivalent.
	* config/sparc/sparc.c (ultrasparc_adjust_cost,
	mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
	ultra_fpmode_conflict_exists, ultra_find_type,
	ultra_build_types_avail, ultra_flush_pipeline,
	ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
	ultrasparc_variable_issue, ultrasparc_sched_init,
	sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
	ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
	ultra_cur_hist, ultra_cycles_elapsed): Kill.
	(sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
	ultrasparc_store_bypass_p): New.
	* config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
	Declare.

	2001-09-24  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (ready_remove): Fix thinko, we want to copy around
	ready->vec[foo] not ready[foo].

	2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/md.texi: Correct examples for define_insn_reservations
	`mult' and `div'.

	2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (create_automata): Print message about creation of
	each automaton.
	(generate): Remove printing meease about creation of
	automata.

	2001-09-05  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
	* config/sparc/linux64.h: Likewise.

	2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
	schedule_block, sched_init, sched_finish): Add missed calls of
	use_dfa_pipeline_interface.

	* sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
	Ditto.

	* sched-vis.c (get_visual_tbl_length): Ditto.

	2001-08-27  Richard Henderson  <rth@redhat.com>

	* genattr.c (main): Emit state_t even when not doing scheduling.

	2001-08-27  Richard Henderson  <rth@redhat.com>

	* genautomata.c (expand_automata): Always create a description.

	2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>

	* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
	PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
	AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
	RTL constructions.

	* genattr.c (main): New variable num_insn_reservations.  Increase
	it if there is DEFINE_INSN_RESERVATION.  Output automaton based
	pipeline hazard recognizer interface.

	* genattrtab.h: New file.

	* genattrtab.c: Include genattrtab.h.
	(attr_printf, check_attr_test, make_internal_attr,
	make_numeric_value): Move protypes into genattrtab.h.  Define them
	as external.
	(num_dfa_decls): New global variable.
	(main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
	DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
	DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
	DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.

	* genautomata.c: New file.

	* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.

	* sched-int.h: (curr_state): Add the external definition for
	automaton pipeline interface.
	(haifa_insn_data): Add comments for members blockage and units.

	* target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
	TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
	TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
	macros.
	(TARGET_SCHED): Use the new macros.

	* target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
	dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
	first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
	dfa_bubble): New members in gcc_target.sched.

	* haifa-sched.c (insert_schedule_bubbles_p): New variable.
	(MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
	(insn_queue): Redefine it as pointer to array.
	(NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
	INSN_QUEUE_SIZE.
	(max_insn_queue_index_macro_value): New variable.
	(curr_state, dfa_state_size, ready_try): New varaibles for
	automaton interface.
	(ready_element, ready_remove, max_issue): New function prototypes
	for automaton interface.
	(choose_ready): New function prototype.
	(insn_unit, blockage_range): Add comments.
	(unit_last_insn, unit_tick, unit_n_insns): Define them for case
	FUNCTION_UNITS_SIZE == 0.
	(insn_issue_delay, actual_hazard_this_instance, schedule_unit,
	actual_hazard, potential_hazard): Add comments.
	(insn_cost): Use cost -1 as undefined value.  Remove
	LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
	pipeline interface.
	(ready_element, ready_remove): New functions for automaton
	interface.
	(schedule_insn): Add new code for automaton pipeline interface.
	(queue_to_ready): Add new code for automaton pipeline interface.
	Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
	(debug_ready_list): Print newline when the queue is empty.
	(max_issue): New function for automaton pipeline interface.
	(choose_ready): New function.
	(schedule_block): Add new code for automaton pipeline interface.
	Print ready list before scheduling each insn.
	(sched_init): Add new code for automaton pipeline interface.
	Initiate insn cost by -1.
	(sched_finish): Free the current automaton state and finalize
	automaton pipeline interface.

	* sched-rgn.c: Include target.h.
	(init_ready_list, new_ready, debug_dependencies): Add new code for
	automaton pipeline interface.

	* sched-vis.c: Include target.h.
	(get_visual_tbl_length): Add code for automaton interface.
	(target_units, print_block_visualization):  Add comments.

	* Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
	USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
	(sched-rgn.o, sched-vis.o): Add new dependency file target.h.
	(getruntime.o, genautomata.o): New entries.
	(genattrtab.o): Add new dependency file genattrtab.h.
	(genattrtab): Add new dependencies.  Link it with `libm.a'.
	(getruntime.o, hashtab.o): New entries for canadian cross.

	* doc/md.texi: Description of automaton based model.

	* doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
	Add comments.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
	TARGET_SCHED_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
	TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
	hook descriptions.
	(TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
	MAX_DFA_ISSUE_RATE): New macro descriptions.

	* doc/contrib.texi: Add dfa based scheduler contribution.

	* doc/gcc.texi: Add more information about genattrtab.

Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload1.c (eliminate_regs, case SUBREG): Fix typo in
	adjust_address_nv call.

2002-04-29  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Testing): Provide additional information, and
	a stronger encouragement, for running the testsuites.

2002-04-29  DJ Delorie  <dj@redhat.com>

	* config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
	given in upper case.

2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
	Solaris 2 <widec.h> if missing.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/widec.h: New file.

2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>

	* toplev.c (f_options): Add "profile" switch so that
	-fno-profile can be used to disable -p.

2002-04-29  Bernd Schmidt  <bernds@redhat.com>

	* c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
	UV2DImode.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (enum tree_index): Likewise.
	(V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.

	* config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
	entries.
	(init_mmx_sse_builtins): Initialize SSE2 builtins.
	(ix86_expand_builtin): Add support for SSE2 builtins.
	* config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
	(VALID_SSE_REG_MODE): Use it.
	(VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
	(enum ix86_builtins): Add SSE2 builtins.
	* config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
	movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
	addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
	divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
	sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
	vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
	vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
	sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
	cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
	cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
	cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
	ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
	subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
	mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
	sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
	sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
	gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
	ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
	ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
	sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
	sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
	sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
	sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
	sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
	lfence_insn): New patterns.
	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
	sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.

Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_mov?fcc*): Revert patch of Mar 14th.

2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add Paolo Carlini and
	Janis Johnson.
	Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
	Refer to Objective-C instead of	ObjC, SPARC instead of sparc,
	and CPU instead of cpu.

Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (flag_if_conversion, flag_if_conversion2): New static
	variables.
	(lang_independent_options): Add -fif-conversion, -fif-conversion2
	(rest_of_compilation): Do if conversion only when asked for.
	(parse_options_and_default_flags): Set new variables to 1 for -O1
	* invoke.texi (-fif-conversion, -fif-conversion2): Document.

Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (dbx64_register_map): Fix typo.

Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
	real_one_half, real_bb_freq_max): New static variables.
	(debug_profile_bbauxs): Kill.
	(process_note_predictions): Kill unused variable.
	(block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
	volatile double.
	(propagate_freq): Use REAL_ARITHMETICS.
	(estimate_bb_frequencies): Likevise; init new static variables.
	* Makefile.in (predict.o): Add dependency on real.h

2002-04-28  David S. Miller  <davem@redhat.com>

	PR target/6500
	* config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
	64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
	several {reads,writes} instead.
	* config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
	Define.

2002-04-27  David S. Miller  <davem@redhat.com>

	PR target/6494
	* config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
	of the stack bias.

	* config/sparc/linux.h, config/sparc/linux64.h: Don't bother
	including signal.h and sys/ucontext.h, not needed.

2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* varasm.c (output_constant_def): Correct test for not calling
	ENCODE_SECTION_INFO for INTEGER_CST.

2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (lex): Move some code to _cpp_parse_expr, but
	keep most cases as function eval_token.
	(eval_token): New function.
	(_cpp_parse_expr): Read token here for improved diagnostics.
	Don't use op_as_text.  Detect bad ':' here.
	(reduce): Don't detect bad ':' here.
	(op_as_text): Remove.
	* cpphash.h (_cpp_test_assertion): Change prototype.
	* cpplib.c (_cpp_test_assertion): Change prototype.

2002-04-28  Richard Henderson  <rth@redhat.com>

	PR c/5154
	* ggc-common.c (ggc_mark_rtx_children_1): Rename from...
	(ggc_mark_rtx_children): New.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/6496
	* config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
	after call peepholes for UltraSPARC.
	(call + jump 64-bit peepholes): Remove.

2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/6497
	* config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
	result as temporary value.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/6396
	* toplev.c (rest_of_compilation): Only run regrename and copy
	propagation if optimizing.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6475
	* reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
	register of REGNO_DECL (i).
	* Makefile.in (reload1.o): Add $(TREE_H).

2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (lex): Update to use state.skip_eval.
	(struct op): Remove prio and flags members.
	(FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
	SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
	(LEFT_ASSOC): New macro.
	(optab): New table of operator priorities and flags.
	(SHIFT): Update.
	(_cpp_parse_expr): Clean up logic.  Return bool.  Use a
	malloc-ed parser stack.
	(reduce): New; reduce the operator stack.
	(_cpp_expand_op_stack): Expand the operator stack as necessary.
	* cpphash.h (struct op): Predeclare.
	(struct cpp_reader): New members op_stack, op_limit.
	(struct lexer_state): New member skip_eval.
	(_cpp_parse_expr): Update.
	(_cpp_expand_op_stack): New.
	* cpplib.c (do_if): Update.
	* cppinit.c (cpp_create_reader): Create op stack.
	(cpp_destroy): And destroy it.
	* cpplib.h (CPP_LAST_CPP_OP): Correct.
	(TTYPE_TABLE): Correct.

2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/6343
	* c-decl.c (duplicate_decls): Call merge_weak.
	* c-pragma.c (apply_pragma_weak): Warn about misuse.
	* output.h (merge_weak): Prototype merge_weak.
	* varasm.c (merge_weak): New function.
	(declare_weak): Make sure we don't give an error on VAR_DECLs.
	Mark RTL with SYMBOL_REF_WEAK.

2002-04-27  Kurt Garloff <garloff@suse.de>

	* tree-inline.c (inlinable_function_p): Improve heuristics
	by using a smoother function to cut down allowable inlinable size.
	* param.def: Add parameters max-inline-insns-single,
	max-inline-slope, min-inline-insns that determine the exact
	shape of the above function.
	* param.h: Likewise.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (malloced_yyss, malloced_yyvs): New.
	(yyoverflow): Re-add.  Set them.
	(free_parser_stacks): New.
	* c-common.h: Declare it.
	* c-lex.c (c_common_parse_file): Call it.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
	for fallthru search.

2002-04-26  Eric Christopher  <echristo@redhat.com>

	PR optimization/3700
	* config/mips/mips.c (mips_issue_rate): Define.  New function.
	(TARGET_SCHED_ISSUE_RATE): Use.

2002-04-25  David S. Miller  <davem@redhat.com>

	PR target/6422
	* reorg.c (optimize_skip): Do not allow exception causing
	instructions to be considered for delay slots.
	(fill_simply_delay_slots, fill_slots_from_thread): Likewise.
	(relax_delay_slots): Do not try to consider exception causing
	instructions as redundant.

2002-04-26  Richard Henderson  <rth@redhat.com>

	PR c/5225
	* c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.

2002-04-26  Mark Mitchell  <mark@codesourcery.com>

	PR bootstrap/6445
	* config/i386/i386.md (untyped_call): Return the value in a float
	register if TARGET_FLOAT_RETURNS_IN_80387, not just if
	TARGET_80387.

2002-04-26  Alexandre Oliva  <aoliva@redhat.com>

	* tree.c (tree_int_cst_lt): Compare constants whose types differ
	in unsigned-ness correctly.

2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
	portable runtime model.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (yyoverflow): Revert.

2002-04-26  David Edelsohn  <edelsohn@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
	result as temporary value.

2002-04-26  Richard Henderson  <rth@redhat.com>

	PR c/3581
	* c-common.c (fix_string_type): Split out of ...
	(combine_strings): ... here.  Take a varray, not a tree list.
	(c_expand_builtin_printf): Use fix_string_type.
	* c-common.h: Update decls.
	* c-parse.in (string): Remove.  Update all uses to use STRING
	instead, and not call combine_strings.
	(yylexstring): New.
	(_yylex): Use it.
	* c-typeck.c (simple_asm_stmt): Don't call combine_strings.
	(build_asm_stmt): Likewise.
	* objc/objc-act.c (my_build_string): Use fix_string_type.
	(build_objc_string_object): Build varray for combine_strings.

2002-04-26  Bo Thorsen  <bo@suse.co.uk>

	* config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
	x86-64.

2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
	(HAVE_NO_R_OPERAND): Remove.
	(HAVE_VALUE): Remove.
	(op_to_prio): Update.
	(UNARY): Don't alter flags.
	(_cpp_parse_expr): want_value used to indicate whether
	a number or unary operator is expected next.  Distinguish
	unary and binary +/-.
	(op_as_text): Update for unary operators.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2161
	* c-parse.in (yyoverflow): New.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2098
	* c-common.c (shorten_compare): Simplfy conditions leading to
	the generation of a warning.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2035
	* expmed.c (extract_bit_field): Fall through to generic code rather
	than aborting on subreg special case.

2002-04-25  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
	for DECL being NULL.

2002-04-25  Steve Christiansen  <smc@us.ibm.com>

	* doc/md.texi (Machine Constraints): Add IA-64 constraints.

2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>

	* c-decl.c (grokdeclarator): Remove outdated ??? note
	on invalid declaration of flexible array members.

2002-04-25  Richard Henderson  <rth@redhat.com>

	* doc/invoke.texi: Document -gdwarf{,-2} vs debug level.

2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Always restore registers
	needed by the compiler, even if they are used as global regs.

2002-04-25  Matt Hiller  <hiller@redhat.com>

	* mips.c (mips_class_max_nregs, mips_register_move_cost): New
	functions.
	* mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
	of the corresponding functions.
	* mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
	New prototypes.

2002-04-25  Matt Hiller  <hiller@redhat.com>

	* config/mips/mips.h (mips_sw_reg_names): Declare as extern.

	(ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
	(FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
	registers, adjust comment accordingly.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
	reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
	DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
	for coprocessor registers.
	(ADDITIONAL_REGISTER_NAMES): Include
	ALL_COP_ADDITIONAL_REGISTER_NAMES.

	(COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
	COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
	COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
	COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
	COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.

	(mips_char_to_class): Adjust comment to include coprocessor
	constraint letters.

	* config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
	New functions.
	(mips_reg_names, mips_regno_to_class): Include coprocessor
	information.
	(mips_sw_reg_names): Ditto, make non-static.
	(mips_move_1word): Handle moves to and from coprocessor registers.
	(mips_move_2words): Handle moves to and from coprocessor
	registers.
	(mips_class_max_nregs, mips_register_move_cost): Handle
	coprocessor register classes.
	(override_options): Initialize mips_char_to_class and
	mips_hard_regno_mode_ok properly for coprocessor registers.

	* config/mips/mips.md (movdi_internal, movdi_internal2,
	movsi_internal1, movsi_internal2): Add constraint-sets for
	coprocessor registers.
	* testsuite/gcc.c-torture/mipscop-1.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-2.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-3.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-4.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
	isn't mips.

	* doc/tm.texi: Document feature.

2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* integrate.c (function_attribute_inlinable_p): Simplify.
	Check the table pointer is not NULL.

2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>

	* doc/c-tree.texi: Fix typo in introduction.

2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.h (c_common_parse_file): Update.
	* c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
	* c-lex.c (YYDEBUG): Get from c-lex.h.
	(c_common_parse_file): Update.
	* c-lex.h (YYDEBUG, yydebug): New.
	* c-parse.in (YYDEBUG): Get from c-lex.h.
	(c_set_yydebug): Remove.
	* c-tree.h (c_set_yydebug): Remove.
	* langhooks-def.h (lhd_do_nothing_i): New.
	(lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
	(LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c  (lhd_do_nothing_i): New.
	(lhd_set_yydebug): Remove.
	* langhooks.h (struct lang_hooks): Update.
	* toplev.c (set_yydebug): New.
	(compile_file): Update call to parse_file hook.
	(decode_d_option): Update.
objc:
	* objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.

Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* loop.c (load_mems): Don't change the interface of called functions.

	* calls.c (expand_call): Take current_function_pretend_args_size
	into account when setting argblock for sibcalls.

2002-04-24  Matt Hiller  <hiller@redhat.com>

	* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
	* c-lex.c: Ditto.

	* cpplex.c (skip_line_comment): Process comment one multibyte
	character at a time rather than one char at a time, if
	appropriate.
	(parse_string): Process string one multibyte character at a time
	rather than one char at a time, if appropriate.
	* c-lex.c (lex_string): Lex and copy multibyte strings
	appropriately.
	* cpplib.h (cppchar_t): Change to unsigned.

2002-04-24  Richard Henderson  <rth@redhat.com>

	PR c/3467
	* c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
	for c99.

Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_va_arg): If argument was passed by reference,
	dereference the pointer.

	* sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.

	* sh.md (divsi3_i4_media): Use match_operand for input values
	rather than hard registers.
	(divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
	unnecessarily through hard registers.  Keep copies of pseudo
	registers outside of the libcall sequence.

	* sh.md (casesi_shift_media): Add modes.

	* sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
	values in memory.

2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* attribs.c (c_common_attribute_table): Move table and handlers
	to c-common.c.
	(format_attribute_table, lang_attribute_table,
	lang_attribute_common): Remove.
	(init_attributes): Replace NULL pointers with pointers to the
	empty table.
	(handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_attribute, handle_unused_attribute,
	handle_const_attribute, handle_transparent_union_attribute,
	handle_constructor_attribute, handle_destructor_attribute,
	handle_mode_attribute, handle_section_attribute,
	handle_aligned_attribute, handle_weak_attribute,
	handle_alias_attribute, handle_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move to c-common.c.
	* c-common.c (c_common_attribute_table,
	handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_attribute, handle_unused_attribute,
	handle_const_attribute, handle_transparent_union_attribute,
	handle_constructor_attribute, handle_destructor_attribute,
	handle_mode_attribute, handle_section_attribute,
	handle_aligned_attribute, handle_weak_attribute,
	handle_alias_attribute, handle_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move from attribs.c.
	* c-common.h (c_common_attribute_table,
	c_common_format_attribute_table): New.
	* c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
	* langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): 3 new attribute hooks.
	* target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
	* target.h: Update comment.
	* tree.c (default_target_attribute_table): Remove.
	* tree.h (default_target_attribute_table, format_attribute_table,
	lang_attribute_table, lang_attribute_common): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.

2002-04-24  Jason Merrill  <jason@redhat.com>

	* dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
	* dwarf2out.c (dwarf_attr_name): Support it.
	(gen_array_type_die): Emit it.
	(lookup_type_die): No special handling for VECTOR_TYPE.
	(gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.

2002-04-24  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.md (movdi_usd): Renumber.

2002-04-24  David S. Miller  <davem@redhat.com>

	PR target/6420
	* config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
	32-bit SPARC and current_function_returns_struct is true.

Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* loop.c (canonicalize_condition): Use gen_int_mode.

2002-04-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Cleanup file.  Add non individual
	variants.
	(vec_vaddubm): New.
	(vec_vadduhm): New.
	(vec_vadduwm): New.
	(vec_vaddfp): New.
	(vec_vaddcuw): New.
	(vec_vaddubs): New.
	(vec_vaddsbs): New.
	(vec_vadduhs): New.
	(vec_vadduws): New.
	(vec_vaddsws): New.
	(vec_vand): New.
	(vec_vandc): New.
	(vec_vavgub): New.
	(vec_vavgsb): New.
	(vec_vavguh): New.
	(vec_vavgsh): New.
	(vec_vavguw): New.
	(vec_vavgsw): New.
	(vec_vrfip): New.
	(vec_vcmpbfp): New.
	(vec_vcmpequb): New.
	(vec_vcmpequh): New.
	(vec_vcmpequw): New.
	(vec_vcmpeqfp): New.
	(vec_vcmpgefp): New.
	(vec_vcmpgtub): New.
	(vec_vcmpgtsb): New.
	(vec_vcmpgtuh): New.
	(vec_vcmpgtsh): New.
	(vec_vcmpgtuw): New.
	(vec_vcmpgtsw): New.
	(vec_vcmpgtfp): New.
	(vec_vcmpgefp): New.
	(vec_vcfux): New.
	(vec_vcfsx): New.
	(vec_vctsxs): New.
	(vec_vctuxs): New.
	(vec_vexptefp): New.
	(vec_vrfim): New.
	(vec_lvx): New.
	(vec_lvebx): New.
	(vec_lvehx): New.
	(vec_lde): Add vector float variant.
	(vec_lvewx): New.
	(vec_lvxl): New.
	(vec_vlogefp): New.
	(vec_vmaddfp): New.
	(vec_vmhaddshs): New.
	(vec_vmaxub): New.
	(vec_vmaxsb): New.
	(vec_vmaxuh): New.
	(vec_vmaxsh): New.
	(vec_vmaxuw): New.
	(vec_vmaxsw): New.
	(vec_vmaxsw): New.
	(vec_vmaxfp): New.
	(vec_vmrghb): New.
	(vec_vmrghh): New.
	(vec_vmrghw): New.
	(vec_vmrglb): New.
	(vec_vmrglh): New.
	(vec_vmrglw): New.
	(vec_vminub): New.
	(vec_vminsb): New.
	(vec_vminuh): New.
	(vec_vminsh): New.
	(vec_vminuw): New.
	(vec_vminsw): New.
	(vec_vminfp): New.
	(vec_vmladduhm): New.
	(vec_vmhraddshs): New.
	(vec_msumubm): New.
	(vec_vmsummbm): New.
	(vec_vmsumuhm): New.
	(vec_vmsumshm): New.
	(vec_vmsumuhs): New.
	(vec_vmsumshs): New.
	(vec_vmuleub): New.
	(vec_vmulesb): New.
	(vec_vmuleuh): New.
	(vec_vmulesh): New.
	(vec_vmuloub): New.
	(vec_mulosb): New.
	(vec_vmulouh): New.
	(vec_vmulosh): New.
	(vec_vnmsubfp): New.
	(vec_vnor): New.
	(vec_vor): New.
	(vec_vpkuhum): New.
	(vec_vpkuwum): New.
	(vec_vpkpx): New.
	(vec_vpkuhus): New.
	(vec_vpkshss): New.
	(vec_vpkuwus): New.
	(vec_vpkswss): New.
	(vec_vpkshus): New.
	(vec_vpkswus): New.
	(vec_vperm): New.
	(vec_vrefp): New.
	(vec_vrlb): New.
	(vec_vrlh): New.
	(vec_vrlw): New.
	(vec_vrfin): New.
	(vec_vrsqrtefp): New.
	(vec_vsel): New.
	(vec_vslb): New.
	(vec_vslh): New.
	(vec_vslw): New.
	(vec_vsldoi): New.
	(vec_vsl): New.
	(vec_vslo): New.
	(vec_vspltb): New.
	(vec_vsplth): New.
	(vec_vspltw): New.
	(vec_vspltisb): New.
	(vec_vspltish): New.
	(vec_vspltisw): New.
	(vec_vsrb): New.
	(vec_vsrh): New.
	(vec_vsrw): New.
	(vec_vsrab): New.
	(vec_vsrah): New.
	(vec_vsraw): New.
	(vec_vsr): New.
	(vec_vsro): New.
	(vec_stvx): New.
	(vec_stvebx): New.
	(vec_stvehx): New.
	(vec_stvewx): New.
	(vec_stvxl): New.
	(vec_vsububm): New.
	(vec_vsubuhm): New.
	(vec_vsubuwm): New.
	(vec_vsubfp): New.
	(vec_vsubcuw): New.
	(vec_vsububs): New.
	(vec_vsubsbs): New.
	(vec_vsubuhs): New.
	(vec_vsubshs): New.
	(vec_vsubuws): New.
	(vec_vsubsws): New.
	(vec_vsum4ubs): New.
	(vec_vsum4sbs): New.
	(vec_vsum4shs): New.
	(vec_vsum2sws): New.
	(vec_vsumsws): New.
	(vec_vrfiz): New.
	(vec_vupkhsb): New.
	(vec_vupkhpx): New.
	(vec_vupkhsh): New.
	(vec_vupklsb): New.
	(vec_vupklpx): New.
	(vec_vupklsh): New.
	(vec_vxor): New.

2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>

	PR c/5430
	* fold-const.c (split_tree): Add MINUS_LITP parameter; separate
	added literals from substracted literals.
	(associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
	(fold) [associate]: Preserve MINUS_EXPR if needed.

2002-04-23  Zack Weinberg  <zack@codesourcery.com>

	* doc/install.texi: Clarify which versions of alpha*-dec-osf*
	are obsoleted.

2002-04-23  Tom Tromey  <tromey@redhat.com>

	* gcc.c: Added --resource.  For PR java/6314.

2002-04-23  David O'Brien  <obrien@FreeBSD.org>

	* cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
	* config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
	these libraries.

2002-04-23  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd.h(OBJECT_FORMAT_ELF): Define.

Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
	workaround.
	(ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
	(ix86_expand_clrstr): Fix typo.
	* loop.c (gen_load_of_final_value): New.
	(loop_givs_rescan, strength_reduce, check_dbra_loop):
	Use it.

2002-04-23  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (builtin_memset_gen_str): New function.
	(expand_builtin_memset): Optimize the case of constant length, but
	unknown value.

2002-04-23  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_step): Remove extraneous
	parentheses.
	(vec_ctu): Cast return.

2002-04-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/6413
	* function.h: (struct function): Add profile_label_no field.
	(current_function_profile_label_no): Define.
	* function.c: (profile_label_no): New static var.
	(expand_function_start): Increment it, and copy to
	current_function_profile_label_no.
	* output.h (profile_label_no): Delete.
	* final.c (profile_label_no): Delete.
	(profile_function): Use current_function_profile_label_no.
	(final_end_function): Don't increment profile_label_no here.
	* config/i386/i386.c (ix86_osf_output_function_prologue): Replace
	profile_label_no with current_function_profile_label_no.
	* config/pa/pa.c (current_function_number): Delete.
	(pa_output_function_prologue): Don't output profile label here.
	(hppa_profile_hook): Use label_no param rather than
	current_function_number.
	(FUNC_BEGIN_PROLOG_LABEL): Move to ..
	* config/pa/pa.h: .. here.
	(FUNCTION_PROFILER): Output profile label here.

2002-04-22  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
	patch of 2002-04-09 due to binutils issues.
	(FUNCTION_ARG_REGNO_P): Ensure even numbered float register.

2002-04-22  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
	constraint to 'o' for m=r and r=m alternatives.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

2002-04-22  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (RTX_FLAG): New macro.
	* emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
	* final.c (alter_subreg): Use macro to access rtx flag.
	* integrate.c (copy_rtx_and_substitute): Use new access macro.
	* print-rtl.c (print_rtx): Use new access macro.

	* cse.c (insert): Check rtx code before accessing flag.

	* genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
	ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
	(attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
	convert_const_symbol_ref, make_canonical, make_alternative_compare,
	evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
	simplify_test_exp, optimize_attrs, simplify_by_exploding,
	find_and_mark_used_attributes, unmark_used_attributes,
	add_values_to_cover, simplify_with_current_value,
	simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
	copy_rtx_unchanging, main): Use new access macros.

2002-04-22  Tom Rix  <trix@redhat.com>

	* expmed.c (init_expmed): Generate shifted constant once.

2002-04-22  Zack Weinberg  <zack@codesourcery.com>

	* c-lex.c (lex_charconst): Call convert to get constant in
	proper type; don't just smash the type field.
	Fixes PR c/6300.

	* config.gcc: Add list of obsolete configurations.  Disallow
	building these without --enable-obsolete.
	* doc/install.texi: Document --enable-obsolete and obsoletion
	policy.  Mention obsoletion of individual targets in
	appropriate places.

2002-04-22  Richard Henderson  <rth@redhat.com>

	* config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.

2002-04-22  Mark Mitchell  <mark@codesourcery.com>

	PR f/6138.
	* function.c (fixup_memory_subreg): Add promoted_mode parameter.
	(walk_fixup_memory_subreg): Likewise.
	(fixup_var_refs_insn): Adjust accordingly.
	(fixup_var_refs_1): Likewise.

2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
	LIBPATH_ARCH64_SPEC): Define.
	(EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
	(STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
	(LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
	(LINK_ARCH64_SPEC): Add libpath_arch64 to search path.

2002-04-22	Joel Sherrill <joel@OARcorp.com>

	* gthr-rtems.h: Correct prototypes to remove warnings.

2002-04-22  Richard Henderson  <rth@redhat.com>

	PR c/6344
	* alias.c (canon_true_dependence): Special case (mem:blk (scratch)).

	* gcse.c (free_insn_expr_list_list): New.
	(clear_modify_mem_tables): Use it.  Fix bit set usage.
	(canon_list_insert): Use EXPR_LISTs for expressions.
	(record_last_mem_set_info): Factor BLOCK_NUM (insn).

2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
	file change and include code to _cpp_pop_buffer.
	* cpphash.h (struct pending_option): Predeclare.
	(struct cpp_reader): New member next_include_file.
	(_cpp_pop_file_buffer): Update.
	(_cpp_push_next_buffer): Update, rename.
	* cppinit.c (cpp_destroy): Free include chain and pending here.
	(cpp_finish_options): Simplify.
	(_cpp_push_next_buffer): Rename and clean up.
	* cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
	Clarify.
	* cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.

2002-04-22  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_xor): Add variant for both args
	being vector signed int.
	(vec_andc): Same.
	(vec_xor): Add variant for both args being vector signed char.
	Remove redundant variant.
	(vec_andc): Same.

2002-04-21  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (set then compare DI mode peephole2): Fix
	compare mode in output RTL.

2002-04-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Correct
	style and formatting of previous patch.

2002-04-22  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_override_options): Always clear
	flag_pic for ABI_AIX.

2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
	* cppfiles.c (read_include_file): Similarly.
	* cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
	uxstrdup ustrchr, ufputs): Similarly.
	* cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
	* cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
	cpp_ideq, parse_identifier, parse_number): Similarly.
	* cpplib.c (struct directive, dequote_string, D, run_directive,
	cpp_push_buffer): Similarly.
	* cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
	_cpp_create_definition, check_trad_stringification,
	cpp_macro_definition): Similarly.

2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppmacro.c (funlike_invocation_p): Don't step back
	over CPP_EOF.

2002-04-21  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (output_profile_hook): Do not increment
	labelno.

2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Remove Chill references.
	* doc/gcc.texi: Update last modified date.

2002-04-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
	push and pop.  Replace add.l with add.w.

2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/lib1funcs.asm (___mulsi3): Use hardware
	multiply instructions for H8/300H case.

2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
	Bum three instructions from each routine.

2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* decl.c (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
	* c-tree.h (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
	* function.c (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	(push_function_context_to, pop_function_context_from,
	free_after_parsing, prepare_function_start, ggc_mark_struct_function):
	Update.
	* function.h (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
	LANG_HOOKS_FUNCTION_INITIALIZER): New.
	(LANG_HOOKS_INITIALIZER): Update.
	(lhd_do_nothing_f): New.
	* langhooks.h (struct lang_hooks_for_functions): New.
	(struct lang_hooks): New hooks.
	* langhooks.c (lhd_do_nothing_f): New.
objc:
	* objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.

2002-04-19  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.

2002-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/3756
	* config/i386/i386.c (ix86_expand_int_movcc): Optimize
	x = ((int) y < 0) ? cst1 : cst2.

2002-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/6358
	* function.c: Reapply patch for c/6358.
	(expand_function_end): Copy decl_rtl's mode, not
	current_function_return_rtx mode.

2002-04-19  Joel Sherrill  <joel@OARcorp.com>

	* config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
	targets.

2002-04-19  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Specific): Update status of Solaris 2.8.
	For PR libgcj/6158.

2002-04-19  Andreas Schwab  <schwab@suse.de>

	* real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
	(PUT_REAL): Restore old definition.

2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
	binutils 2.11.2 and higher generate smaller binaries than Sun's
	native tools.

2002-04-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6352
	* toplev.c (rest_of_compilation): Do not defer functions for which
	TREE_SYMBOL_REFERENCED has already been set.

Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movsi_1, movhi_1): Force reload to use more flexible
	alternative.

2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	* builtins.c: Include langhooks.h.
	(lang_type_promotes_to): Remove.
	(expand_builtin_va_arg): Use new hook.
	* c-common.c (c_common_nodes_and_builtins): Don't set hook.
	(simple_type_promotes_to): Move to c-typeck.c.
	* c-common.h (simple_type_promotes_to): Remove.
	* c-decl.c (duplicate_decls, grokdeclarator): Update.
	* c-format.c: Include langhooks.h.
	(check_format_types): Update.
	* c-tree.h (c_type_promotes_to): New.
	* c-typeck.c (c_type_promotes_to): Move from c-common.c.
	(type_lists_compatible_p): Update.
	* langhooks-def.h (lhd_type_promotes_to): New.
	(LANG_HOOKS_TYPE_PROMOTES_TO): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_type_promotes_to): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.h (lang_type_promotes_to): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* function.c: Revert patch for c/6358.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
	blocks.  Handle multiple references to the TRAP block.  Handle
	non-adjacent THEN and OTHER blocks.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
	crash with no type for by-mode libcalls.

	* config/ia64/ia64.md (conditional_trap): Fix predicate polarity.

2002-04-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
	__xtensa_nonlocal_goto): Use a syscall instructions to flush
	the register windows.

2002-04-18  Zack Weinberg  <zack@codesourcery.com>

	* real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
	appropriate.  Document need for extended precision even when
	MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
	based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
	REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
	instead of relying on later syntax error when REAL_WIDTH > 5.
	* real.c: Define NE based only on whether or not we have a
	full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
	Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
	define GET_REAL and PUT_REAL as simple memcpy operations; no
	need to byteswap or round.
	Use #error instead of #ifdef-ing out the entire file, for
	prompt error detection.

	* rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.

2002-04-18  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (BRANCH_COST): Define.

	* fold-const.c (BRANCH_COST): Don't provide default here, expr.h
	does it.

2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>

	* flow.c (update_life_info): Ignore return value of cleanup_cfg.
	Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
	propagate_block calls after relaxation loop using new variable
	stabilized_prop_flags.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
	(ia64_va_arg): Expect variable sized types by reference.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
	ia64_function_arg_pass_by_reference.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* ifcvt.c: Include except.h.
	(block_has_only_trap): Break out from find_cond_trap.
	(find_cond_trap): Use it.  Always delete the trap block.
	(merge_if_block): Allow then block null.  Be less simplistic about
	what insns can end a block.
	* Makefile.in (ifcvt.o): Depend on except.h.

	* config/ia64/ia64.md (trap, conditional_trap): New.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/6358
	* function.c (assign_parms): Assign hard current_function_return_rtx
	register here...
	(expand_function_end): ...not here.

2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
	* c-tree.h (c_incomplete_type_error): New.
	* c-typeck.c (require_complete_type, build_component_ref): Update.
	(incomplete_type_error): Rename.
	* langhooks-def.h (lhd_incomplete_type_error): New.
	(LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_incomplete_type_error): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.c (size_in_bytes): Use new hook.
	* tree.h (incomplete_type_error): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.

2002-04-18  Zack Weinberg  <zack@codesourcery.com>

	* config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
	TARGET_FLOAT_FORMAT blocks.

2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Downloading the source): Do not mention Chill
	any longer, but mention Ada.
	(Configuration): Do not mention Chill any longer.

2002-04-18  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (TARGET_VERSION): Remove local version number.

Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
	in last patch.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
	instead of unsigned_type.

Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
	* i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
	later.

2002-04-18  Bernd Schmidt  <bernds@redhat.com>

	* attribs.c (vector_type_node_list): New static variable.
	(handle_vector_size_attribute): Use it to avoid generating a
	new type node each time we are called.

	* combine.c (subst): Avoid trying to make a vector mode subreg of
	an integer constant.
	(gen_lowpart_for_combine): Likewise.

2002-04-18  Roger Sayle  <roger@eyesopen.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
	for integer constant c (if x has unsigned type or sign bit is not
	set in c).  This folds the zero/sign extension into the bit-wise and
	operation.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6205
	* config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
	otherwise xorps.

2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>

	* config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.

2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* gcc.c (read_specs): Detect and fail if an attempt is made to
	rename a spec string to an already existing string.

2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (legitimize_pic_address): Do not generate
	illegal address constant without CONST.

2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
	* sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.

2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>

	PR optimization/6305
	* config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
	to make sure previous reloads are taken into account.  Generate
	better code if one operand is an in-range immediate constant.

2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>

	* doc/install.texi (Building): libgcj requires GNU make.

2002-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/6315
	* config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
	even if hard quad and register is not floating.
	(movtf reg<-mem split): Disallow splitting if hard quad and
	register is floating.
	(movtf mem<-reg split): Likewise.
	* config/sparc/sparc.c (fp_register_operand): New predicate.
	* config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.

2002-04-17  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (PROTO_OBJS): Add cppdefault.o.
	(protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
	(unprotoize.o): Ditto.  Build from protoize.c.  Define
	UNPROTOIZE on command line.
	* protoize.c: Include cppdefault.h.  Delete include_defaults.
	(in_system_include_dir): Use cpp_include_defaults (defined in
	cppdefault.o).
	* unprotoize.c: Delete file.

2002-04-17  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_ld): Add array variants.
	(vec_lde): Same.
	(vec_ldl): Same.

2002-04-17  Alan Matsuoka  <alanm@redhat.com>
	    Aldy Hernandez <aldyh@redhat.com>

	* config/rs6000/altivec.h: Define __ALTIVEC__.
	(bool): New.
	(__pixel): New.
	(pixel): New.
	(vec_cfux): New.
	(vec_vmaddfp): New.
	(vec_vsldoi): New.
	Add parentheses to all macro arguments.

2002-04-16  Richard Henderson  <rth@redhat.com>

	PR c++/6320
	* except.c (remove_eh_handler): Insert inner regions at beginning
	of sibling chain.  Refactor expressions.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
	* config/sparc/sol2-gas-bi.h: New file.
	* config.gcc (sparc*-solaris): Add it as needed.
	* configure.in (AS_SPARC64_FLAG): Remove check.
	* config.in, configure: Regenerate.

	* config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.c (override_options): Don't override N32 for
	a 64-bit ISA.

	PR 6202
	* config/mips/mips.md (can_delay): Split out of existing define_delays.
	(HILO_delay): Set can_delay false.

2002-04-16  Dale Johannesen <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
	instruction addresses.
	(rs6000_output_function_epilogue): Likewise.

2002-04-16  Paolo Carlini  <pcarlini@unitus.it>

	* c-parse.in (poplevel, compstmt_start,
	compstmt_primary_start): Add ending ';', in accordance
	with POSIX.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparcv9-solaris): Configure for 64-bit default.
	Adjust tm_file order to get TARGET_DEFAULT set properly.
	(sparc-solaris): Configure 2.[78] for 64-bit multilibs.
	* doc/install.texi (sparc-solaris): Update.

2002-04-16  Dale Johannesen <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
	comparison operands do not match each other or if modes of
	conditions do not match result.

2002-04-16  Hartmut Penner <hpenner@de.ibm.com>

	PR target/6305
	* config/s390/s390.md (mulsidi3): Set both subregs of the
	multiword register.

2002-04-16  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_addc): Type check.

2002-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6279
	* expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.

	* expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
	call_really_used_regs too.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.

2002-04-15  David S. Miller  <davem@redhat.com>

	* rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
	as being CLOBBERed.

2002-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/6290
	* config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
	CONST_VECTOR is { 0, ... 0 }.

2002-04-15  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (Installing GCC: Configuration): Clarify
	the only supported ways to configure gcc.

2002-04-15  Roland McGrath  <roland@frob.com>

	* config.gcc (alpha*-*-gnu*): New target configuration.
	* config/alpha/gnu.h: New file for it.
	* config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.

2002-04-16  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (STMT_EXPR_NO_SCOPE): New macro.
	* c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
	* tree.h (expand_start_stmt_expr): Update prototype.
	* stmt.c (expand_start_stmt_expr): Add has_scope parameter.
	* tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
	on the STMT_EXPR created for the inline function.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
	config/i386/linux-aout.h, config/i386/linux-oldld.h,
	config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
	config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
	config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
	config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
	config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
	Define __gnu_linux__, not gnu_linux.
	* config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.

2002-04-15  Mark Mitchell  <mark@codesourcery.com>

	Remove Chill front end.
	* gcc.c (default_compilers): Remove Chill entries.
	* ch: Remove directory.
	* doc/frontends.texi: Remove information about Chill.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.

2002-04-15  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
	(LONGLONG_STANDALONE): Define.

2002-04-15  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_emit_float_lib_cmp):
	Call emit_library_call with LCT_NORMAL.
	(sparc_initialize_trampoline): Use LCT_foo instead of
	magic constant in emit_library_call invocations.
	(sparc64_initialize_trampoline): Likewise.
	(sparc_profile_hook): Likewise.
	* config/sparc/sparc.md: Likewise.

	* config/sparc/sparc.c (sparc_extra_constraint_check):
	Fix type of argument 'c'.
	* config/sparc/sparc-protos.h (sparc_extra_constraint_check):
	Likewise.

2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* diagnostic.h (output_buffer_state): Redefine.
	(output_format_decoder): New macro.
	(output_prefixing_rule): Likewise.
	(output_line_cutoff): Likewise.
	(diagnostic_format_decoder): Adjust.
	(diagnostic_prefixing_rule): Likewise.
	(diagnostic_line_cutoff): Likewise.
	(diagnostic_state): Likewise.
	(diagnostic_kind_count): Likewise.
	(diagnostic_buffer): Now a macro.

	* diagnostic.c (diagnostic_buffer): Remove definition.
	(output_is_line_wrapping): Adjust.
	(set_real_maximum_length): Likewise.
	(output_set_maximum_length): Likewise.
	(init_output_buffer): Likewise.
	(lhd_print_error_function): Likewise.
	(output_do_verbatim): Likewise.

2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c (print_location): Don't print include chain
	if line == 0.
	(cpp_begin_message): Update to use DL_ macros.
	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
	cpp_notice, cpp_notice_from_errno): Remove.
	(cpp_error, cpp_error_with_line): Update to take a diagnostic
	level.
	(cpp_errno): New.
	* cppexp.c (CPP_ICE): Remove.
	(SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
	lex, integer_overflow, _cpp_parse_expr): Update.
	* cppfiles.c (read_include_file, find_include_file,
	handle_missing_header, _cpp_read_file, remap_filename): Update.
	* cpphash.h (enum error_type): Remove.
	(_cpp_begin_message): Update.
	* cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
	cpp_handle_option, cpp_post_options): Update.
	* cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
	skip_whitespace, parse_identifier, parse_slow, parse_string,
	_cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
	cpp_interpret_charconst): Update.
	* cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
	lex_macro_node, do_undef, glue_header_name, parse_include,
	do_include_common, read_flag, do_line, do_linemarker, do_ident,
	cpp_register_pragma, do_pragma_once, do_pragma_system_header,
	do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
	do_elif, do_endif, parse_answer, parse_assertion, do_assert,
	_cpp_pop_buffer, do_diagnostic): Update.
	* cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
	DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
	cpp_notice, cpp_notice_from_errno): Remove.
	(cpp_error, cpp_error_with_line): Update to take a diagnostic
	level.
	(cpp_errno): New.
	* cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
	collect_args, enter_macro_context, save_parameter, parse_params,
	_cpp_create_definition, check_trad_stringification,
	cpp_macro_definition): Update.
	* cppmain.c (cpp_preprocess_file): Update.
	* fix-header.c (read_scan_file): Update.

2002-04-14  Andreas Schwab  <schwab@suse.de>

	* config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.

2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.

2002-04-13  Mark Mitchell  <mark@codesourcery.com>

	* config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
	not gnu_hurd.

2002-04-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.

2002-04-13	Joel Sherrill <joel@OARcorp.com>

	* config/sparc/t-elf: Enable v8 multilibs.  Impacts
	sparc-elf and sparc-rtems targets.

2002-04-13  Mark Mitchell  <mark@codesourcery.com>

	* alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
	defined, and __gnu_hurd__ wherever __GNU__ is defined.
	* arm/linux-elf.h: Likewise.
	* cris/aout.h: Likewise.
	* cris/linux.h: Likewise.
	* i370/linux.h: Likewise.
	* i386/gnu.h: Likewise.
	* i386/linux-aout.h: Likewise.
	* i386/linux-oldld.h: Likewise.
	* i386/linux.h: Likewise.
	* i386/linux64.h: Likewise.
	* ia64/linux.h: Likewise.
	* m68k/linux-aout.h: Likewise.
	* m68k/linux.h: Likewise.
	* mips/linux.h: Likewise.
	* pa/pa-linux.h: Likewise.
	* pj/linux.h: Likewise.
	* rs6000/sysv4.h: Likewise.
	* s390/linux.h: Likewise.
	* sh/linux.h: Likewise.
	* sparc/linux-aout.h: Likewise.
	* sparc/linux.h: Likewise.
	* sparc/linux64.h: Likewise.
	* xtensa/linux.h: Likewise.

2002-04-13  Richard Sandiford  <rsandifo@redhat.com>

	* stmt.c (check_unique_operand_names): Expect operand names to
	be strings rather than identifiers.  Use simple_cst_equal to
	compare them.
	(resolve_operand_name_1): Make same identifier to string change here.
	* c-parse.in (asm_operand): Convert a named operand into a string.
	* cp/parse.y (asm_operand): Likewise.

2002-04-13  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).

2002-04-12  Mark Mitchell  <mark@codesourcery.com>

	Revert these changes:

	2002-04-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/5571
	* stor-layout.c (layout_decl): Reset the RTL for the decl.

2002-04-12  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
	(sparc*-*-solaris): Clean up header files.
	* configure.in (AS_SPARC64_FLAG): Error out if can't find it
	and plan on generating 64-bit code.
	* toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
	* config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
	* config/sparc/sol2-sld-64.h: Rename ...
	* config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
	for AS_SPARC64_FLAG not defined.
	* config/sparc/sol2-gld-bi.h: New.
	* config/sparc/sol2-sld.h: Remove.
	* config/sparc/sol26-sld.h: New.
	* config/sparc/sol2.h: Tidy comments.
	* doc/install.texi: Document sparc-solaris configury changes.

2002-04-12  Richard Henderson  <rth@redhat.com>

	* recog.c (offsettable_address_p): Match the logic in adjust_address.

	* config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
	in 64-bit mode only.  Use only for 32-bit or MEDLOW.

2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.

Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (pa_can_combine_p): Call extract_insn before calling
	constrain_operands.

2002-04-12  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
	(TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
	(DEFAULT_PCC_STRUCT_RETURN): Define as 0.
	(CPP_PREDEFINES): Handle __declspec.
	* config/i386/t-interix (USER_H): Remove.

2002-04-12  DJ Delorie  <dj@redhat.com>

	* integrate.c (compare_blocks): Make comparisons safe for when
	sizeof(int) < sizeof(char *).
	(find_block): Likewise.

2002-04-12  Jan Hubicka  <jh@suse.cz>
	    David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
	registers.
	(symbol_ref_operand): New.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
	* config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.

2002-04-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (ASM_SPEC): Moved from here ...
	* config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
	overrides the definition in config/svr4.h.

2002-04-12	Eric Norum <eric.norum@usask.ca>

	* config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
	config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
	config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
	config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
	config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
	config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
	config/v850/rtems.h (*-rtems*): Cleanup pass to move common
	definitions to config/rtems.h and make the targets more similar.

Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (expand_assigment): Remove duplicate conversions #ifdef
	POINTERS_EXTEND_UNSIGNED.
	(store_constructor, expand_expr, case COMPONENT_REF): Likewise.
	(store_expr): Use TYPE_MODE (sizetype), not ptr_mode.

	* emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
	not specified.

Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
	depends on TARGET_SHMEDIA, not TARGET_SH5.

2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
	For paradoxical (subreg VAR), replace VAR, don't try the subreg.

Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (broken_move): Constant 0. / 1. load is OK if there is
	no r0 clobber.

2002-04-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.

2002-04-12  Richard Henderson  <rth@redhat.com>

	PR bootstrap/4191
	* config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.

	* flow.c (mark_used_reg): Manage reg_cond_dead properly for
	modes spanning multiple hard regs.

	* recog.c (peephole2_optimize): Rebuild jump labels as needed.

2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (pa_output_function_prologue): Don't accumulate the total
	number of code bytes when using TARGET_64BIT, or gas, SOM and not
	the portable runtime.
	(output_deferred_plabels): Handle 64bit plabels.
	(output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
	generating pic code using the GAS assembler for object formats that
	are not SOM (ie., ELF32 and ELF64).
	(output_millicode_call): Check attribute type if attribute length is 28.
	Likewise use $PIC_pcrel$0.  Only call get_attr_length and
	dbr_sequence_length once.
	(output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
	dbr_sequence_length once.
	* pa.h (TARGET_SOM): Define if not defined.
	* pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
	with GAS and not SOM.
	(jump, call_internal_reg, call_value_internal_reg): Likewise.
	* som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
	(DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
	(USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
	DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
	elfos.h and dbxelf.h values are fine now.
	* config/i386/freebsd.h, config/alpha/freebsd.h
	(DEFAULT_PCC_STRUCT_RETURN): Define to 0.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
	or set Acpu or Amachine.  Reformat.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.
	(LINK_SPEC): Do not need to undef.
	* config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
	* config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.
	* config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
	(ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
	(LINK_SPEC): Do not need to undef.
	(DONT_USE_BUILTIN_SETJMP): Do not define.
	* config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
	(CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
	(DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
	Remove trailing spaces.
	* config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
	__ELF__, or set Acpu or Amachine.  Reformat.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
	all other *-*-freebsd* targets.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* config.gcc (alpha*-*-linux*ecoff): Detect and reject.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
	Include {cpu}/{cpu}.h thru tm_file.
	(alpha*-*-linux*ecoff): Remove target.
	* config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
	(LINK_SPEC): Remove, is not OS independent.
	* config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
	(LINK_SPEC): Do not need to #undef any longer.
	* config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
	any longer.
	* config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
	__ELF__.
	(LINK_SPEC): Moved here from alpha/elf.h.
	* config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
	SUB_CPP_PREDEFINES.
	* config/alpha/linux-ecoff.h: Remove.
	* config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
	(CPP_SPEC): Define _POSIX_SOURCE as needed.
	(CPP_SUBTARGET_SPEC): Do not define.
	(LINK_SPEC): Do not need to #undef any longer.
	* config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
	* config/alpha/vms.h: Likewise.

2002-04-11  Richard Sandiford  <rsandifo@redhat.com>

	* doc/extend.texi: Remove old claim that typedefs cannot have
	an alignment attribute.

2002-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6177
	* expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
	bitpos is 0 and bitsize CONCAT size.

2002-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/6223
	* combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.

2002-04-10  David O'Brien  <obrien@FreeBSD.org>

	* config/alpha/freebsd.h: Minor reformatting.
	(CPP_SPEC): Define ELF and add cpp_subtarget.
	(ASM_SPEC): No longer needed.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
	(movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
	(dimode mem/zero splitter): New.

2002-04-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_override_options): Tweak error message
	for PIC not implemented.

	* config/cris/cris.h: Tweak comments related to parameter-passing.

	* t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.

2002-04-10  Richard Henderson  <rth@redhat.com>

	* except.c (add_ehl_entry): Allow duplicates after landing pad
	creation.

2002-04-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.

2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	* c-decl.c (c_init_decl_processing): Move generation of
	decls for g77_integer_type_node and friends from here ...
	* c-common.c (c_common_nodes_and_builtins): ... to here.

2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
	is only used as frame pointer when frame_pointer_needed is true.

2002-04-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/817
	* arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
	for the fact that the pool entry uses two words.
	(movdf_hard_insn): Similarly.  Also, ADR instruction can span
	1k bytes.
	(movdf_soft_insn): Similarly.
	(movxf_hard_insn): Adjust neg_pool_range attribute to allow
	for the fact that the pool entry uses three words.

2002-04-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_va_arg): When using the struct version
	of the EABI va_list, allow arguments in the register save area to
	take up less room than a stack argument.

2002-04-10  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
	if EXPAND_INITIALIZER.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (movdi_er_maybe_g): New.
	* config/alpha/alpha.c (alpha_expand_mov): Use it.

2002-04-10  Alan Modra  <amodra@bigpond.net.au>

	PR optimization/6233
	* rtlanal.c (pure_call_p): New function.
	* rtl.h (pure_call_p): Declare.
	* loop.c (prescan_loop): Use it to set has_nonconst_call.
	* gcse.c (store_killed_in_insn): Use pure_call_p here too.

2002-04-09  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
	information to .comm directive.

2002-04-09  Richard Henderson  <rth@redhat.com>

	PR c/5078
	* expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* basic-block.h (flow_delete_block_noexpunge): Declare.
	(expunge_block_nocompact): Declare.
	* cfg.c (expunge_block_nocompact): Split out from ...
	(expunge_block): ... here.
	* cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
	(flow_delete_block_noexpunge): Split out from ...
	(flow_delete_block): ... here.
	* cfgcleanup.c (delete_unreachable_blocks): Compact while
	removing dead blocks.
	* except.c (exception_handler_labels): Remove.
	(exception_handler_label_map): New.
	(struct eh_region): Add aka member.
	(mark_ehl_map_entry, mark_ehl_map, free_region): New.
	(ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
	(for_each_eh_label, for_each_eh_label_1): New.
	(init_eh): Register exception_handler_label_map.
	(free_eh_status): Use free_region.
	(find_exception_handler_labels): Use the map, not the list.
	(remove_exception_handler_label): Likewise.
	(maybe_remove_eh_handler): Likewise.
	(remove_eh_handler): Use the region aka bitmap.
	* except.h (exception_handler_labels): Remove.
	(for_each_eh_label): Declare.
	* jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
	* loop.c (invalidate_loops_containing_label): New.
	(find_and_verify_loops): Use it.  Use for_each_eh_label.
	* sched-rgn.c (is_cfg_nonregular): Use
	current_function_has_exception_handlers.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
	sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
	Do not return changed status.
	(sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
	sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
	New functions that do return changed status.
	* sbitmap.h: Update decls.
	* gcse.c, lcm.c: Use _cg functions as needed.

Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
	(sh64-*-elf*, sh-*-rtemself*): Likewise.
	* config/sh/embed_bb.c: New file.
	* config/sh/embed-elf.h: New file.
	* sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
	if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
	(CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
	__PTRDIFF_TYPE__ .
	(SUBTARGET_CPP_PTR_SPEC): Don't define.
	(EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
	Add subtarget_asm_endian_spec.
	(ASM_SPEC): Use subtarget_asm_endian_spec.
	(SUBTARGET_ASM_ENDIAN_SPEC): Define.
	(RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
	(WCHAR_UNSIGNED): Define.
	(SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
	(DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
	(ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
	Fix value.
	* sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
	(sh_adjust_cost): Likewise.
	sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
	__PTRDIFF_TYPE__ .
	(SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
	(WCHAR_TYPE_SIZE): Likewise.
	(ASM_SPEC): Use subtarget_asm_endian_spec.
	(SH_ELF_WCHAR_TYPE): #undef/ #define.
	(MAX_WCHAR_TYPE_SIZE): Don't #undef.
	* config/sh/elf.h (WCHAR_UNSIGNED): #undef .
	(MAX_WCHAR_TYPE_SIZE): Don't #define .
	(WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
	(USER_LABEL_PREFIX): Don't #undef /#define .
	(DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
	* config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
	(ASM_SPEC): Likewise.
	(SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
	(CC1_SPEC): don't supply -m3 for -m4*, -m5*.
	* t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
	(LIB2FUNCS_EXTRA): Define.
	* t-sh64 (LIB2FUNCS_EXTRA): Define.
	* config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
	(LIB1ASMFUNCS_CACHE): Define.
	(LIB2FUNCS_EXTRA): Redefine empty.

2002-04-08  Richard Henderson  <rth@redhat.com>

	* reorg.c (get_branch_condition): Use reversed_comparison_code.

2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/larith.asm (__map_data_section): Fix condition
	and optimize for size.
	(__do_global_ctors): Fix pointer comparison.
	(__do_global_dtors): Likewise.

2002-04-09  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_extra_constraint_check): New
	function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
	allow reloading pseudos.
	* config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
	* config/sparc/sparc-protos.h: Declare it.

	* config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
	unsigned comparison warning.
	(output_restore_regs): Mark leaf_function as unused.

Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (is_aligning_offset): New function.
	(expand_expr, case COMPONENT_EXPR): Call it.

2002-04-08  David S. Miller  <davem@redhat.com>

	PR target/6082
	* config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW

	Make init_priority work on SPARC when using GNU ld.
	* config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/freebsd.h
	(CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
	* config/sparc/sol2-gld.h: New file to do the same.
	* config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
	sparc/sol2-gld.h to tm_file.

	PR optimization/4328
	* config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
	* doc/md.texi: Document it.
	* config/sparc/sparc.md (movdi_insn_sp64_novis,
	movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
	movdf_insn_v9only_vis, movdf_insn_sp64_novis,
	movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
	* config/sparc/sparc.c (mem_min_alignment): Fix comment.

2002-04-08  Andreas Jaeger  <aj@suse.de>

	* stmt.c (expand_asm_operands): Revert last patch from Richard
	Henderson.

2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add John David Anglin and Loren
	J. Rittle (the latter also to Testers).  Update David O'Brien's entry.

2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add David O'Brien.

2002-04-08  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (auto-build.h): Use target_alias and build_alias
	when running configure.
	(gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
	(gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
	* configure: Regenerate.

2002-04-07  David S. Miller  <davem@redhat.com>

	* config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.

2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	PR 5933
	* pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
	generating 32-bit pic code.

2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>

	* cppinit.c (cpp_create_reader): Initialize
	discard_comments_in_macro_exp.
	(COMMAND_LINE_OPTIONS): Add "-CC" option.
	(cpp_handle_option): Handle "-CC" option.
	* cpplex.c (save_comment): If saving a C++ comment in
	a directive, convert it to a C comment.
	(_cpp_lex_direct): Pass second comment start character to
	save_comment to indicate comment type.
	* cpplib.c (_cpp_handle_directive): If processing
	a "#define" directive and discard_comments_in_macro_exp
	is false,  re-enable saving of comments.
	(lex_macro_node): If discard_comments_in_macro_exp is false,
	discard any comments before the macro identifier.
	* cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
	member.
	* cppmacro.c (cpp_get_token): If expanding a macro while
	processing a directive, discard any comments we might encounter.
	(parse_params): If discard_comments_in_macro_exp is false,
	ignore comments in the macro parameter list.
	* gcc.c (cpp_unique_options): Add "-CC" option.
	(option_map): Map "--comments-in-macros" to "-CC".
	* doc/cppopts.texi: Document "-CC" option.
	* f/lang-specs.h: Add "-CC" option.
	* testsuite/gcc.dg/cpp/maccom1.c: New test.
	* testsuite/gcc.dg/cpp/maccom2.c: New test.
	* testsuite/gcc.dg/cpp/maccom3.c: New test.
	* testsuite/gcc.dg/cpp/maccom4.c: New test.
	* testsuite/gcc.dg/cpp/maccom5.c: New test.
	* testsuite/gcc.dg/cpp/maccom6.c: New test.

2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	PR middle-end/6180
	* reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.

2002-04-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/5571
	* stor-layout.c (layout_decl): Reset the RTL for the decl.

	PR opt/5120
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
	RTX_UNCHANGING_P for the functions arguments when a tail call
	is made.

2002-04-06  Jason Merrill  <jason@redhat.com>

	* toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
	(parse_options_and_default_flags): Set them appropriately.
	* c-common.c (c_common_post_options): Don't set flag_really_no_inline.

2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
	here.

	* config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
	semicolon.

	* config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
	types come in by-reference.  Fix typo in comment.

2002-04-05  David S. Miller  <davem@redhat.com>

	* config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
	* config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
	sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
	{sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.

2002-04-05  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
	are not going to emit return instructions, emit at least a nop
	for the sake of sane backtraces.

2002-04-05  Richard Henderson  <rth@redhat.com>

	* doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).

2002-04-05  Jakub Jeilnek  <jakub@redhat.com>

	* mklibgcc.in: Use $tmpmapfile, not tmp-$@.

2002-04-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
	ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
	ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.

2002-04-05  Andreas Schwab  <schwab@suse.de>

	* c-convert.c: Include c-common.h.
	* Makefile.in (c-convert.o): Updated.

2002-04-05  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Use separate libgcc.map for each multilib.
	* Makefile.in (distclean): Don't remove libgcc.map here.

2002-04-05  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (s-mlib): Handle --disable-multilib by separate
	genmultilib invocation.

2002-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
	to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
	to num_gprs for symmetry.
	* config/mips/mips.c: Adjust accordingly.

2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (truthvalue_conversion): Rename, update.
	* c-common.h (c_common_truthvalue_conversion): New.
	* c-convert.c (convert): Update.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
	* c-typeck.c (build_binary_op, build_unary_op,
	build_conditional_expr): Update.
	* fold-const.c (constant_boolean_node, fold): Use langhook.
	* langhooks-def.h (LANGHOOK_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_decl_cleanup): Use langhook.
	* tree.h (truthvalue_conversion): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.

2002-04-05  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
	Add rules to make null object file.

2002-04-04  Jim Blandy  <jimb@redhat.com>

	* cppmacro.c (cpp_macro_definition): Do not emit spaces after
	macro formal parameter names.

2002-04-04  David S. Miller  <davem@redhat.com>

	* calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.

2002-04-04  Richard Henderson  <rth@redhat.com>

	PR middle-end/5099
	* stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
	Support copies into and out of memory.  Don't accept allows_reg
	and allows_mem as gospel.

2002-04-04  Richard Henderson  <rth@redhat.com>

	PR opt/6165
	* alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
	(write_dependence_p): Likewise.

2002-04-04  Richard Henderson  <rth@redhat.com>

	* predict.c (estimate_bb_frequencies): Do frequency calculation
	with a volatile temporary.

2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/6119
	* final.c (final_start_function): Don't bump profile_label_no here...
	(final_end_function): ...but here.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.md (pic): New attribute.
	(do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
	into stack slots.
	(split after do_builtin_setjmp_setup): New.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/6106
	* config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
	change.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
	UNITS_PER_WORD for zero sized aggregates.

2002-04-03  David S. Miller  <davem@redhat.com>

	* gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
	one-character spec for this, just use %(link_gcc_c_sequence).

2002-04-03  David S. Miller  <davem@redhat.com>

	* config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
	handling.

2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
	(DWARF_FRAME_RETURN_COLUMN): Move.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
	* pa.c (except.h, predict.h): Include.
	(FRP): Delete.
	(store_reg_modify, set_reg_plus_d): Revise prototypes.
	(output_ascii): Add cast.
	(store_reg_modify): Revise to add frame notes.
	(set_reg_plus_d): Likewise.
	(compute_frame_size): Include space for eh data registers in frame if
	the current function calls eh_return.
	(hppa_expand_prologue):  Ensure register %r2 is saved if the current
	function calls eh_return.  Save eh data registers if the current
	function calls eh_return.  Fix code to add frame notes.  Emit
	blockage to prevent insns with frame notes being scheduled in the
	delay slot of calls.
	(hppa_expand_epilogue): Restore eh data registers and do final stack
	adjustment if the current function calls eh_return.  Don't add frame
	notes.
	(output_call): Revise for change in length of call insn.  Don't do
	return pointer adjustment for an unconditional jump in the delay slot
	of a call when using frame notes.
	* pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
	(EH_RETURN_HANDLER_RTX): Use saved value on stack.
	(ARG_POINTER_CFA_OFFSET): Define.
	* pa.md (return_external_pic): New pattern.
	(prologue): Correct formatting.  Use return_external_pic if current
	function calls eh_return.
	(call_internal_symref, call_value_internal_symref,
	sibcall_internal_symref, sibcall_value_internal_symref): Change default
	lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
	respectively.
	(exception_receiver): Use hppa_pic_save_rtx () to restore pic register.

	* configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
	list of targets to check using "nop" insn.
	* configure: Rebuilt.

2002-04-04  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.

2002-04-03  David S. Miller  <davem@redhat.com>

	* gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
	library sequence passed to the linker.
	(LINK_COMMAND_SPEC): Use it.
	* doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
	a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
	* config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

2002-04-03  Jason Merrill  <jason@redhat.com>

	* except.c (struct eh_status): Remove protect_list.
	(begin_protect_partials, end_protect_partials): Remove.
	(add_partial_entry): Remove.
	* except.h: Remove prototypes.

	* expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
	expand_decl_cleanup_eh.

	PR c++/5636
	* tree.h (CLEANUP_EH_ONLY): New macro.
	* stmt.c (expand_decl_cleanup_eh): New fn.
	(expand_cleanups): Check CLEANUP_EH_ONLY.
	* c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
	Use expand_decl_cleanup_eh.
	(expand_stmt): Adjust.
	* c-common.h: Adjust prototype.

2002-04-04  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue): Cast
	uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
	(cris_target_asm_function_epilogue): Ditto.
	(cris_initial_frame_pointer_offset): Ditto.
	(cris_simple_epilogue): Ditto.
	(cris_expand_builtin_va_arg): Variable-size types come in
	by-reference.

2002-04-03  David S. Miller  <davem@redhat.com>

	* config/sparc/crtfastmath.c (FPRS_NS): Get it right for
	little-endian.
	(set_fast_math): Correct 'fsr' type.

2002-04-03  Richard Henderson  <rth@redhat.com>

	PR opt/3569
	* langhooks.h (lang_hooks.decls.warn_unused_global): New.
	* toplev.c (check_global_declarations): Use it.
	* langhooks-def.h (lhd_warn_unused_global_decl): Declare.
	(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
	(LANG_HOOKS_DECLS): Add it.
	* langhooks.c (lhd_warn_unused_global_decl): New.
	* c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
	* c-objc-common.c (c_warn_unused_global_decl): New.
	* c-tree.h (c_warn_unused_global_decl): Declare.
	* objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.

2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* langhooks-def.h (lhd_set_decl_assembler_name,
	LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
	* langhooks.h (struct lang_hooks): New hook.
	* tree.c (set_decl_assembler_name): Move to langhooks.c.
	(lang_set_decl_assembler_name): Remove.
	(init_obstacks): Don't set hook.
	(decl_assembler_name): New function.
	* tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
	(decl_assembler_name): New.
	(lang_set_decl_assembler_name): Remove.

2002-04-03  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
	works properly with .hidden symbols.
	* configure: Rebuilt.
	* config.in: Rebuilt.
	* config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
	DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
	properly with .hidden symbols.

2002-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6102
	* df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
	USE argument.

2002-04-03  Richard Henderson  <rth@redhat.com>

	PR opt/4120
	* sched-rgn.c (sets_likely_spilled): New.
	(sets_likely_spilled_1): New.
	(add_branch_dependences): Use it.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/4311
	* loop.h (LOOP_FIRST_PASS): New.
	* loop.c (strength_reduce): Mind it when deciding to unroll.
	* toplev.c (rest_of_compilation): Set it.

2002-04-02  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (ldd peephole2s): Fix final arg to
	mems_ok_for_ldd_peep when the order of the loads being examined
	is reversed.
	* config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
	existing comment to increase comprehension of this situation.

2002-04-02  Zack Weinberg  <zack@codesourcery.com>

	* config/sh/sh.md: Don't use union real_extract.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* libgcc2.c (__bb_exit_func): Revert 03-31 change.

2002-04-02  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
	i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
	i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
	i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
	i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
	i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
	i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
	i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
	i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
	i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
	i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
	i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
	i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
	i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
	Include as many configury headers via tm_file as possible.  This
	includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
	* config/openbsd-oldgas.h: New file.
	* config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
	config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
	config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
	config/i386/i386-coff.h, config/i386/i386-interix.h,
	config/i386/iscdbx.h, config/i386/linux-aout.h,
	config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
	config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
	config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
	config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
	config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
	config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
	config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
	config/i386/vxi386.h: Do not directly include configury headers.
	* config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
	Directly include configury headers that are no longer automatically
	included by the above headers.
	* config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
	* config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
	config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
	config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
	config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
	config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
	config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
	(TARGET_VERSION): Define.
	* config/i386/beos-elf.h, config/i386/freebsd.h,
	config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
	config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
	config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
	config/i386/sco5.h, config/i386/sysv4.h
	(TARGET_VERSION): Do not need to protect.
	* config/i386/freebsd64.h (TARGET_VERSION): Fix style.
	* config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
	config/i386/freebsd-aout.h, config/i386/i386-aout.h,
	config/i386/i386-interix.h, config/i386/linux-aout.h,
	config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
	config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
	(YES_UNDERSCORES): Do not define - not needed.
	* config/i386/bsd.h, config/i386/gas.h (LPREFIX,
	ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
	USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
	* config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
	(LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
	USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
	* config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
	* config/i386/isccoff.h, config/i386/v3gas.h: Remove.

2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
	    Richard Henderson  <rth@redhat.com>

	PR c/5484
	* function.c (assign_temp): Accept either type or decl argument.
	Detect variables whose size is too large to fit into an integer.
	* stmt.c (expand_decl): Pass the decl, not the type.

2002-04-02  David O'Brien  <obrien@FreeBSD.org>

	* protoize.c: Match include directory usage with cppdefault.c.

2002-04-03  Jeffrey A Law  (law@redhat.com)
	    Hans-Peter Nilsson  <hp@bitrange.com>

	* combine.c (simplify_comparison): Avoid narrowing a comparison
	with a paradoxical subreg when doing so would drop signficant bits.

2002-04-02  Steve Ellcey  <sje@cup.hp.com>

	* builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
	if POINTERS_EXTEND_UNSIGNED is defined.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/3967
	* local-alloc.c (contains_replace_regs): LO_SUM may contain
	replace regs.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* doc/standards.texi: Document required freestanding libc entry points.

2002-04-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
	associated splitter.  Remove MQ constraint.
	(ctrdi_internal4): Correct CCmode clobber.

2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* milli64.S ($$dyncall): New function.
	* t-linux (LIB1ASMFUNCS): Revise module list.
	(LIB1ASMSRC): Use pa/milli64.S.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
	rename solaris_sys_varargs_h.

Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
	the same mode as its component.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/190
	* final.c (this_is_asm_operands): Export.
	* output.h (this_is_asm_operands): Declare.
	* config/i386/i386.c (print_operand): Error odd asm operands.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/420
	* config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.

2002-04-01  Richard Henderson  <rth@redhat.com>

	PR target/1538
	* fixinc/inclhack.def (solaris_sys_varargs_h): New.
	* fixinc/fixincl.x: Rebuild.

2002-04-01  Richard Henderson  <rth@redhat.com>

	* config/ia64/unwind-ia64.c: Include ia64intrin.h.
	(atomic_alloc, atomic_free): New.
	(SIZE, MASK_FOR, PTR_IN): New.
	(emergency_reg_state, emergency_reg_state_free): New.
	(emergency_labeled_state, emergency_labeled_state_free): New.
	(reg_state_alloced, labeled_state_alloced): New.
	(alloc_reg_state, free_reg_state): New.
	(alloc_label_state, free_label_state, free_label_states): New.
	(push, pop, dup_state_stack, free_state_stack): Use them.
	(desc_label_state): Likewise.
	(uw_frame_state_for): Free label states and state stack.
	(uw_update_reg_address): Eliminate warnings.

2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>

	* config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c (grokdeclarator): Update.
	* c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* c-tree.h (c_mark_addressable): New.
	* c-typeck.c (default_function_array_conversion, build_unary_op,
	build_array_ref, convert_for_assignment): Update.
	(mark_addressable): Rename.
	* calls.c (try_to_integrate, expand_call): Use langhook.
	* expr.c (expand_expr): Use langhook.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_asm_operands): Use langhook.
	* tree.h (mark_addressable): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.

2002-04-01  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
	in previous change.

2002-04-01  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
	for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (unsigned_conversion_warning, convert_and_check,
	unsigned_type, signed_type, shorten_compare,
	c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
	* c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
	New.
	* c-decl.c (grokdeclarator): Update.
	* c-format.c (check_format_types): Update.
	* c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* c-typeck.c (build_binary_op, convert_for_assignment): Update.
	* convert.c (convert_to_integer): Use new hooks.
	* expmed.c (make_tree): Use new hooks.
	* expr.c (store_expr): Use new hooks.
	* fold-const.c (operand_equal_for_comparison_p, build_range_check,
	all_ones_mask_p, unextend, fold): Use new hooks.
	* langhooks.h (struct lang_hooks_for_types): New hooks.
	* tree.h (signed_or_unsigned_type, signed_type,
	unsigned_type): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
	(desc_frgr_mem): Fix reference to f16-f31.

2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
	RTVEC_ELT): Const-ify.
	* varray.h (VARRAY_CHECK): Const-ify.
	* ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
	ggc_mark_rtvec, ggc_mark): Const-ify.

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* diagnostic.c: Include langhooks-def.h.
	* Makefile.in (diagnostic.o): Update.

2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_unsafe_for_reeval): Rename.
	* c-common.h (c_unsafe_for_reeval): Rename.
	* c-decl.c (finish_incomplete_decl): Rename.
	(c_init_decl_processing): Don't set langhook.
	* c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
	* c-objc-common.c (c_objc_common_init): Don't set langhook.
	* c-tree.h (finish_incomplete_decl): Rename.
	* langhooks-def.h (lhd_unsafe_for_reeval): New.
	(LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_unsafe_For_reeval): New.
	* langhooks.h (struct langhooks): New hooks.
	* toplev.c (incomplete_decl_finalize_hook): Remove.
	(wrapup_global_declarations): Update.
	* tree.c (lang_unsafe_for_reeval): Remove.
	(unsafe_for_reeval): Update.
	* tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
	Remove.
objc:
	* objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.

2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>

	* diagnostic.c (print_error_function): Remove.
	(default_print_error_function): Rename.
	(report_error_function): Update.
	* diagnostic.h (print_error_function): Remove.
	(default_print_error_function): Remove.
	* langhooks-def.h (struct diagnostic_context): Predeclare.
	(lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct diagnostic context): Predeclare.
	(struct lang_hooks): New hook.

2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
	(PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
	!flag_pic.
	(CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
	* config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
	of PIC_OFFSET_TABLE_REGNUM thruout.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/darwin.h: Likewise.

Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (adjust_address_1, offset_address): Cast value to
	unsigned HOST_WIDE_INT, not unsigned int.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6096, middle-end/6098, middle-end/6099
	* reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
	CODE_LABELs.
	(fill_slots_from_thread): Likewise.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.c (function_arg_record_value_1): Pass complex
	floating fields in float regs.
	(function_arg_record_value_2): Likewise.

2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md (define_constants): Remove misleading
	FIXME.  Add MMIX_fp_rO_OFFSET.
	("nonlocal_goto_receiver"): Don't have stack-frame address of
	saved rO as part of the pattern.  Remove FIXME.
	("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
	here, at output-time.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6100
	* config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
	REG_BR_PRED.
	(output_v9branch): Likewise.

2002-03-31  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c: Revert previous patch for now.
	* config/i386/djgpp.h: Likewise.

2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/crti.asm (_init): Register _fini with atexit.
	* config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".

2002-03-31  Richard Henderson  <rth@redhat.com>

	PR target/3997
	* config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
	(ASM_OUTPUT_DEF_FROM_DECLS): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* libgcc2.c (__bb_exit_func): Make static.

	* config/alpha/alpha.md (trap): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_va_arg): Give warnings not errors for
	promoted argument types; build trap.
	(expand_builtin_trap): New.
	(expand_builtin): Use it.
	* stmt.c (expand_nl_goto_receivers): Likewise.
	* expr.h (expand_builtin_trap): Declare.
	* libfuncs.h (LTI_abort, abort_libfunc): New.
	* optabs.c (init_optabs): Init abort_libfunc.

2002-03-31  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
	(LINK_COMMAND_SPEC): ... from here.
	(init_gcc_specs): Duplicate it here too, omitting
	shared_name in the second copy.
	(init_spec): Test for duplicate
	* config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.

2002-03-30  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
	* config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.

2002-03-30  Roger Sayle <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	* regmove.c (combine_stack_adjustments_for_block): Avoid
	emitting a stack adjustment of zero bytes.  Let delete_insn
	update bb->head.

2002-03-30  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
	(sparc_emitting_epilogue): New.
	(leaf_label, output_return, sparc_return_peephole_ok): Remove.
	* config/sparc/sparc-protos.h: Update.
	* config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
	(TARGET_SWITCHES): Update.
	* config/sparc/sparc.md (return): Remove.
	(return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
	* config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
	config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
	config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
	config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
	config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
	Remove MASK_EPILOGUE.
	* doc/invoke.texi: Update.

2002-03-30  Daniel Berlin  <dan@dberlin.org>

	* dwarf2out.c (dwarf2out_define): Remove start_source_file call,
	CPP will start the file for us.

2002-03-30  Richard Henderson  <rth@redhat.com>

	PR target/5446
	* config/ia64/ia64.c (group_barrier_needed_p): Special case
	prologue_allocate_stack.
	(ia64_single_set): Use insn codes for recognition of special
	cases, not rtl matching.
	* config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.

Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.

2002-03-30  Richard Henderson  <rth@redhat.com>

	PR target/6032
	* config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
	or -fomit-frame-pointer with profiling.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove.
	(FUNCTION_PROFILER): Do nothing.
	(PROFILE_HOOK): New.
	* config/sparc/sparc.c (sparc_override_options): Don't check
	code models for profiling.
	(sparc_function_profiler): Remove.
	(sparc_profile_hook): New.
	* config/sparc/sparc-protos.h: Update.

2002-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6086
	* combine.c (combine_simplify_rtx): If simplify_rtx failed because
	of SUBREG of volatile MEM or because the MEM was mode dependent,
	return CLOBBER instead of unmodified SUBREG.

Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>

	* local-alloc.c (local_alloc): Avoid call of update_equiv_regs
	when not optimizing.

	* toplev.c (rest_of_compilation): Cann mark_constant_function
	only when optimizing.

	* flow.c (calculate_global_regs_live): Ensure that all AUX fields
	are NULL.

	* cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
	(thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
	(try_optimize_cfg): clear all AUX fields.

	* i386.c (aligned_operand): Be prepared for SUBREGed registers.
	(ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
	(ix86_address_cost): Be prepared for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/5672
	* expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.

2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
	for aggregate and TFmode types.

2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/5886
	* config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
	* config/ia64/hpux.h, config/ia64/linux.h: Likewise.

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/6041
	* config/i386/i386.c (x86_arch_always_fancy_math_387): New.
	(override_options): Disable NO_FANCY_MATH_387 if the arch allows.
	* config/i386/i386.h (x86_arch_always_fancy_math_387): New.
	* config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
	conditional.
	* docs/invoke.texi: Update -mno-fancy-math-387 docs.

2002-03-29  Dale Johannesen <dalej@apple.com>

	* loop.c (combine_movables): Do allow combination of pseudos.

2002-03-29  Loren J. Rittle  <ljrittle@acm.org>

	* config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
	* config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
	No functional change except ...
	* config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
	* doc/install.texi (*-*-freebsd*): Document port configuration.

2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (convert.o, calls.o, expmed.o): Update.
	* attribs.c (handle_mode_attribute, handle_vector_size_attribute):
	Use new hooks.
	* builtin-types.def (BT_PTRMODE): Update.
	* c-common.c (type_for_size): Rename c_common_type_for_size.
	(type_for_mode): Similarly.
	(shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
	Use new hook.
	* c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
	* c-decl.c (finish_enum, build_enumerator): Use new hooks.
	* c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	* c-typeck.c (common_type, comptypes, default_conversion):
	Use new hooks.
	* calls.c: Include langhooks.h.
	(emit_library_call_value_1): Use new hooks.  Avoid redundant
	calls.
	* convert.c: Include langhooks.h
	(convert_to_pointer, convert_to_integer): Use new hooks.
	* except.c (init_eh): Similarly.
	* expmed.c: Include langhooks.h.
	(expand_mult_add): Use new hooks.
	* expr.c (store_expr, store_constructor, expand_expr, do_jump,
	try_casesi): Similarly.
	* fold-const.c (optimize_bit_field_compare, make_range,
	decode_field_reference, fold_truthop, fold): Similarly.
	* function.c (assign_stack_local_1, assign_stack_temp_for_type,
	put_var_into_stack): Similarly.
	* langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
	LANG_HOOKS_TYPE_FOR_SIZE): New.
	(LANG_HOOKS_TYPES_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): New hooks.
	* stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
	* tree.c (get_unwidened, get_narrower): Similarly.
	* tree.h (type_for_mode, type_for_size): Remove.
	* varasm.c (force_const_mem): Use new hooks.
	* utils2.c (nonbinary_modular_operation): Update.
objc:
	* objc-act.c (handle_impent): Update.
	* objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
	Redefine.

2002-03-29  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
	* config/ia64/ia64.c (basereg_operand): New.
	* config/ia64/ia64-protos.h (basereg_operand): Declare.
	* config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.

2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
	unwind information when frame_pointer_needed.
	(mmix_assemble_integer): Tweak wording in comment.

2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (except.o): Update.
	* except.c: Include langhooks.h.
	(init_eh): Use langhook.
	* langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
	LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): New.
	(struct lang_hooks): Add it.
	* tree.c (make_lang_type_fn, make_lang_type): Remove.
	* tree.h (make_lang_type_fn, make_lang_type): Remove.
config:
	* alpha/alpha.c: Include langhooks.h.
	(alpha_build_va_list): Use langhook.
	* d30v/d30v.c: Include langhooks.h.
	(d30v_build_va_list): Use langhook.
	* i386/i386.c: Include langhooks.h.
	(ix86_build_va_list): Use langhook.
	* rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
	* s390/s390.c: Include langhooks.h.
	(s390_build_va_list): Use langhook.
	* stormy16/stormy16.c: Include langhooks.h.
	(stormy16_build_va_list): Use langhook.

2002-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5964
	* config/sparc/sparc.md (empty_delay_slot, branch_type): New
	attributes.
	(length): Compute variable length for branches/calls/jumps here.
	(branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
	normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
	define branch_type attribute.
	(divsi3_sp32): Maximum length is 6 not 7.
	(call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
	call_address_untyped_struct_value_sp32,
	call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
	* config/sparc/sparc.c (empty_delay_slot): New function.
	* config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
	* config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.

2002-03-29  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (set_nonzero_bits_and_sign_copies): Don't call
	nonzero_bits if not needed.
	(nonzero_bits) [XOR]: Likewise.
	(nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
	reg_last_set_mode and mode are both MODE_INT, but not equal.
	(record_value_for_reg): Compute reg_last_set_nonzero_bits
	in nonzero_bits_mode for MODE_INT modes.

2002-03-28  Richard Henderson  <rth@redhat.com>

	PR target/5715
	* config/alpha/osf.h (ASM_SPEC): Don't pass any special options
	to GAS.  Correct drift between alternatives.

2002-03-28  Richard Henderson  <rth@redhat.com>

	PR target/6087
	* reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.

2002-03-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/freebsd.h (LINK_SPEC): Don't pass default
	emulation to the linker.

2002-03-28  Loren J. Rittle  <ljrittle@acm.org>

	* config/alpha/freebsd.h (LINK_SPEC): Likewise.
	* config/sparc/freebsd.h (LINK_SPEC): Likewise.

Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)

	* combine.c (simplify_and_const_int): Make sure to apply mask
	when force_to_mode returns a constant integer.  PR3311.

2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (LOCAL_LABEL_PREFIX): Define.

2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
	and Objective-C Dialect Options.

2002-03-28  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
	comparison should be done vs !=0 not >0 return code.  Tidy cases.

2002-03-28  Richard Henderson  <rth@redhat.com>

	* c-decl.c (finish_function): New arg can_defer_p.  Pass it
	on to c_expand_body.
	* c-tree.h (finish_function): Update decl.
	* c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.

Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* ifcvt.c (if_convert): Clear aux_for_blocks early enough.

Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* rtlanal.c: Include flags.h
	(may_trap_p): Do not mark FP operations if trapping
	if !flag_trapping_math
	* Makefile.in (rtlanal.o): Add dependency on flag.h
	* ifcvt.c (noce_operand_ok): Avoid the lameness.

2002-03-27  Zack Weinberg  <zack@codesourcery.com>

	* mips.md: Use dconst1, not 1.0, as first argument of
	REAL_VALUE_LDEXP.  Don't use union real_extract.

2002-03-28  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (gcc_cv_as): Use $target_alias in directory searchs
	rather than $target.  Heed program_prefix and
	program_transform_name.  Search for gas in cross-compiler case too.
	"test -x" rather than "test -f".
	(gcc_cv_ld): Likewise.
	(gcc_cv_nm): Heed program_prefix and program_transform_name.
	(gcc_cv_objdump): Likewise.
	* configure: Regenerate.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (attribs.o): Update.
	* attribs.c: Include langhooks.h.
	(decl_attributes): Use langhook.
	* c-decl.c (insert_default_attributes): Rename.
	* c-tree.h (c_insert_default_attributes): New.
	* langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* tree.h (insert_default_attributes): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.

2002-03-27  Andreas Schwab  <schwab@suse.de>

	* config/i386/i386.c (classify_argument): Also check for
	QUAL_UNION_TYPE.

2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
	any more.

Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i960.md (ret): Set PC.
	(nonlocal_goto): Fix expander.
	* builtins.c (epxand_builin_longjmp): Check that we've emitted
	some jump or call.

Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>

	* optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
	of libcall regions.

Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
	assigning to BLOCK_FOR_INSN directly.

Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_expand_expr): Fix prototype.
	* c-common.h (c_expand_expr): Always declare, update.
	* c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* c-objc-common.c (c_objc_common_init): No global hook.
	* expr.c (expand_expr): Use langhook.
	* expr.h (enum expand_modifier): Conditionally declare.
	* langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_expand_expr): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
	(lang_independent_init): Don't default hook.
objc:
	* objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.

2002-03-27  Richard Henderson  <rth@redhat.com>

	PR target/6054
	* config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
	TARGET_CONST_GP.  Simplify conditions.

2002-03-27  Richard Henderson  <rth@redhat.com>

	* config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
	config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.

2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
	TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
	(MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
	Remove unnecessary masks.
	(MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
	(SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
	-mwindows, -mdll switches and their negations.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc-common.c (lang_mark_false_label_stack): Remove.
	* ggc.h (lang_mark_false_label_stack): Similarly.

2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>

	* pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.

	* pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
	or __rtems_ is defined.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
	if a non-trivial load was emitted.
	(alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
	in high+extra+low case.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparc*-solaris): Use float_format=sparc.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
	* config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
	* config/sparc/linux.h, config/sparc/linux64.h: Likewise.
	* config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
	(WINT_TYPE_SIZE): Fix at 32.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Delay emit_initial_value_sets
	until after eh landing pad generation.
	* config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
	* config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* expr.h (ADD_PARM_SIZE): One more convert for INC.

2002-03-26  Phil Edwards  <pme@gcc.gnu.org>

	* gcc.c (cpp_options):  Preserve relative ordering of -pedantic
	and warning switches.
	(cc1_options):  Likewise.

2002-03-26  Hans Boehm <Hans_Boehm@hp.com>

	* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
	Restore more of the signal context.  Set no_reg_stack_frame.
	* config/ia64/unwind-ia64.c (unw_state_record):
	Add no_reg_stack_frame, comments.
	(uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
	(uw_update_context): Adjust bsp when unwinding from leaf,
	but not signal frame.

2002-03-26  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix51.h (WCHAR_TYPE): Define.

2002-03-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.

2002-03-26  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5621
	* arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
	"Add a pool_range attribute", which was lost during the ARM/Thumb
	merge.

2002-03-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
	a register into the MAC16 accumulator.

2002-03-26  Andrew Cagney  <ac131313@redhat.com>

	* doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
	(Warning Options): Document -Wswitch-enum.
	* toplev.c (W_options): Add -Wswitch-enum.  Update comment on
	-Wswitch.
	(warn_switch_enum): Define variables.
	* flags.h (warn_switch_enum): Declare variables.
	* stmt.c (expand_end_case_type): When warn_switch_enum /
	-Wswitch-enum, perform switch checks.
	Fix PR c/5044.

2002-03-26  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
	(reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
	(reload_muladdsi_compare0_scratch): Delete.

2002-03-26  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (*-*-freebsd*): Update.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
	(SUB_PARM_SIZE): Cast DEC to ssizetype.

	* config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
	types from the normal argument frame.

	* config/sparc/sparc.c (function_arg_pass_by_reference): Pass
	variable sized objects by reference.
	(sparc_va_arg): Receive them by reference too.

2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Change epilogue
	code to not restoring global registers.

2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (ggc-common.o): Update.
	* c-decl.c (lang_mark_tree): Rename c_mark_tree.
	* c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
	* c-tree.h (c_mark_tree): New.
	* ggc-common.c: Include langhooks.h.
	(gcc_mark_trees): Use new langhook.
	* ggc-callbacks.c: Delete file.
	* ggc.h (lang_mark_tree): Remove.
	* langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.

2002-03-25  Zack Weinberg  <zack@codesourcery.com>

	* doc/cpp.texi: Exclude entire Top node from printed manual.
	Move option index after directive index.  Insert page breaks
	before GFDL and concept index.  Index environment variables
	with command line options.
	* doc/cppenv.texi: Use @vtable for environment variable list.
	Add paragraph explaining semantics of empty elements in path
	variables.  Exclude a cross-reference to Fishkill from the
	manpage.  Remove an unnecessary cross-reference of the entry
	right above the referer.  Don't use @anchor in text that goes
	into manpage.
	* doc/cppopts.texi: Cross-reference the environment variables
	section, not the specific environment variable, for consistency.

2002-03-25  Richard Henderson  <rth@redhat.com>

	* recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
	anywhere in the block.  Don't refer to insns that have been
	removed from the chain.  Iterate backward through the new insns.
	Don't refer to edges that have been removed.

2002-03-26  Alan Modra  <amodra@bigpond.net.au>

	* combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
	test for overflow of constant.

2002-03-25  Richard Earnshaw  <rearnsha@arm.com>

	PR target/2623
	* arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
	(loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
	these patterns on arm_archv4.

2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>

	* config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
	int".

2002-03-25  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Don't include setjmp.h.  Kill float_handler_set,
	float_handled, float_handler, float_signal, set_float_handler,
	and do_float_handler.  Set handler for SIGFPE to crash_signal.
	* toplev.h: Don't prototype do_float_handler.

	* c-lex.c: Fold parse_float into lex_number.  Make warning
	about portability of hex float constants more informative, and
	don't issue it on top of a syntax error.
	* fold-const.c: Fold const_binop_1 and fold_convert_1 into
	their callers.
	* real.h: Define REAL_VALUE_ABS here...
	* simplify-rtx.c: ... not here.  Fold check_fold_consts,
	simplify_unary_real, simplify_binary_real, and
	simplify_binary_is2orm1 into their callers.
	* tree.c: Fold build_real_from_int_cst_1 into caller.

	* doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.

	* tsystem.h: Include float.h here...
	* libgcc2.c: ... not here.

2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>

	Fixes for: PR bootstrap/3591, target/5676
	* config/mcore/mcore.h (CC1_SPEC): Define only if not already
	defined.  Do not disable exceptions or rtti.
	* config/mcore/mcore-pe.h (CC1_SPEC): Define before including
	mcore.h.  Disable exceptions and rtti, since they are not
	supported by EPOC.

2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c (maybe_build_cleanup): Remove.
	* expr.c (expand_expr): Use langhook.
	* langhooks-def.h (lhd_return_null_tree,
	LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
	(LANGHOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_return_null_tree): New.
	* langhooks.h (struct lang_hooks): New hook.
	* tree-inline.c (initialize_inlined_parameters): Use langhook.
	* tree.h (maybe_build_cleanup): Remove.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	* regrename.c (build_def_use): Move recog_memoized
	before extract_insn.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/6043
	* expr.c (emit_group_store): Handle storing into CONCAT.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	* regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
	corresponding MATCH_DUP.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* unroll.c (unroll_loop): Zero label_map.

	* gcse.c: Include except.h.
	* Makefile.in (gcse.o): Update.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
	Do resolve_unique_section before shared data clause.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* recog.c (peephole2_optimize): Split blocks when EH insns are
	generated in the middle of a block.  Do global life update if
	zapped EH edges.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* mips.c (mips_function_value): Only promote_mode for non-libcalls.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	preprocessor/3951
	* gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
	* cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
	(init_dependency_output): Don't make no_output decision here.

2002-03-24  Andrew Cagney  <ac131313@redhat.com>

	* stmt.c (check_for_full_enumeration_handling): Remove tests of
	warn_switch.  Update description.
	(expand_end_case_type): Call check_for_full_enumeration_handling
	when warn_switch.

2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
	(m68hc11_split_move): Call it to see if the source and destination
	operands use the same direction auto inc/dec mode, otherwise make the
	source an offsetable memory operand and generate an add.

2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
	register for operand 2.
	("*subsi3_zero_extendqi"): Likewise.
	("*iorhi3_gen"): Do the operation on the upper bits and then lower
	bits so that it is compatible with a pop.
	("*andhi3_gen"): Likewise.
	("xorhi3"): Likewise.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (cpp_handle_option): Set warn_endif_labels if
	-pedantic here...
	(cpp_post_options): ... not here.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Aldy Hernandez  <aldyh@redhat.com>

	Removal of separate preprocessor cpp0.

	* Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
	cpp0, install-common): Update.
	* c-common.c (flag_preprocess_only): New.
	(c_common_init): Preprocess for -E.
	* c-common.h (flag_preprocess_only): New.
	* c-decl.c (c_decode_option): Handle -E and -std=c++98.
	* c-objc-common.c (c_init_decl_processing): Exit quickly
	for NULL return from c_common_init.
	* cpplib.h (cpp_preprocess_file): New.
	* cppmain.c (main, general_init, pfile, progname): Remove.
	(do_preprocessing): Rename cpp_preprocess_file, don't call
	cpp_finish.  Don't close stdout here.
	(setup_callbacks): Update prototype.
	* gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
	Update.
	* tradcpp.c (main): Ignore -quiet.
objc:
	* lang-specs.h (default_compilers): Preprocess with cc1obj.

2002-03-24  Richard Henderson  <rth@redhat.com>

	PR optimization/5742
	* machmode.def: Add inner mode field to complex modes.
	* config/mips/mips.c (mips_function_value): Always define.  Add
	new argument to handle libcalls.
	* config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
	(FUNCTION_VALUE): Likewise.
	* config/mips/abi64.h (FUNCTION_VALUE): Remove.
	* config/mips/mips-protos.h: Update.

2002-03-23  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (sparc_emit_floatunsdi): New.
	* config/sparc/sparc-protos.h: Update.
	* config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.

2002-03-23  Richard Henderson  <rth@redhat.com>

	* config/sparc/gmon-sol2.c (internal_mcount): Assume either
	_start or _init begins the text segment.

2002-03-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
	not HOST_WIDEST_INT.
	(RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.

2002-03-23  Richard Earnshaw  <rearnsha@arm.com>

	PR java/5489
	* arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
	operand argument to output_return_instruction.
	* arm.c (arm_print_operand, case 'd'): If the operand is
	const_true_rtx then just return.
	(arm_print_operand, case 'D'): If the operand is const_true_rtx
	then abort.

2002-03-23  Andrew Cagney  <ac131313@redhat.com>

	* doc/invoke.texi (Option Summary): Mention -Wswitch-default.
	(Warning Options): Document -Wswitch-default.
	* toplev.c (W_options): Add -Wswitch-default.  Update comment on
	-Wswitch.
	(warn_switch_default): Define variable.
	(warn_switch): Update comment.
	* flags.h (warn_switch_default): Declare variable.
	(warn_switch): Update comment.
	* stmt.c (expand_end_case): Check for and, when
	warn_switch_no_default, warn of a missing default case.

2002-03-23  Alan Modra  <amodra@bigpond.net.au>

	* real.h (N): Special case 128 bit doubles.

	* combine.c (simplify_comparison): When widening modes, ignore
	sign extension on CONST_INTs.

2002-03-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (print_operand): Fix incorrect mode
	passed to adjust_address.  Fix comment formatting.


2002-03-22  Zack Weinberg  <zack@codesourcery.com>

	* real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
	Always make REAL_VALUE_TYPE a struct containing an array of
	HOST_WIDE_INT, not a double.  Tidy up the code deciding how
	big it is.  Don't declare or use union real_extract.

	* emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
	decode_rtx_const, output_constant_pool), config/a29k/a29k.c
	(print_operand), config/arm/arm.c (output_move_double),
	config/arm/arm.md (consttable_4, consttable_8),
	config/romp/romp.c (output_fpops), config/s390/s390.h
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
	(xtensa_output_literal): Don't use union real_extract.

	* config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
	(sfmode_constant_to_ulong), config/ns32k/merlin.h
	(PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
	config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
	(PRINT_OPERAND): Don't use local version of union
	real_extract.

	* config/convex/convex.c (check_float_value), config/vax/vax.c
	(vax_float_literal), config/m88k/m88k.md (divdf3),
	config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
	config/pdp11/pdp11.c (output_move_quad): Don't do host
	arithmetic on target floating point quantities.

	* config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
	(output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.

	* fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
	Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.

	* real.c (earith): Test INFINITY rather than REAL_INFINITY;
	NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
	INFINITY.
	* print-rtl.c (print_rtx): Disable code which needs
	floating-point emulator.
	* libgcc2.c: Include float.h and use DBL_MANT_DIG,
	FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
	depending on HOST_FLOAT_FORMAT to be defined properly.

	* config/1750a/1750a.c (get_double, float_label): Delete.
	(print_operand): Delete huge commented-out chunk.  Use
	REAL_VALUE_TO_DECIMAL.
	* config/1750a/1750a-protos.h: Delete prototypes of deleted
	functions.
	* config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
	IEEE_FLOAT_FORMAT.
	* config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
	Use REAL_VALUE_TO_DECIMAL as ELF version does.
	* config/m88k/m88k.c (real_power_of_2_operand,
	legitimize_operand): Take the REAL_VALUE_TYPE and/or union
	real_extract out of the union; run the input through
	REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
	from that into the union.
	* config/pdp11/pdp11.c (output_move_double): Rearrange
	parentheses to make automatic indenter happy.

	* doc/tm.texi (Cross-compilation): Rename node to "Floating
	Point" and rewrite to describe current situation.  Also adjust
	documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
	match code.
	* doc/rtl.texi: Adjust cross reference.

2002-03-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
	(xtensa_valid_move, xtensa_preferred_reload_class): Define.
	* config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
	(xtensa_valid_move, xtensa_preferred_reload_class): Define to
	prevent use of sp as a reload register.
	(xtensa_emit_move_sequence): Use xtensa_valid_move instead of
	non_acc_reg_operand.
	* config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
	(PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
	* config/xtensa/xtensa.md (movsi_internal, movhi_internal,
	movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.

2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
	* cpplex.c (unterminated): Delete.
	(parse_string): No string literal may extend over multiple
	lines.  Suppress the error when preprocessing assembly.
	* cppmain.c (scan_translation_unit): Strings are single-line.

	* doc/cpp.texi: Update to match.

2002-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5854
	* config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
	Shut up warnings.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
	(EXTRA_CONSTRAINT): Use S for non-push memory operand.
	* config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
	const0 if scratch register was not allocated.
	(m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
	m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
	with GEN_INT (...).
	(m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
	* config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
	with GEN_INT (...) everywhere.  Remove constraints in define_split
	patterns.
	(movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
	require scratch register for setting 0 into regs/non-pushable memory.

2002-03-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (MASK_RETURN_ADDR): Define.
	(TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.

2002-03-22  Phil Edwards  <pme@gcc.gnu.org>

	* cpplib.h (struct cpp_options):  New member, warn_endif_labels.
	* cppinit.c (cpp_create_reader):  On by default.
	(cpp_handle_option):  Handle -W[no-]endif-labels.
	(cpp_post_options):  Also enable if -pedantic.
	* cpplib.c (do_else):  Use it.
	(do_endif):  Likewise.
	* doc/cppopts.texi:  Document new option.
	* doc/invoke.texi:  Document new option.

2002-03-22  Lars Brinkhoff  <lars@nocrew.org>

	* config/i386/i386.c, config/i386/i386.md: Change all occurences
	of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).

2002-03-22  Alexandre Oliva  <aoliva@redhat.com>

	* flow.c (calculate_global_regs_live): Clear aux fields of
	ENTRY and EXIT.

2002-03-22  Jakub Jelinek  <jakub@redhat.com>

	* config/v850/v850.c (v850_reorg): Only call alter_subreg on
	REG or MEM subregs, pass rtx * instead of rtx to it.
	* config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
	rtx * instead of rtx to alter_subreg.
	* config/m32r/m32r.c (gen_split_move_double): Likewise.
	* config/pj/pj.c (pj_output_rval): Likewise.

2002-03-22  Richard Henderson  <rth@redhat.com>

	PR target/3177
	* config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
	* config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
	(ia64_expand_prologue): Look at int_regs, not words, for number
	of incomming int regs.

2002-03-22  Andrew MacLeod  <amacleod@redhat.com>

	* expr.c (expand_expr): A RESULT_DECL is part of a call.

Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (flag_loop_optimize, flag_crossjumping):
	New static variables.
	(rest_of_compilation): Conditionalize crossjumping and
	loop optimizer.
	(parse_options_and_default_flags): Default loop_optimize and
	crossjumping.
	(lang_independent_options): Add -fcrossjumping and -floop-optimize
	* invoke.texi (crossjumping, loop-optimize): Document.

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* real.c (eiisneg): Move outside #ifdef NANS.

Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (outgoing_edges_math): Fix condition; relax
	frequencies match; avoid match on different loop depths.
	(try_crossjump_to_bb): Kill tests that no longer brings time
	savings.
	* cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
	updating code.
	(split_edge): Likewise.

	* flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
	variable.

	* Makefile.in (cfgrtl): Add insn-config.h depenendency.
	* cfgrtl.c: Include insn-config.h
	(split_block) Dirtify block in presence of conditional execution

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
	* config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
	(function_arg): Constify CUMULATIVE_ARGS.
	(function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
	* config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
	(UNITS_PER_DOUBLE): New macro.
	(SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
	(CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
	last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
	fp_regs and stack_words.
	(EABI_FLOAT_VARARGS_P): New macro.
	* config/mips/mips.c (struct mips_arg_info): New.
	(mips_arg_info): New function.
	(function_arg_advance): Use it.  Add adjustment instructions here
	rather than in function_arg.
	(function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
	for VOIDmode at the beginning of the function.
	(function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
	(function_arg_pass_by_reference): Likewise.
	(mips_setup_incoming_varags): New, largely based on old abi64.h code.
	(mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
	(mips_va_start): Likewise.  Use the new stack_words field of
	CUMULATIVE_ARGS to set up overflow area.  Reformat.
	(mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
	doubles and other types, aligning the overflow pointer for non-doubles
	too.  Remove some code duplication.  Replace hard-coded constants.

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
	(CLASS_UNITS): Undefine.
	(CLASS_MAX_NREGS): Use FP_INC.
	* config/mips/mips.c (compute_frame_size): Likewise.
	(override_options): Use FP_INC and UNITS_PER_FPVALUE.

2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
	prototype, and handle lexing numbers and identifiers.
	(parse_identifier): Update to new form of parse_slow.
	(parse_number): Fast path only, use parse_slow otherwise.
	(_cpp_lex_direct): Update calls to parse_number.

2002-03-21  DJ Delorie  <dj@redhat.com>

	* bb-reorder.c (make_reorder_chain_1): Protect against
	when redundant edges are omitted.
	* predict.c (dump_prediction): Likewise.

2002-03-21  Richard Henderson  <rth@redhat.com>

	PR target/5996
	* fixinc/inclhack.def (solaris_stdio_tag): New.
	* fixinc/fixincl.x: Regenerate.

2002-03-21  Eric Botcazou <ebotcazou@multimania.com>

	PR c/5597
	* c-typeck.c (process_init_element): Flag non-static
	initialization of a flexible array member as illegal.

2002-03-22  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64: New.
	* config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
	t-ppccomm.  Use t-rs6000 and t-linux64.
	(powerpc64-*-gnu* <tmake_file>): Likewise.
	* mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
	* mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
	* Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.

2002-03-21  Aldy Hernandez  <aldyh@redhat.com>

	* langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
	flag_really_no_inline instead of optimize == 0.

	* c-objc-common.c (c_cannot_inline_tree_fn): Same.

	* cp/tree.c (cp_cannot_inline_tree_fn): Same.

	* flags.h (flag_really_no_inline): New.

	* c-common.c (c_common_post_options): Initialize
	flag_really_no_inline.

	* toplev.c (flag_really_no_inline): New.

2002-03-21  Jakub Jelinek  <jakub@redhat.com>

	* config/avr/avr.md (length): Fix length computation for
	conditional branches.

2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (fold-const.o, stor-layout.o, stmt.o,
	sdbout.o, profile.o): Update.
	* c-common.c (c_common_nodes_and_builtins): Use pushdecl
	langhook.
	* c-common.h (gettags): Move here from tree.h.
	* c-tree.h (pushdecl, pushlevel, poplevel, set_block,
	insert_block, getdecls, kept_level_p, global_bindings_p): New.
	* dbxout.c (dbxout_init): Use getdecls langhook.
	* expr.c (expand_expr): Use insert_block langhook.
	* fold-const.c: Include langhooks.h.
	(fold_range_test, fold_binary_op_with_conditional_arg,
	fold): Use global_bindings_p langhook.
	* integrate.c (expand_inline_function): Use insert_block langhook.
	* langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
	LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
	LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
	LANG_HOOKS_GETDECLS): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
	langhook.
	* langhooks.h (struct lang_hooks_for_decls): New.
	(struct lang_hooks): Update.
	* profile.c: Include langhooks.h.
	(output_func_start_profiler): Use new langhooks.
	* sdbout.c: Include langhooks.h.
	(sdbout_init, sdbout_finish): Use getdecls langhook.
	* stmt.c: Include langhooks.h.
	(expand_fixup, fixup_gotos): Use new langhooks.
	* stor-layout.c: Include langhooks.h.
	(variable_size): Use global_bindings_p langhook.
	* toplev.c (compile_file): Use getdecls langhook.
	* tree-inline.c (remap_block): Use insert_block langhook.
	* tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
	insert_block, getdecls, kept_level_p, global_bindings_p): Remove.

2002-03-21  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
	constants in .data when -fpic.

2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
	where appropriate.

2002-03-21  Tom Tromey  <tromey@redhat.com>

	* config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.

Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.

	* expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.

2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
	    Richard Henderson  <rth@redhat.com>

	PR c/5354
	* c-common.c (c_expand_expr): Preserve result of a statement
	expression if needed.

2002-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/4195
	* genrecog.c (maybe_both_true_mode): Remove.
	(maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
	* machmode.def (Pmode): Likewise.

Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)

	* alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
	(nonlocal_mentioned_p_1): New function.
	(nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
	(nonlocal_set_p, nonlocal_set_p_1): Likewise.
	(mark_constant_function): Recognize pure functions.
	* rtl.h (global_reg_mentioned_p): New prototype.
	* rtlanal.c (global_reg_mentioned_p,
	global_reg_mentioned_p_1): New function.

2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
	UNIX assert.h.
	* fixinc/fixincl.x: Regenerate.

2002-03-20  Jason Merrill  <jason@redhat.com>

	* config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.

2002-03-20  Michael Meissner  <meissner@redhat.com>

	* doc/invoke.texi (Optimize Options): Document that -O2 sets
	-fstrict-aliasing.

2002-03-20  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
	".literal_position" directive before the constant pool.

2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Update Geoffrey Keating.
	Add Craig Rodrigues.
	Add Brad Lucier to testers.

2002-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/4792
	* config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
	to if_then_else.
	(movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
	* config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
	instead of insn_extract.

2002-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/4192
	* config/fr30/fr30.md (jump): Remove clobber of fixed register.

	* genemit.c (output_added_clobbers_hard_reg_p): Only output return
	stmt if some case has been output.

2002-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR c/5972
	* config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
	movsfcc_1, movdfcc_1): Add %O2.
	* config/i386/i386.c (print_operand): Handle %ON.
	Print . before float condition codes in Sun as cmov syntax.
	* config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
	* config.gcc (i[34567]86-*-solaris2*): Remove comment which is
	no longer true.

2002-03-20  Philip Blundell  <pb@nexus.co.uk>

	* config/arm/arm.c (arm_output_epilogue): Don't generate separate
	return instruction if PC was popped.

2002-03-20  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md: Remove unused type attributes.
	(adddi_carry, subddi_carry): Change type attribute to "multi".

2002-03-19  Dale Johannesen  <dalej@apple.com>

	PR optimization/5999, middle-end/5731
	* expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
	multiplications by reciprocals.

2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* c-common.c: Include langhooks.h.
	(inline_forbidden_p): Use new hook.
	* diagnostic.c: Include langhooks.h.
	(format_with_decl, announce_function,
	default_print_error_function): Use new hook.
	* dwarf2out.c (dwarf2_name): Use new hook.
	* function.c: Include langhooks.h.
	(init_function_start): Use new hook.
	* langhooks-def.h (lhd_decl_printable_name): New.
	(LANGHOOKS_DECL_PRINTABLE_NAME): New.
	(LANGHOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_decl_printable_name): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (decl_name, decl_printable_name): Remove.
	(open_dump_file): Use new hook.
	(process_options): Remove old hook.
	* tree.h (decl_printable_name): Remove.
objc:
	* objc-act.c (objc_init): Remove old hook.
	(objc_printable_name): Export.
	* objc-act.h (objc_printable_name): New.
	* objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.

2002-03-19  Jim Blandy  <jimb@redhat.com>

	* c-lex.c (cb_file_change): Pass the #inclusion's line number to
	the start_source_file debug hook, not the current line number.

2002-03-19  Richard Henderson  <rth@redhat.com>

	* flow.c (EH_USES): Provide default.
	(calculate_global_regs_live): Use it for EH edges and noreturn calls.
	* doc/tm.texi (EH_USES): New.

	* config/ia64/ia64.c (ia64_eh_uses): New.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (EH_USES): New.

2002-03-19  Richard Henderson  <rth@redhat.com>

	* varasm.c (output_constant_def): Fix stupid typo.

2002-03-19  Richard Henderson  <rth@redhat.com>

	PR 5879
	* except.c (current_function_has_exception_handlers): New.
	* except.h: Declare it.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
	Combine tests that disable all sibcalls for the function.

2002-03-19  Olivier Hainque  <hainque@act-europe.fr>

	* varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
	for INTEGER_CST.

2002-03-19  Richard Henderson  <rth@redhat.com>

	PR 5977, 5991
	* config/ia64/ia64.c: Revert 2002-03-01 patch.
	* config/ia64/ia64.h (INIT_EXPANDERS): New.

2002-03-19  Jim Blandy  <jimb@redhat.com>

	* cppmacro.c (cpp_macro_definition): Emit a space after the macro
	name, even if the replacement list contains no tokens, as required
	by Dwarf.

2002-03-19  Jason Merrill  <jason@redhat.com>

	* varasm.c (globalize_decl): Get the name from the RTL, not
	DECL_ASSEMBLER_NAME.

	* Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.

2002-03-19  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
	subdi_carry): Define.

2002-03-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Only warn
	about -fpic/-fPIC if extra_warnings set.

2002-03-19  David Edelsohn  <edelsohn@gnu.org>

	* expr.c (expand_expr): Sign-extend CONST_INT generated from
	TREE_STRING_POINTER.
	* fold-const.c (fold): Delete #if 0 ARRAY_REF case.

Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
	in favor of SP if FRAME_POINTER_REQUIRED is false.

2002-03-19  Lars Brinkhoff  <lars@nocrew.org>

	* emit-rtl.c (gen_int_mode): New function.
	* rtl.h: Prototype for it.
	* combine.c (make_extraction, simplify_comparison), expmed.c
	(store_bit_field, expand_mult_highpart, expand_divmod), expr.c
	(convert_modes, store_field), optabs.c (expand_fix),
	simplify-rtx.c (neg_const_int, simplify_unary_real),

	* config/rs6000/rs6000.c, config/rs6000/rs6000.md:
	Use it instead of GEN_INT (trunc_int_for_mode (...)).

2002-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/5656
	* langhooks.h (struct lang_hooks_for_tree_inlining): Add
	convert_parm_for_inlining.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
	Define.
	* langhooks-def.h: Likewise.
	* objc/objc-lang.c: Likewise.
	* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
	function.
	* tree-inline.c (initialize_inlined_parameters):
	Call convert_parm_for_inlining lang hook if needed.
	* c-typeck.c (c_convert_parm_for_inlining): New function.
	* c-tree.h (c_convert_parm_for_inlining): Add prototype.

2002-03-18  Mark Mitchell  <mark@codesourcery.com>

	* calls.c (precompute_arguments): Do not assume that temporaries
	can be destroyed after expanding the argument.
	(expand_call): Likewise.

2002-03-15  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md (movdf_internal2): Add two new move constraints.
	Fix register preference on last change.
	* config/mips/mips.c (mips_return_in_memory): New function.
	* config/mips/mips.h (RETURN_IN_MEMORY): Use.
	* config/mips/mips-protos.h: Declare.
	* config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
	* config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.

2002-03-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
	a register too.
	(anddi3, iorsi3): Likewise.

	* config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
	use %gprel for symbols that are going to be placed in linkonce
	sections.

	* config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
	RETURN_ADDRESS_POINTER_REGNUM to $ra.
	(CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
	not needed.  Disregard leaf_function_p().
	(INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
	mips16 frame pointer.
	* config/mips/mips.md (store ra): Only to small SP offsets.
	2001-08-22  Graham Stott  <grahams@redhat.com>
	* config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
	return a REG rtx for the return address register.

2002-03-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
	constant-pool addresses as "mode-dependent".
	(GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.

2002-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/5740
	* expr.c (emit_group_load): Use extract_bit_field if
	needed for CONCAT arguments.

2002-03-18  Richard Earnshaw  <rearnsha@arm.com>

	PR target/4863
	* arm.md (tablejump): Make this a define_expand.  For PIC add the
	offset to the base of the table.
	(thumb_tablejump): Matcher for Thumb tablejump insn.
	* config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
	as the difference of two labels.
	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
	tables in the code.
	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
	* arm.c (get_jump_table_size): If the table is not in the text
	section, return zero.

2002-03-18  Bernd Schmidt  <bernds@redhat.com>

	* config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
	of gen_rtx_SUBREG.
	(arm_reload_out_hi): Use gen_lowpart instead of
	gen_rtx_SUBREG to access QImode components.
	* config/arm/arm.md: Disable zero_extend split for QImode
	subregs in BIG_ENDIAN mode.
	(storehi_bigend): Match use of least significant byte.
	(storeinthi): Remove extraneous SUBREG.
	Add missing construction of operands[2].
	(movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
	(movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
	Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.

2002-03-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
	any_operand.

2002-03-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
	explicitly.

2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
	(unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).

2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ifcvt.c (dead_or_predicable): Fix uninitialized variable.

	* predict.c (estimate_bb_frequencies): Delete unused variables.

2002-03-17  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_attribute_table): Move before
	targetm definition.  Make static.

2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.h (yyparse, c_common_parse_file): New.
	* c-lang.c: Include c-common.h.
	(LANG_HOOKS_PARSE_FILE): Redefine.
	* c-lex.c: Include c-common.h.
	(yyparse): Rename c_common_parse_file.  Call yyparse.
	* c-parse.in (yyparse): Remove macro.
	* c-tree.h (yyparse_1): Remove.
	* langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hoooks): New hook parse_file.
	* toplev.c (compile_file): Use parse_file hook.
	* tree.h (yyparse): Remove.
	* objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.

2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("truncdfsf2"): Correct operator is
	float_truncate, not fix.
	("*truncdfsf2_real"): Ditto.
	("*nonlocal_goto_receiver_expanded"): Fix output template formatting.

	* config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.

2002-03-16  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
	(s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
	where appropriate.  Make the second reference to
	leaf_function_p a function call, as intended.  Reindented.

	* config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
	* config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.

	* config/mips/mips.md (addsi3, adddi3): Use scratch register to
	add register to non-constant into sp.

	* config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
	* config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
	(mips16_gp_pseudo_rtx): Lose.
	(INIT_EXPANDERS): Deleted.
	* config/mips/mips.c (mips_init_machine_status): New.
	(mips_free_machine_status): New.
	(mips_mark_machine_status): New.
	(override_options): Set them.
	(embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
	(struct machine_function): ... new.  Replaced all references.
	(mips_add_gc_roots): Don't mark them.
	(embedded_pic_fnaddr_reg): New, extracted from...
	(embedded_pic_offset): ... here.
	* config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
	(movsi): Likewise.

2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c: Revert -MD removal.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
	soft registers by default for 68HC12.
	(m68hc11_conditional_register_usage): Don't use Z register for 68HC12
	when compiling with -fomit-frame-pointer.
	(expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
	(expand_epilogue): Likewise.
	(m68hc11_gen_rotate): Use exg when rotating by 8.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
	* config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
	(splits): Remove unused add splits.
	("*addhi3_68hc12"): Tune constraints.
	("addhi_sp"): Try to use X instead of Y in all cases and if the
	constant fits in 8-bits and D is dead use abx/aby instructions.
	("*addhi3"): Remove extern declaration of ix_reg.
	("*subsi3"): Optimize and provide new split.
	("subhi3"): Cleanup.
	("*subhi3_sp"): Avoid saving X if we know it is dead.
	(arith splits): For 68hc12 save the address register on the stack
	and do the arithmetic operation with a pop.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
	allocating QImode in address registers.
	("*movqi_m68hc11"): Likewise.

Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>

	* cfgcleanup.c (cleanup_cfg): Fix updating of liveness.

2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (print_help): Display -MD and -MMD.
	Don't display usage string.  Update assertion syntax and
	typo.
	(COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
	(cpp_handle_option): Update.

2002-03-15  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
	MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
	and define it so that regardless of target CPU size,
	__SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
	of "int" rather than "long."

2002-03-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_va_arg): Manipulate the type
	size as a tree.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
	("tstqi" split): Avoid using memory for tstqi on address register.
	(splits): Remove constraints.
	("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
	("cmpdf", "cmpsf"): Remove since not used.
	("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
	(peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
	("neghi2"): Tighten constraints.
	("one_cmplsi2"): Optimize and simplify split.
	* config/m68hc11/larith.asm (__negsi2): Likewise for library.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
	and split of AND operation to clear the upper bits.
	("*logicalsi3_zextqi"): Likewise.
	("*logicallhi3_zexthi_ashift8"): Likewise.
	("*logicalsi3_silshr16"): Likewise.
	("logicalsi3_silshl16"): Likewise.
	("anddi3", "iordi3", "xordi3" splits): Remove constraints.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
	(m68hc11_indirect_p): New function.
	(m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
	(m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
	TARGET_M6812.
	(asm_print_register): Likewise.
	* config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
	(m68hc11_indirect_p): Declare.
	* config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
	(TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
	(TARGET_SWITCHES): New option -mrelax.
	* config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
	destination.
	("iorsi3", "xorsi3"): Likewise.
	("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
	("*andhi3_mem"): New to handle destination in memory with bclr
	and a scratch register.
	("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
	("*andhi3_const"): New when operand2 is constant.
	("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
	("*andhi3_gen"): Cleanup of the old "andhi3".
	("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
	("xorqi3"): Update constraints.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
	for reg_equiv_memory_loc when the operand is a register that does
	not get a hard register (stack location).
	(tst_operand): After reload, accept all memory operand.
	(symbolic_memory_operand): Fix detection of symbolic references.
	* config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
	accept symbols and any constant.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
	note on the insn that sets the soft frame register.
	(must_parenthesize): ix and iy are also reserved names.
	(print_operand_address): One more place where parenthesis are required
	to avoid confusion with register names.
	(m68hc11_gen_movhi): Allow push of stack pointer.
	(m68hc11_check_z_replacement): Fix handling of parallel with a
	clobber.
	(m68hc11_z_replacement): Must update the REG_INC notes to tell what
	the replacement register is.
	* config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
	and D8_REGS classes.
	(MODES_TIEABLE_P): All modes are tieable except QImode.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
	(___subdi3): Likewise.
	(__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
	(__map_data_section): Optimize 68hc11 case.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
	than a shift to avoid adding a register with itself.
	(m68hc11_memory_move_cost): Take into account NO_REGS.
	(m68hc11_register_move_cost): Update and use memory move cost
	for soft registers.
	(m68hc11_address_cost): Make cost of valid offset not 0 so that
	it gives more opportunities to cse to optimize.
	* config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
	* config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.

2002-03-15  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (statement_code_p): Handle CLEANUP_STMT.
	* c-common.def (CLEANUP_STMT): New tree node.
	* c-common.h (CLEANUP_DECL): New macro.
	(CLEANUP_EXPR): Likewise.
	* c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
	* expr.c (expand_expr): Tidy.
	* tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
	* tree-inline.c (initialize_inlined_parameters): Clean up
	new local variables.

2002-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/4128
	* config/sparc/sparc.c (gen_v9_scc): Move early clobber test
	before movrXX only, use reg_overlap_mentioned_p.
	Only special case NE if just one insn can be generated.

2002-03-15  Jason Merrill  <jason@redhat.com>

	* varasm.c (assemble_variable): Call resolve_unique_section before
	checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
	of error_mark_node.

2002-03-15  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5170
	* arm.md (split pattern for thumb shiftable immediates): Add comment
	explaining non-obvious test.

2002-03-15  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5712
	* arm.md (movaddr, movaddr_insn): Delete.

2002-03-15  Jason Merrill  <jason@redhat.com>

	* toplev.c (wrapup_global_declarations): Clarify variable handling.
	-fkeep-static-consts doesn't apply to comdats.

2002-03-14  Richard Henderson  <rth@redhat.com>

	* c-decl.c: Include c-pragma.h.
	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
	(finish_function): Tidy.
	* c-pragma.c: Include c-common.h.
	(pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
	(handle_pragma_weak): Use them.
	(init_pragma): Register pending_weaks.
	* c-pragma.h (maybe_apply_pragma_weak): Declare.
	* print-tree.c (print_node): Print DECL_WEAK.
	* varasm.c (mark_weak_decls): Remove.
	(remove_from_pending_weak_list): Remove.
	(add_weak): Remove.
	(asm_emit_uninitialised): Call globalize_decl for weak commons.
	(weak_decls): Make a tree_list.
	(declare_weak): Cons weak_decls directly.
	(globalize_decl): Remove weak_decls elements directly.
	(weak_finish): Simplify weak_decls walk.  Don't weaken unused
	symbols.  Don't pretend to handle aliases.
	(init_varasm_once): Update weak_decls registry.
	* Makefile.in: Update dependencies.

2002-03-14  Richard Henderson  <rth@redhat.com>

	PR target/5312
	* config/ia64/ia64.c: Include tm_p.h last.
	(gen_nop_type): Remove duplicate definition.
	(cycle_end_fill_slots): Set sched_data for second L slot.
	(maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
	(nop_cycles_until): Fix typos.

2002-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5891
	* unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.

2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>

	* config/ia64/unwind-ia64.c: Handle copy_state and label_state
	  descriptors correctly.

2002-03-14  Michael Meissner  <meissner@redhat.com>

	* params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
	100, allowing MAX_UNROLLED_INSNS to be overridden.

	* params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
	--param.

	* unroll.c (params.h): Include.
	(MAX_UNROLLED_INSNS): Delete, now in params.h.

	* doc/invoke.texi (--param max-unroll-insns): Document.

	* Makefile.in (unroll.o): Add $(PARAMS_H) dependency.

2002-03-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md: Fix warnings about constraints in peepholes and splits.

2002-03-14  Zack Weinberg  <zack@codesourcery.com>

	* cpphash.h (struct lexer_state): Remove line_extension member.
	* cpplib.c (dequote_string, do_linemarker): New functions.
	(linemarker_dir): New data object.
	(DIRECTIVE_TABLE): No longer need to interpret #line in
	preprocessed source.  Delete obsolete comment about return
	values of handlers.
	(end_directive, directive_diagnostics, _cpp_handle_directive):
	Don't muck with line_extension.
	(directive_diagnostics): No need to issue warnings for
	linemarkers here.
	(_cpp_handle_directive): Issue warnings for linemarkers here,
	when appropriate.  Dispatch linemarkers to do_linemarker, not
	do_line.
	(do_line): Code to handle linemarkers split out to do_linemarker.
	Convert escape sequences in filename argument, both places.

	* cppmacro.c (quote_string): Rename cpp_quote_string and
	export.  All callers changed.
	* cpplib.h (cpp_quote_string): Prototype.
	* cppmain.c (print_line): Call cpp_quote_string on to_file
	before printing it.

	* doc/cpp.texi: Document that escapes are now interpreted in
	#line and in linemarkers, and that non-printing characters are
	converted to octal escapes when linemarkers are generated.

Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (try_split): Use delete_insns.
	* recog.c (split_all_insns): Fix terminating condition.

2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
	    Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	PR target/5828
	* arm.c (arm_output_epilogue): Fix floating-point register save
	adjustment when using a frame pointer.

2002-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
	* config/mips/mips.c (compute_frame_size): Retrofit them here.
	(save_restore_insns, mips_expand_epilogue): And here.
	(build_mips16_call_stub): And here.
	(mips_function_value): Use the new macros to decide whether a single
	or complex float can be returned in floating-point registers.  Return
	a parallel rtx in the complex case.

Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
	call after liveness analysis.

	* recog.c (split_insn): Use delete_insn_and_edges.

	* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
	instructions to have branch prediction notes.
	* ia64reorg.c (ia64_reorg): Do not rebuild CFG.

2002-03-14  Geoffrey Keating  <geoffk@redhat.com>

	* configure.in: Don't pass -Wno-long-long to a ADA compiler
	that doesn't support it.
	* configure: Regenerate.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/5626
	* config/sparc/sparc.md (normal_branch, inverted_branch,
	normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
	inverted_fp_branch): Adjust calls to output_cbranch.
	Set length attribute.
	(normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
	output_v9branch.  Set length attribute.
	* config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
	predicates.
	(noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
	(output_cbranch): Likewise.  Handle far branches.
	(output_v9branch): Handle far branches.
	* config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
	Adjust prototypes.
	* config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
	noov_compare64_op predicates.

2002-03-13  Jason Merrill  <jason@redhat.com>

	* gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
	into the function and constify it.
	* gthr-dce.h, gthr-solaris.h: Likewise.

2002-03-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
	* config/rs6000/rs6000.c (rs6000_va_arg): Use
	std_expand_builtin_va_arg if not ABI_V4.

2002-03-13  Jason Merrill  <jason@redhat.com>

	* varasm.c (globalize_decl): New fn.
	(assemble_start_function): Use it.
	(asm_emit_uninitialized): Use it.
	(assemble_alias): Use it.
	(assemble_variable): Use it.

2002-03-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue): Revert
	2002-03-12 internal visibility change.
	(cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
	visibility into SYMBOL_REF_FLAG.

2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
	VOIDmode operand.  Add compile-time optimization for constant results.

2002-03-12  Jason Merrill  <jason@redhat.com>

	* c-typeck.c (convert_for_assignment): Don't allow conversions
	between pointers and references.  Only allow lvalues to convert to
	reference.

2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
	before prologue, to avoid scheduling problems.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
	(ELIMINABLE_REGS): Add sfp->sp.
	(INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5892
	* config/ia64/ia64.c (rotate_one_bundle): Update current packet.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	* loop.c (basic_induction_var): Don't call convert_modes if mode
	classes are different.

2002-03-12  Richard Henderson  <rth@redhat.com>

	PR optimization/5901
	* function.c (reposition_prologue_and_epilogue_notes): Position
	the markers after/before the last/first insn not deleted.

2002-03-12  Richard Henderson  <rth@redhat.com>

	PR optimization/5878
	* config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
	config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
	(PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.

	* config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
	config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
	PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.

	* config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
	* config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
	(arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
	also.  Don't set it if not flag_pic.
	* config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
	to be INVALID_REGNUM when not used.

2002-03-13  Aldy Hernandez  <aldyh@redhat.com>

	* expmed.c (store_bit_field): Reset alias set for memory.
	(extract_bit_field): Same.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (c_tree_code_type, c_tree_code_length,
	c_tree_code_name, add_c_tree_codes): Delete.
	* c-common.h (add_c_tree_codes): Delete.
	* c-lang.c (tree_code_type, tree_code_length, tree_code_name):
	Define.
	* c-objc-common.c (c_objc_common_init): Don't call
	add_c_tree_codes, instead set lang_unsafe_for_reeval.
	* objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
	objc_tree_code_name, add_objc_tree_codes): Delete.
	(objc_init): Don't call add_objc_tree_codes.
	* objc/objc-lang.c (tree_code_type, tree_code_length,
	tree_code_name): Define.
	* toplev.c (lang_independent_init): Don't set
	tree_code_length[IDENTIFIER_NODE].
	* tree.c (tree_code_type, tree_code_length, tree_code_name):
	Delete definitions, moved to language front-ends.
	* tree.def (IDENTIFIER_NODE): Hardwire the length.
	* tree.h (tree_code_type, tree_code_length, tree_code_name):
	Const-ify.
	(tree_code_length): Change type to unsigned char.

2002-03-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
	internal visibility change.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_block_move): Use
	validize_mem() instead of change_address to avoid clobbering
	memory attributes.

2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.h (position_after_whitespace): Remove.

2002-03-12  Jakub Jelinek  <jakub@redhat.com>

	* c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
	(lex_string): Use unsigned char pointers.

2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
	is not a valid memory_operand.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
	* config/xtensa/lib1funcs.asm: Fix copyright to include
	special case for libgcc files.
	(__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
	(__divsi3): Likewise.
	(__umodsi3): Likewise.
	(__modsi3): Likewise.
	* config/xtensa/lib2funcs.S: Fix copyright to include
	special case for libgcc files.

2002-03-12  Tom Rix  <trix@redhat.com>

	* collect2.c (resolve_lib_name): Move outside of
	OBJECT_FORMAT_COFF ifdef.
	(ignore_library): Same.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
	to function_section before writing out the constant pool.

2002-03-12  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
	zero_constant.
	* config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.

2002-03-12  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (addsi3): Optimize sign extension.
	(adddi3): Likewise.
	(movdf): Likewise.
	(movdi): Likewise.
	(cmpsi splitter): Likewise.
	(modsi3): Fail if <= 0.
	* config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
	redundant test when HOST_BITS_PER_WIDE_INT != 32.
	(reg_or_sub_cint64_operand): Likewise.
	(num_insns_constant_wide): Optimize sign extension.
	(rs6000_legitimize_address): Likewise.

2002-03-12  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
	* config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.

2002-03-12  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
	address calculation.

2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (reload_insi, reload_indi): Change mode of
	scratch register to DImode / TImode.
	config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
	register used does not overlap the target.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (debug.o): Depend on debug.h.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
	sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
	dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
	* dwarf2out.c (dwarf2_debug_hooks): Likewise.
	* dwarfout.c (dwarf_debug_hooks): Likewise.
	* integrate.c (output_inline_function): Likewise.
	* objc/objc-act.c (synth_module_prologue): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* toplev.c (debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
	dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
	m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
	ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
	v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
	* defaults.h (POINTER_SIZE): Define.
	* doc/tm.texi (POINTER_SIZE): Document default.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mn10200.h (PTRDIFF_TYPE): Change it to a signed type.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Call purge_all_dead_edges
	if rebuild_label_notes_after_reload.

2002-03-12  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue):  Do not
	emit pic register load if "internal" visibility.
	(cris_print_operand): Avoid traditional-warning for 0xffffffff.
	(cris_expand_builtin_va_arg): Do all computations on trees.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* rtlanal.c: Include recog.h.
	(keep_with_call_p): Fix thinko.
	* Makefile.in (rtlanal.o): Update dependencies.

2002-03-11  Chris Meyer  <cmeyer@gatan.com>

	* genflags.c (gen_insn): Use IS_VSPACE.
	* genoutput.c (output_insn_data): Likewise.
	(process_template): Likewise.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Don't compile if we've had errors.

2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
	Update documentation.
	* doc/gcc.texi: Include cppopts.texi and cppenv.texi.
	* doc/cpp.texi: Include cppopts.texi and cppenv.texi.

2002-03-11  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in: Give texi2pod its input file as a command line
	argument, not on stdin.

2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
	    Daniel Berlin  <dan@dberlin.org>

	C++ alias analysis improvement.
	* alias.c (record_component_aliases): Record aliases for base
	classes too.

2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.

2002-03-11  Douglas B Rupp  <rupp@gnat.com>

	* toplev.c (vms_fopen): Remove, not needed.

	* vmsdbgout.c (lookup_filename): Adjust creation date for GMT.

	* config/alpha/xm-vms.h (__UNIX_FWRITE): Define.

	* config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
	for FP, already done later.

	* toplev.c (debug_args): Add entry for VMS_DEBUG.
	* vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.

2002-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
	(MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
	LARGEST_EXPONENT_IS_NORMAL for the given mode.
	(MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
	* real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
	(ediv, emul, eldexp, esqrt): Likewise.
	(etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
	(e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
	(saturate): New function.
	(toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
	(make_nan): Use a saturation value instead of a NaN if
	LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
	* fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
	inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
	zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
	(unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
	(_fpmul_parts, _fpdiv_parts): Only round to nearest if
	!ROUND_TOWARDS_ZERO.
	* doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
	(ROUND_TOWARDS_ZERO): Document.

2002-03-11  Andreas Jaeger  <aj@suse.de>

	* cfg.c (dump_flow_info): Remove unused variable.

2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
	computations on trees.

2002-03-10  Richard Henderson  <rth@redhat.com>

	PR 5693:
	* reload.c (copy_replacements_1): New.
	(copy_replacements): Use it to recurse through the rtx.

2002-03-10  Richard Henderson  <rth@redhat.com>

	* loop.c (strength_reduce): Compute number of iterations as
	unsigned HOST_WIDE_INT.

2002-03-10  Richard Henderson  <rth@redhat.com>

	* sched-rgn.c (add_branch_dependences): Don't allow insns that throw
	to move away from the end of the block.

2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/5899
	* cppinit.c (init_dependency_output): Don't ignore -dM etc.

2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mbchar.c (JIS_state_table, JIS_action_table): Const-ify.

	* attribs.c (decl_attributes): Fix signed/unsigned warning.

2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c: Improve comments.
	(mmix_target_asm_function_prologue): Drop variable
	empty_stack_frame.  Don't allocate unused slot above fp.
	(mmix_target_asm_function_epilogue): Mirror prologue changes.
	* config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
	brace in first column.
	(enum reg_class): Ditto.
	(FIRST_PARM_OFFSET): Now 0.
	(USER_LABEL_PREFIX): Remove #if 0:d definition.

2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* combine.c (make_extraction): Fix error in last change.

2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c4x.c (c4x_fp_reglist): Const-ify.
	* cris.c (cris_print_operand): Likewise.
	* i386.c (ix86_va_arg): Likewise.
	* ia64/unwind-ia64.c (unw_decode_table): Likewise.
	* m32r.c (m32r_hard_regno_mode_ok): Likewise.
	* m32r.h (m32r_hard_regno_mode_ok): Likewise.
	* mcore.c (regno_reg_class, mcore_unique_section): Likewise.
	* mcore.h (regno_reg_class): Likewise.
	* mips.c (gen_int_relational): Likewise.
	* ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
	* ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
	* pdp11.c (move_costs): Likewise.
	* pj.h (INITIALIZE_TRAMPOLINE): Likewise.
	* s390.c (s390_branch_condition_mnemonic, regclass_map):
	Likewise.
	* s390.h (regclass_map): Likewise.
	* sh.c (shift_amounts): Likewise.
	* sh.md (rotlsi3): Likewise.

2002-03-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
	(ne0+5): Use new clobber to generate proper shift pattern.
	Patch by Michael Matz <matz@kde.org>.

2002-03-09  Andreas Schwab  <schwab@suse.de>

	* gcc.c (validate_all_switches): Also handle `%W{...}'.

2002-03-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.

2002-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/5877
	* expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
	even for non-representable constants.

Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
	* function.c (fixup_var_refs): Add MAY_SHARE parameter.
	(fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
	(fixup_var_refs_insn, fixup_var_refs_1): Likewise.
	(pop_function_context): Compute MAY_SHARE parameter for
	fixup_var_refs.
	(fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
	(gen_mem_addressof): Call fixup_var_refs with new parm.

	* combine.c (make_extraction): Don't make extension of CONST_INT.

2002-03-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (function_arg_pass_by_reference): Force to 0
	in o32 and o64 ABIs.
	* config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
	but getting fixed-size structs passed in registers regardless of
	padding in o32 and o64 ABIs.

	* config/mips/mips.c (mips_va_arg): Apply big-endianness address
	offset before loading address of argument passed by transparent
	reference.

2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.

2002-03-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (mips_expand_prologue): Set regno of vararg
	marker such that registers after it are saved.

2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* sparc.c (arith_4096_operand): Fix error in last change.

2002-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
	defaults for MEABI.

2002-03-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
	vectors.

2002-03-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.

Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
	removed; fix return value.
	* combine.c (combine_instructions): Dirtify blocks where we failed to
	update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
	* toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.

2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcse.c (insert_insn_end_bb): Fix typo in last change.

Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>

	* recog.c (peephole2_optimize): Re-distribute EH edges.

2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>

	* expr.c (expand_expr): Use unsave lang hook.
	* langhooks-def.h (LANG_HOOKS_UNSAVE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook unsave.
	* tree.c (lang_unsave, lang_unsave_expr_now): Remove.
	(unsave_expr_1): Remove unused lang_unsave_expr_now.
	(unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
	(unsave_expr_now): Remove.
	* tree.h (unsave_expr_now, lang_unsave,
	lang_unsave_expr_now): Remove.
	(lhd_unsave): New.

2002-03-08  Andreas Jaeger  <aj@suse.de>

	* flow.c (propagate_block_delete_insn): Remove unused variable.

2002-03-08  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
	insn length for memory load/store.

2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (--with-libiconv-prefix): Document.

2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>

	* doc/sourcebuild.texi: Fix typo.

2002-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/3711
	* builtins.c (std_expand_builtin_va_arg): Do all computations on
	trees.

Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* rtl.c (copy_most_rtx): Move from here ...
	* emit-rtl.c (copy_most_rtx): ... to here.

2002-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
	SUBTARGET_CPP_SIZE_SPEC.
	* config/mips/abi64.h (LONG_MAX_SPEC): Delete.

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.

2002-03-07  Matt Hiller  <hiller@redhat.com>

	* gensupport.c (first_dir_md_include): Renamed from include;
	change all references.
	(last_dir_md_include): Renamed from last_include; change all
	references.
	(init_md_reader): Unconditionally initialize base_dir whether or
	not filename is a relative path.

2002-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/fp-bit.c (_unord_f2): Compile it in even if
	US_SOFTWARE_GOFAST is enabled.

	* config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
	NULL_RTX.  Set all HFmode operations as NULL_RTX.
	* optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
	NULL_RTX, try reversing the comparison and the operands.

2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
	genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
	and MATCH_OP_DUP.

Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>

	* reload1.c (reload_cse_delete_noop_set): Purge dead edges.

Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (fixup_abnormal_edges): Declare.
	* reload1.c (fixup_abnormal_edges): New function.
	* reg-stack.c (convert_regs): Use it.

	* gcse.c (insert_insn_end_bb): Handle trapping insns.

	* gcse.c (hash_scan_set): Refuse instructions with EH edges.

2002-03-07  Richard Sandiford  <rsandifo@redhat.com>

	* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
	(MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
	* flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
	(HONOR_SIGN_DEPENDENT_ROUNDING): New.
	* builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
	* c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
	unless x and y could be infinite.
	(expand_unordered_cmp): New, mostly split from expand_tree_builtin.
	Check that the common type of both arguments is a real, even for
	targets without unordered comparisons.  Allow an integer argument
	to be compared against a real.
	(expand_tree_builtin): Use expand_unordered_cmp.
	* combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
	* cse.c (fold_rtx): Likewise.  Fix indentation.
	* fold-const.c (fold_real_zero_addition_p): New.
	(fold): Use it, and the new HONOR_... macros.
	* ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
	* jump.c (reversed_comparison_code_parts): After searching for
	the true comparison mode, use HONOR_NANS to decide whether it
	can be safely reversed.
	(reverse_condition_maybe_unordered): Remove IEEE check.
	* simplify-rtx.c (simplify_binary_operation): Use the new macros
	to decide which simplifications are valid.  Allow the following
	simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
	and (a - -b) to (a + b).
	(simplify_relational_operation): Use HONOR_NANS.
	* doc/tm.texi: Document the MODE_HAS_... macros.

2002-03-07  Richard Earnshaw  <rearnsha@arm.com>

	* combine.c (simplify_comparison): If simplifying a logical shift
	right and compare with constant, force the comparison to unsigned.

2002-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Add documentation for -mabi=no-altivec.

	* config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
	-mabi=no-altivec
	(alt_reg_names): Remove % for vrsave.

2002-03-06  Richard Henderson  <rth@redhat.com>

	PR optimization/5844
	* genemit.c (gen_exp): New argument used.  Invoke copy_rtx
	if used indicates we've already emitted one copy of an operand.
	(gen_insn, gen_expand, output_add_clobbers): Supply a null used.
	(gen_split): Supply a non-null used.

2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (reload): Unshare all rtl after reload is done.

	* simplify-rtx.c (simplify_plus_minus): Do not abort,
	but simply fail if the expression is too complex to simplify.
	(simplify_gen_binary): Handle simplify_plus_minus failures.

Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Do jump threading before SSA path;
	consistently call delete_trivially_dead_insns after CSE and GCSE;
	fix DFI_life dumping; do jump threading after liveness; do crossjumping
	after liveness2; update comment in last crossjumping.
	* cfgcleanup.c (try_crossjump_to_edge): Dirtify block.

Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)

	* ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
	after completing fast dead code elimination.

	* m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
	COMPARE operator.

2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* version.c:  Fix misplaced leading blanks on first line.

Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.

Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (mentions_nonequal_regs): New function.
	(thread_jump): Use it.
	* toplev.c (rest_of_compilation): Run jump threading after
	liveness.

2002-03-06  Jakub Jelinek  <jakub@redhat.com>

	* ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
	patch.

Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (estimate_bb_frequencies): Do not reload the
	frequencies from notes.

Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
	* rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare

	* basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
	delete_noop_moves): Return indeger.
	* flow.c (ndead): New variable.
	(propagate_block_delete_insn): Use delete_insn_and_edges; remove
	BB argument; update callers.
	(propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
	(life_analysis): Do not call purge_all_dead_edges.
	(update_life_info): Return number of deleted insns; print statistics.
	(update_life_info_in_dirty_blocks): likewise.
	(delete_noop_moves): Use delete_insn_and_edges; print statistics;
	return number of insns deleted.

	* cse.c: Include timevar.h
	(delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
	iterate until stabilizes; print statistics; return number of killed
	insns.
	* Makefile.in: (cse.o): Add timevar.h dependency
	* rtl.h (delete_trivially_dead_insns): New.
	* timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
	* toplev.c (rest_of_compilation): Update callers.

	* cfgcleanup.c (try_optimize_cfg): Kill blocks.
	(try_optimize_cfg): Do not update liveness.
	(cleanup-cfg): Loop until try_optimize_cfg and dead code
	removal stabilizes; use delete_trivially_dead_insns.

	* cfgrtl.c (verify_flow_info): Sanity check outgoing edges.

2002-03-05  Zack Weinberg  <zack@codesourcery.com>

	* cppmain.c (setup_callbacks): Disable #pragma and #ident
	callbacks when processing assembly language.

2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (ASM_FILE_END): Define.
	* som.h (ASM_FILE_END): Delete.

	* pa.c (function_arg): Don't pass floats in general registers in
	indirect calls if TARGET_ELF32.

2002-03-05  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (floatsidf2): Conditionalize on hard-float.

2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
	-r command line.  Don't hide any symbols if not building
	shared libgcc.

Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfg.c (dump_flow_info): Warn about profile mismatches.
	* cfgrtl.c (verify_flow_info): Few aditional sanity checks.
	(purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
	wide volatile memory by parts.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
	is NULL.

2002-03-05  Richard Henderson  <rth@redhat.com>

	* rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.

2002-03-04  Geoffrey Keating  <geoffk@redhat.com>

	* toplev.c (documented_lang_options): Document more
	language-specific options.
	* doc/invoke.texi (Warning Options): Correct documentation for
	-Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
	* c-decl.c (c_decode_option): Use a table to handle warning options.

2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
	parameter to mmix_encode_section_info.
	(LINK_SPEC): Don't defsym __.MMIX.start..text if linking
	relocatably.  Always produce ELF, not mmo if linking relocatably.
	* config/mmix/mmix.c (mmix_encode_section_info): If new parameter
	first is nonzero, don't add symbol prefix.
	* config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
	prototype accordingly.

2002-03-04  Krister Walfridsson  <cato@df.lth.se>

	* config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.

2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure.in: Increase required makeinfo version to 4.1.
	* configure: Regenerate.

2002-03-04  Geoffrey Keating  <geoffk@redhat.com>

	* .cvsignore: Remove *.info* and genrtl*; these files are generated
	elsewhere now.

2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/include/texinfo.tex: Update to version 2002-03-01.06.
	* doc/invoke.texi: Fix @math uses.

Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
	removal

2002-03-03  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
	(powerpc-*-eabisimaltivec*): Same.

	* config/rs6000/t-ppcendian: New.

2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
	nonimmediate_src_operand and nonimmediate_lsrc_operand to
	disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_decl_compilation): Revert last two changes.

2002-03-03  Zack Weinberg  <zack@codesourcery.com>

	* emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
	print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
	tree.c, config/m68k/m68k.c:
	Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
	REAL_ARITHMETIC blocks unconditional.  Delete some further
	#ifdef blocks predicated on REAL_ARITHMETIC.
	* flags.h, toplev.c: Delete remaining references to
	flag_pretend_float.

	* doc/invoke.texi: Remove documentation of -fpretend-float.
	* doc/tm.texi: Describe the various REAL_* macros as provided by
	real.h, not by the target configuration files.

	* config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
	config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
	config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
	config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
	config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
	config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
	config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
	config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
	config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
	config/xtensa/xtensa.h:
	Do not define, undefine, or mention in comments any of
	REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
	REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
	REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
	REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
	REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
	REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
	REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
	REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
	REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.

2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
	convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
	i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
	m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
	pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
	stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
	Delete.
	* defaults.h (BITS_PER_WORD): Define.
	* doc/tm.texi (BITS_PER_WORD): Document default value.

	* 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
	m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
	stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.

2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
	lieu of explicit sizeof/sizeof.
	* i386.c (override_options, ix86_init_mmx_sse_builtins,
	ix86_expand_builtin): Likewise.
	* mips.c (mips_add_gc_roots): Likewise.
	* mmix.c (mmix_output_condition): Likewise.
	* rs6000.c (rs6000_override_options, altivec_expand_builtin,
	altivec_init_builtins): Likewise.
	* sparc.c (mark_ultrasparc_pipeline_state): Likewise.
	* cppexp.c (Nsuff, parse_number): Likewise.
	* cppinit.c (builtin_array_end): Likewise.
	* gcc.c (n_default_compilers, process_command): Likewise.
	* genpreds.c (output_predicate_decls): Likewise.
	* ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
	* lcm.c (N_ENTITIES): Likewise.
	* stor-layout.c (set_sizetype): Likewise.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
	for types or labels.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* c-decl.c (start_decl): Initialized variables are not common.

2002-03-02  Per Bothner  <per@bothner.com>

	* gcc.c (option_map):  Suport new --bootclasspath option.
	--CLASSPATH is now just an alias for --classpath.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
	load if "internal" visibility.
	* doc/extend.texi: Document visibility meanings.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
	to functions as well.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* attribs.c (handle_alias_attribute): Don't call assemble_alias.
	(handle_visibility_attribute): Don't call assemble_visibility.
	* toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
	without asmspec.  Invoke assemble_alias when needed.
	* varasm.c (maybe_assemble_visibility): New.
	(assemble_start_function, assemble_variable, assemble_alias): Use it.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
	invoke ENCODE_SECTION_INFO with first call flag.

	* config/darwin-protos.h, config/darwin.c, config/darwin.h,
	config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
	config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
	config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
	config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
	config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
	config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
	config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
	config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
	config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
	config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
	config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
	config/m68hc11/m68hc11.h, config/m88k/m88k.h,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
	config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
	config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
	config/sh/sh.h, config/sparc/sparc.h,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
	config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
	FIRST argument.  As needed, examine it and do nothing.

	* config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
	config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
	config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.

	* config/arm/t-pe (pe.o): Add dependencies.

2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
	cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
	i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
	mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
	pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
	vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
	* defaults.h (BITS_PER_UNIT): Define.
	* doc/tm.texi (BITS_PER_UNIT): Document default value.

2002-03-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Add a prototype for
	compute_a_shift_length.
	* config/h8300/h8300.c (h8300_asm_insn_count): New.
	(compute_a_shift_length): Likewise.
	(h8300_adjust_insn_length): Do not adjust insn length of shift
	insns.
	* config/h8300/h8300.md (anonymous shift patterns): Use
	compute_a_shift_length.

Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.c (sparc_initialize_trampoline): Use
	trunc_int_for_mode.

	* emit-rtl.c (offset_address): Call update_temp_slot_address.

2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
	* doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
	* flags.h (flag_zero_initialized_in_bss): Declare.
	* toplev.c (flag_zero_initialized_in_bss): New flag.
	(lang_independent_options): Add flag_zero_initialized_in_bss.
	* tree.c (initializer_zerop): New function.
	* tree.h (initializer_zerop): Declare.
	* varasm.c (assemble_variable): If we can emit bss, put zero
	initializers in the bss section.

2002-03-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
	like more than one symbol per .weak directive.

2002-03-01  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
	adjust argument_pointer by pretend_args_size.
	(ia64_va_start): Adjust va_start address by -pretend_args_size.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.

Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Delete dead jumptables before
	loop.
	* flow.c (delete_dead_jumptables): Make global.
	* rtl.h (delete_dead_jumptables): Declare.

2002-03-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
	* config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
	* config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Fix formatting.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Support 16-bit
	constant addresses.
	* config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* expmed.c (store_bit_field): Prevent generation of CONCATs;
	pun complex values as integers; use gen_lowpart instead of
	gen_rtx_SUBREG.
	(extract_bit_field): Likewise.

2002-03-01  Alan Modra  <amodra@bigpond.net.au>
	    David Edelsohn  <edelsohn@gnu.org>

	* doc/tm.texi (ASM_WEAKEN_DECL): Document.
	(ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
	(SUPPORTS_WEAK): Likewise.
	* output.h (add_weak): Add tree param.
	* varasm.c (add_weak): Likewise.  Save decl.
	(struct weak_syms): Add decl field.
	(mark_weak_decls): New function.
	(init_varasm_once): ggc_add_root mark_weak_decls.
	(assemble_start_function): Use ASM_WEAKEN_DECL.
	(assemble_variable): Likewise.
	(assemble_alias): Likewise.
	(declare_weak): Pass decl to add_weak.
	(weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
	(remove_from_pending_weak_list): Declare and define for
	ASM_WEAKEN_DECL.
	* c-pragma.c (handle_pragma_weak): Adjust add_weak call.
	* c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
	* defaults.h (SUPPORTS_WEAK): Likewise.
	* config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
	.weak for code sym.  Do emit .size for descriptor sym.
	(ASM_DECLARE_FUNCTION_SIZE): Define.
	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
	(ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
	.lglobl unless TARGET_XCOFF.  Formatting fixes.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
	.weak for code sym.
	(HANDLE_PRAGMA_WEAK): Remove.
	(ASM_WEAKEN_LABEL): Remove.
	* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.

2002-03-01  Jason Merrill  <jason@redhat.com>

	* tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
	(TARGET_EXPR_CLEANUP): New macro.

2002-02-28  Steve Ellcey  <sje@cup.hp.com>

	* doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
	to take ptr_extend into account as third type of extension.
	(SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
	fields used by SUBREG_PROMOTED_UNSIGNED_P.
	* rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
	(SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
	* calls.c (precompute_arguments): Use new macro.
	(expand_call): Ditto.
	* combine.c (nonzero_bits): Ditto.
	(record_promoted_value): Ditto.
	* expr.c (store_expr): Ditto.
	(expand_expr): Ditto.
	* function.c (assign_parms): Ditto.

2002-02-28  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (init_gcc_specs): Get -static and -static-libgcc to
	override -shared and -shared-libgcc.

2002-02-28  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
	of "ultrasparc".
	* config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
	to be broken.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
	4 cycle latency from MM producers.
	(ia64_internal_sched_reorder): Likewise with pipeline flush.

2002-02-28  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Don't use GNU make extension.

2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-parse.in (STATIC): New terminal.
	(scspec): New non-terminal.  Update productions accordingly.
	(program): Remove bogus ifc / end ifc.
	(array_declarator): Simplify production using STATIC.

2002-02-28  Jim Meyering  <meyering@lucent.com>

	* cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
	\a still means TARGET_BELL.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* haifa-sched.c (sched_emit_insn): New.
	(schedule_block): Use last_scheduled_insn to track last insn.
	* sched-int.h (sched_emit_insn): Prototype.
	* config/ia64/ia64.c (last_issued): Remove.
	(ia64_variable_issue): Don't set it.
	(nop_cycles_until): Use sched_emit_insn.

2002-02-28  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
	extended constants.

2002-02-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.

2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
	which may overwrite the high byte of the frame pointer.

2002-02-28  Bo Thorsen  <bo@suse.de>

	* config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
	(STARTFILE_SPEC): Add 64 bit files.
	(ENDFILE_SPEC): Likewise.

2002-02-28  Jason Merrill  <jason@redhat.com>

	* c-decl.c (finish_function): Only warn about missing return
	statement with -Wreturn-type.

Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (purge_dead_edges): Fix handling of EH edges.

	* i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
	PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM

Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (BB_REACHABLE): Renumber.
	(BB_DIRTY, BB_NEW): New flags.
	(clear_bb_flags): Declare.
	(update_life_info_in_dirty_blocks): Declare.
	* cfg.c (clear_bb_flags): New function.
	* cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
	* emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
	reorder_insns, emit_insn_after): Mark block as dirty.
	* flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
	(update_life_info_in_dirty_blocks): New function.
	* recog.c (apply_change_group): Dirtify block.

	* cse.c (cse_insn): Reorder emitting of jump insn to keep
	cfg consistent.
	* gcse.c (delete_null_pointer_checks): Likewise.

	* toplev.c (dump_file_index): Move cse2 after bp,
	add DFI_null
	(dump_file_info): Similary.
	(rest_of_compilation): Avoid most of CFG rebuilds;
	do first if converision after null pointer checks, do cse2
	after branch prediction; avoid full liveness rebuild after
	initializing subregs.
	* invoke.texi (-d options): Document -du, renumber.

	* cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
	(notice_new_block): Do not set BB_UPDATE_LIFE.
	(try_forward_edges, merge_blocks_move_predecessor_nojumps,
	 merge_blocks_move_successor_nojumps, merge_blocks,
	 try_crossjump_to_edge): Likewise.
	(try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
	* cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
	* ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
	(merge_of_block): Do not use life_data_ok.
	(find_if_case_1): Do not use SET_UPDATE_LIFE.
	(if_convert): Use BB_DIRTY mechanizm to update life.
	* lcm.c (optimize_mode_switching): Update
	update_life_info_in_dirty_blocks

2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (integrate.o): Update.
	* c-decl.c (copy_lang_decl): Rename.
	* c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
	* integrate.c: Include langhooks.h.
	(copy_decl_for_inlining): Update to use langhook.
	* langhooks-def.h (lhd_do_nothing_t,
	LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_do_nothing_t): New.
	* langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
	* tree.h (copy_lang_decl): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.

2002-02-27  Andrew MacLeod  <amacleod@redhat.com>

	* dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
	POST_DEC, and POST_MODIFY.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* c-typeck.c (digest_init): Remove unused parameter; all
	callers changed.

2002-02-27  Geoffrey Keating  <geoffk@redhat.com>

	* expmed.c (expand_shift): Correctly test for low part of a
	subreg.

2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_chunkify_pool): Do not confuse
	insn UIDs with insn addresses.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
	c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
	cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
	builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
	gcc.c, toplev.c: Delete code implementing -traditional mode.

	* doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
	doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
	Document removal of -traditional mode for compilation, and
	remove documentation only relevant to that mode.

	* config/nextstep.h, config/ptx4.h, config/svr4.h,
	config/convex/convex.h, config/d30v/d30v.h,
	config/i386/dgux.h, config/i386/osf1elf.h,
	config/i386/osfelf.h, config/i386/osfrose.h,
	config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
	config/m68k/hp310.h, config/m88k/dgux.h,
	config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
	config/m88k/m88k.h, config/m88k/openbsd.h,
	config/mips/abi64.h, config/mips/osfrose.h,
	config/mips/svr4-5.h, config/mips/svr4-t.h,
	config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
	config/stormy16/stormy16.h: Remove all references to
	-traditional from target specs.  Delete all mention of the
	no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
	delete a couple of commented-out definitions of
	DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
	to -traditional.

	* system.h: Poison TRADITIONAL_RETURN_FLOAT.
	* doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* mklibgcc.in: Don't use \n in a line subject to
	interpretation by echo.

2002-02-27  Graham Stott  <grahams@redhat.com>

	* config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
	Constify NAME.

	* loop.c (prescan_loop): Handle PARALLEL.

	* unroll.c (loop_iterations): Return 0 if the add_val for
	a BIV is REG.

	* final.c (output_operand_lossage): Constify PFX_STR.

	* df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.

Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
	* x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.

Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.

2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (_cpp_lex_token): Handle directives in macro
	arguments.
	* cpplib.c (_cpp_handle_directive): Save and restore state
	if parsing macro args when entering a directive.
	* cppmacro.c (collect_args): No need to handle directives
	in macro arguments.
	(enter_macro_context, replace_args): Use the original macro
	definition in case it was redefined whilst collecting arguments.
doc:
	* cpp.texi: Update.

2002-02-26  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
	* config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
	* config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
	method on AIX.
	* config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
	(movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
	(load_toc_v4_PIC_2): Same.

2002-02-26  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (ashldi_se): Re-enable.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_encode_section_info): Examine
	MODULE_LOCAL_P; improve commentary.

2002-02-26  Zack Weinberg  <zack@codesourcery.com>

	* doc/cpp.texi: Clarify documentation of relationship between
	#line and #include.

2002-02-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype for
	compute_logical_op_length.  Add the prototype for
	compute_logical_op_cc.
	* config/h8300/h8300.c (compute_logical_op_length): Figure out
	code from operands.
	(compute_logical_op_cc): New.
	* config/h8300/h8300.md: Combine all the logical op patterns
	in HImode and SImode.  Use compute_logical_op_cc.

2002-02-26  Kelley Cook  <kelleycook@comcast.net>

	* config/i386/i386.c (print_operand): Don't append ATT-style
	length suffixs to x87 opcodes when in Intel mode.

2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>

	* emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
	(init_emit_once): Update calls.
	* fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
	(init_syntax_once): Prototype.

2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (LIB_SPEC): Update definition.
	* pa32-linux.h (LINK_COMMAND_SPEC): Delete.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
	if we emitted a stop bit.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (libgcc_visibility): Substitute.
	* configure: Rebuilt.
	* mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
	defined symbols .hidden.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	* attribs.c (c_common_attribute_table): Add visibility.
	(handle_visibility_attribute): New function.
	* varasm.c (assemble_visibility): New function.
	* output.h (assemble_visibility): Add prototype.
	* tree.h (MODULE_LOCAL_P): Define.
	* crtstuff.c (__dso_handle): Use visibility attribute.
	* config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
	for MODULE_LOCAL_P symbols too.
	* config/ia64/ia64.c (ia64_encode_section_info): Handle
	MODULE_LOCAL_P symbols the same way as local symbols.
	Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
	into .sdata/.sbss by the user.
	* doc/extend.texi (Function Attributes): Document visibility
	attribute.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/5770
	* dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
	STRING_CST initializer spanning the whole variable without
	embedded zeros.
	If expand_expr returned MEM, don't use it.

2002-02-26  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
	generate a die for the lexical block.

2002-02-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Add a prototype for
	compute_logical_op_length.
	* config/h8300/h8300.c (compute_logical_op_length): New.
	* config/h8300/h8300.md (anonymous logical patterns): Use
	compute_logical_op_length for length.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (modified_type_die): Do not call type_main_variant
	for vectors.
	(gen_type_die): Same.

	* attribs.c (handle_vector_size_attribute): Set debug information.

2002-02-26  Daniel Egger  <degger@fhm.edu>

	* config/rs6000/rs6000.md: Swap define_insn attributes to
	fix incorrect generation of merge high instructions instead
	of merge low.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* c-typeck.c (really_start_incremental_init): Use
	bitsize_zero_node for vectors.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
	("*set_vrsave_internal"): Same.

2002-02-25  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
	in EXPAND_SUM case.  Use host_integerp/tree_low_cst.

2002-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/5755
	* config/i386/i386.c (ix86_return_pops_args): Only pop
	fake structure return argument if it was passed on the stack.

2002-02-25  Jason Merrill  <jason@redhat.com>

	* attribs.c (decl_attributes): Also re-layout PARM_DECL and
	RESULT_DECL.

2002-02-25  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
	link with shared_name only.
	* doc/invoke.texi (Link Options): Document new behavior.

2002-02-25  Aldy Hernandez  <aldyh@redhat.com>

	* c-typeck.c (push_init_level): Handle vectors.

2002-02-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sparc.c (const64_high_operand): Zero-extend
	operands of SPARC_SETHI_P.
	(input_operand): Likewise.
	(sparc_emit_set_const32): Likewise.
	* config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
	(SPARC_SETHI32_P): Zero-extend operand from 32 bits.
	(CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
	* config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
	(movdi_insn_sp64_vis): Likewise.
	(movdi split, movdf split): Use SETHI32.
	* doc/md.texi: Document SPARC constraints L, M and N.

2002-02-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("get_vrsave_internal"): New.
	("*set_vrsave_internal"): use mfspr for Darwin.

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Call
	gen_get_vrsave_internal.

Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.

2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Get signedness or
	otherwise of wide character constants correct.
	* cppexp.c (lex): Get signedness of wide charconsts correct.

Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* optabs.c (widen_operand): Only call convert_modes for
	promoted SUBREG if signedness matches.
	* config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (glue_header_name): Use local buffer to build up
	header name.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.

2002-02-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
	H8/300[HS] separately.
	* config/h8300/h8300.md: Remove the early clobber constraint
	from bit field patterns.

2002-02-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (mulqihi3): Tighten predicates to
	register_operand.
	(mulhisi3): Likewise.
	(umulqisi3): Likewise.
	(umulhisi3): Likewise.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (output_deps): Correct test for stdout output.
	(init_dependency_output): Cure warning.

Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_expr): When converting expression to promoted
	equivalent type, allow using SUBREG_REG of TARGET as the target
	of the expansion of EXP.
	* loop.c (basic_induction_var, case SUBREG): Always look inside.
	* config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
	(alpha_emit_set_const): Handle SImode when can't make new pseudos.
	(alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
	* config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.

2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/contribute.texi, doc/extend.texi, doc/install.texi,
	doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
	doc/standards.texi, doc/tm.texi: Remove trailing whitespace.

2002-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5747
	* loop.c (scan_loop): Update reg info if move_movables created new
	pseudos.

2002-02-23  David Edelsohn  <edelsohn@gnu.org>

	* gcc.c (init_gcc_spec): Revert last change.

2002-02-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
	gpc_reg_operand constraint.

2002-02-23  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
	Simplify comparison of `low'.
	(add_operand): Fix formatting.
	(non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
	(mask_operand): Disallow mask to wrap in 64-bit mode.
	(rs6000_stack_info): Remove redundant test setting push_p.
	(output_toc): Fix formatting.
	* config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
	cc_reg_not_cr0_operand constraint.
	(booldi3, boolcdi3 splitters): Same.

2002-02-23  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Add extra level of parentheses on casts.

2002-02-22  David Edelsohn  <edelsohn@gnu.org>

	* gcc.c (init_gcc_spec): Do not link with static libgcc.a if
	gcc invoked with -shared-libgcc.

2002-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5748
	* stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
	decl if any of elements was TREE_USED.

2002-02-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sol2.h: Don't include sys/mman.h.
	* config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
	(arith_4096_operand): Don't throw high bits away.
	(const64_operand): Take sign extension of CONST_INTs into account.
	(const64_high_operand, sparc_emit_set_const32): Likewise.
	(GEN_HIGHINT64): Likewise.
	(sparc_emit_set_const64_quick1): Likewise.
	(const64_is_2insns): Likewise.
	(print_operand): Use trunc_int_for_mode for sign extension.
	* config/sparc/sparc.h (SMALL_INT32): Likewise.
	* config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
	chars.  Assume CONST_INT is already properly sign-extended.
	(movdi split): Sign-extend each SImode part.
	(andsi3 split): Don't mask high bits off, so that result
	remains properly sign-extend.
	(iorsi3 split): Likewise.
	(xorsi3 split): Likewise.

2002-02-22  Richard Sandiford  <rsandifo@redhat.com>

	* fold-const.c (fold): Fix typo in comments.

2002-02-21  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (langhooks.o): Update dependencies.

2002-02-21  Diego Novillo  <dnovillo@redhat.com>

	* langhooks.c: Include flags.h.

2002-02-21  Aldy Hernandez  <aldyh@redhat.com>

	* testsuite/gcc.dg/attr-alwaysinline.c: New.

	* c-common.c (c_common_post_options): Set inline trees by
	default.

	* doc/extend.texi (Function Attributes): Document always_inline
	attribute.
	Update documentation about inlining when not optimizing.

	* cp/decl.c (duplicate_decls): Merge always_inline attribute.

	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.

	* c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.
	(c_disregard_inline_limits): Disregard if always_inline set.

	* langhooks.c (lhd_tree_inlining_disregard_inline_limits):
	Disregard if always_inline set.
	(lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.

	* attribs.c (handle_always_inline_attribute): New.
	(c_common_attribute_table): Add always_inline.

	* config/rs6000/altivec.h: Add prototypes for builtins
	requiring the always_inline attribute.

2002-02-21  Eric Christopher  <echristo@redhat.com>

	* expmed.c (store_bit_field): Try to simplify the subreg
	before generating a new one when when the mode size of
	value is less than maxmode.

2002-02-21  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (offset_address): Use simplify_gen_binary rather
	than gen_rtx_PLUS to form the sum.
	* explow.c (force_reg): Rearrange to not allocate new pseudo
	when force_operand returns a register.
	* expr.c (expand_assignment): Allow offset_rtx expansion to
	return a sum.  Do not force addresses into registers.
	(expand_expr): Likewise.
	* simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
	to canonicalize arithmetic that didn't simpify.
	(simplify_plus_minus): New argument force; update
	all callers.  Don't split CONST unless we can do something with it,
	and wouldn't lose the constness of the operands.

	* config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
	that we generated earlier.

2002-02-21  Tom Tromey  <tromey@redhat.com>

	* dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	(output_line_info): Use constant `1', with a long explanatory
	comment.
	* system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.

Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* jump.c (redirect_jump): If old label has no UID, don't try to
	delete it.

Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
	If input is constant, do shifts at compile time.

2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Fix some more overfull hboxes.

2002-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/4994
	* config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
	register moves.

2002-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/4574
	* expr.h (expand_and): Add mode argument.
	* expmed.c (expand_and): Add mode argument.
	(expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
	* expr.c (store_field, expand_expr, do_store_flag): Likewise.
	* except.c (expand_builtin_extract_return_addr): Likewise.
	* config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
	* config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
	* config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
	Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
	* config/c4x/c4x.md: Use GEN_INT (x) instead of
	gen_rtx (CONST_INT, VOIDmode, x).

2002-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/4697:
	* stmt.c (warn_if_unused_value): Move side effects test once more.

2002-02-20  Torbjorn Granlund  <tege@swox.com>

	* config/avr/avr.md: Add more patterns for mized-mode add and subtract
	(addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).

Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>

	* rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
	SUBREG or ZERO_EXTEND.

Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (current_function_anonymous_args): Remove.
	(SETUP_INCOMING_VARARGS): Don't set it - just check that one
	of current_function_varargs and current_function_stdarg is set.
	* sh.c (sh_expand_prologue): Check current_function_varargs /
	current_function_stdarg / TARGET_SH5 instead of
	current_function_anonymous_args.

	* sh64.h (TARGET_VERSION): Define.

2002-02-20  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
	VRSAVE_REGNO on TARGET_ALTIVEC.

2002-02-20  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
	bits of SImode const_int.
	(includes_rshift_p): Likewise.
	(print_operand): Call mask_operand and mask64_operand with correct
	mode.
	(rs6000_output_function_epilogue): Pad traceback table to word.
	* config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
	(EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
	mask64_operand with correct mode.
	(FUNCTION_ARG_REGNO_P): Correct parentheses.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/4461
	* varasm.c (get_pool_constant_mark): New.
	* rtl.h (get_pool_constant_mark): Add prototype.
	* dwarf2out.c (mem_loc_descriptor): A pool constant cannot
	be represented if it has not been output.

2002-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (do_SUBST): Sanity check substitutions of
	CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
	(subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
	CONST_INT into its operand.
	(known_cond): Likewise, for ZERO_EXTEND.
	* simplify-rtx.c (simplify_unary_operation): Fix condition to
	allow for simplification of wide modes.  Reject CONST_INTs in
	ZERO_EXTEND when their actual mode is not given.

2002-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* c-decl.c (pushdecl): If no global declaration is found for an
	extern declaration in block scope, try a limbo one.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/4401
	* c-common.c (pointer_int_sum): Moved from...
	* c-typeck.c (pointer_int_sum): ...here.
	* c-common.h (pointer_int_sum): Add prototype.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5713
	* c-decl.c (duplicate_decls): Return 0 if issued error about
	redeclaration.

2002-02-20  Roger Sayle  <roger@eyesopen.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c/4389
	* tree.c (host_integerp): Ensure that the constant integer is
	representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
	when pos is zero or nonzero respectively.  Clarify comment.
	* c-format.c (check_format_info_recurse): Fix host_integerp
	usage; the pos argument should be zero when assigning to a
	signed HOST_WIDE_INT.

2002-02-20  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_vector_move): Use the mode
	of the operand, rather than assuming TImode.
	(ix86_expand_binop_builtin): Cope with commutative patterns
	using nonimmediate_operand for both operands.
	(ix86_expand_timode_binop_builtin): Likewise.
	(ix86_expand_store_builtin): Validate operand 1.
	(ix86_expand_unop1_builtin): Likewise.

2002-02-20  Philip Blundell  <philb@gnu.org>

	PR 5705
	* config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.

2002-02-20  Richard Henderson  <rth@redhat.com>

	PR c/5615
	* expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.

2002-02-20  Tom Tromey  <tromey@redhat.com>

	* config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
	unconditionally.

Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>

	* config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
	  for (const_int 0) in X not just INTVAL.

2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Avoid or reduce overfull hboxes.

2002-02-20  Diego Novillo  <dnovillo@redhat.com>

	* expmed.c (store_bit_field): Do not store bit fields using SUBREG
	operations if the field does not start at a mode boundary.

2001-02-20	Joel Sherrill <joel@OARcorp.com>

	* config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
	config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
	Also done for -Acpu and -Amachine.

2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (init_dependency_output): Take deps output file
	from -o if none given with -MF.  Suppress normal output.
	* gcc.c (cpp_unique_options): Have -M and -MM imply -E.
	* doc/cpp.texi, doc/invoke.texi: Update.

2002-02-19  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c (output_quoted_string): Write unprintable
	characters with octal escapes.

2002-02-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
	really_call_used[VRSAVE_REGNO] if not Altivec.

2002-02-19  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
	MODE_MASK.
	(constant_pool_expr_1): Fix formatting.
	(rs6000_legitimize_reload_address): Likewise.

Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
	now that we have one.

2002-02-19  Zack Weinberg  <zack@codesourcery.com>

	* tree.h (struct tree_common): Remove aux.  Add unused_0 at
	end of first block of bitfields (which was only seven bits);
	rename dummy to unused_1; remove comment which is no longer true.

2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>

	* doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.

2002-02-19  Philip Blundell  <pb@nexus.co.uk>

	PR 5399
	* config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
	if generating PIC.

	PR 5054
	* config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
	arm_is_longcall_p rather than inspecting call-type cookie
	directly.
	(call_value_insn) [TARGET_THUMB]: Likewise.

2002-02-19  Graham Stott  <grahams@redhat.com>

	* config/i386/i386.c (ix86_expand_builtin): Fix typo.

2002-02-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
	({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
	(FP_SAVE_INLINE): Delete.

	* config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
	* config/rs6000/eabi.asm: Remove ABI save restore routines.
	* config/rs6000/t-ppccomm: Build crtsavres.o.
	* config/rs6000/crtsavres.asm: New file.

2002-02-19  Philip Blundell  <philb@gnu.org>

	* config/arm/arm.c (use_return_insn): Don't reject interrupt
	functions.
	(arm_compute_save_reg_mask): Save LR for interrupt functions too.
	(output_return_instruction): Allow interrupt functions to return with
	ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
	(arm_expand_prologue): Subtract 4 before stacking LR in an
	interrupt function.

2002-02-19  Philip Blundell  <pb@nexus.co.uk>

	* config/arm/arm.c (arm_encode_call_attribute): Operate on any
	decl, not just FUNCTION_DECL.
	(legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
	(arm_assemble_integer): Likewise.
	* config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
	marked local.

2002-02-19  matthew green  <mrg@eterna.com.au>

	* config.gcc (sparc-*-netbsdelf*): Enable target.
	(sparc64-*-netbsd*): New target.
	* config/sparc/netbsd-elf.h: New file.
	* config/sparc/t-netbsd64: New file.

2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>

	* doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.

2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>

	* doc/invoke.texi: explicitly list the style guidelines that
	-Weffc++ checks for.

Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regmove.c (regmove_optimize): Avoid increasing of register pressure.

2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR other/5718
	* gcc.c (cpp_unique_options): Treat -o as indicating object file
	only if not -E.  If -E, pass -o through to the preprocessor.

2002-02-19  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
	register number with an appropriate macro.

2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* doc/rtl.texi (Constants): Close @code tag.

2002-02-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
	("mmx_uavgv4hi3"): Same.
	("pmulhrwv4hi3"): Same.

	* tree-inline.c (walk_tree): Handle vectors.

	* c-common.c (constant_expression_warning): Handle vectors.
	(overflow_warning): Same.

	* sched-deps.c (sched_analyze_2): Handle vectors.

	* rtlanal.c (rtx_unstable_p): Handle vectors.
	(rtx_varies_p): Same.
	(count_occurrences): Same.
	(regs_set_between_p): Same.
	(modified_between_p): Same.
	(modified_in_p): Same.
	(volatile_insn_p): Same.
	(volatile_refs_p): Same.
	(side_effects_p): Same.
	(may_trap_p): Same.
	(inequality_comparisons_p): Same.
	(replace_regs): Same.
	(computed_jump_p_1): Same.

	* rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
	argument.
	(inner_mode_array): New.
	(copy_rtx): Handle vectors.
	(copy_most_rtx): Same.
	(rtx_equal_p): Same.
	(get_mode_alignment): Adjust for vectors.

	* resource.c (mark_referenced_resources): Handle vectors.
	(mark_set_resources): Same.

	* reload1.c (eliminate_regs): Handle vectors.
	(elimination_effects): Same.
	(scan_paradoxical_subregs): Same.

	* reload.c (subst_reg_equivs): Handle vectors.

	* regrename.c (scan_rtx): Handle vectors.

	* regclass.c (reg_scan_mark_refs): Handle vectors.

	* recog.c (find_single_use_1): Handle vectors.

	* local-alloc.c (equiv_init_varies_p): Handle vectors.
	(contains_replace_regs): Same.
	(memref_referenced_p): Same.

	* integrate.c (copy_rtx_and_substitute): Handle vectors.
	(subst_constants): Same.

	* genattrtab.c (attr_copy_rtx): Handle vectors.
	(encode_units_mask): Same.
	(clear_struct_flag): Same.
	(count_sub_rtxs): Same.

	* gcse.c (want_to_gcse_p): Handle vectors.
	(oprs_unchanged_p): Same.
	(hash_expr_1): Same.
	(oprs_not_set_p): Same.
	(expr_killed_p): Same.
	(compute_transp): Same.
	(store_ops_ok): Same.

	* function.c (purge_addressof_1): Do not allow paradoxical subregs
	of vectors.
	(fixup_var_refs_1): Same.
	(instantiate_virtual_regs_1): Same.

	* fold-const.c (operand_equal_p): Handle vectors.
	(fold): Same.
	(rtl_expr_nonnegative_p): Same.

	* flow.c (mark_used_regs): Handle vectors.

	* df.c (df_uses_record): Handle vectors.

	* cselib.c (cselib_subst_to_values): Handle vectors.
	(cselib_mem_conflict_p): Same.
	(hash_rtx): Same.

	* cse.c (canon_reg): Handle vectors.
	(fold_rt): Same.
	(cse_process_notes): Same.
	(count_reg_usage): Same.
	(canon_hash): Same.

	* alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.

	* combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.

	* emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
	(gen_rtx): Handle CONST_VECTOR.
	(gen_const_vector_0): New.
	(copy_rtx_if_shared): CONST_VECTORs can be shared.
	(reset_used_flags): Same.
	(copy_insn_1): Same.
	(initializer_constant_valid_p): Handle VECTOR_CST.

	* doc/c-tree.texi (Expression trees): Document VECTOR_CST.

	* doc/rtl.texi (Constants): Document const_vector.
	(CONST0_RTX): Update for vectors.
	(RTL sharing): Same.

	* print-tree.c (print_node): Add case for VECTOR_CST.

	* tree.h (TREE_VECTOR_CST_ELTS): New.
	(struct tree_vector): New.
	(union tree_node): Add vector node.
	(build_vector): Add prototype.

	* tree.def (VECTOR_CST): New.

	* tree.c (build_vector): New.

	* expmed.c (make_tree): Handle CONST_VECTOR.

	* rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
	(CONST_VECTOR_ELT): New.
	(CONST_VECTOR_NUNITS): New.

	* machmode.h (GET_MODE_INNER): New.
	(DEF_MACHMODE): Accept 8th arg.

	* machmode.def: Add 8th argument for vector inner mode.
	Add inner vector modes for vectors.

	* rtl.def (VEC_CONST): Remove.
	(CONST_VECTOR): New.

	* expr.c (clear_storage): Allow vectors.
	(is_zeros_p): Handle VECTOR_CST.

	* varasm.c (output_constant_pool): Handle vectors.
	(rtx_const): Add veclo and vechi fields.
	(kind): Add RTX_VECTOR.
	(decode_rtx_const): Add case for vector.

	* config/rs6000/rs6000-protos.h: Add zero_constant.

	* config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
	constants.  Force easy vector constants into memory.
	(easy_vector_constant): New.
	(emit_easy_vector_constant): New.
	(rs6000_legitimize_reload_address): Do not generate bad reloads on
	darwin.

	* config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
	instruction does.
	("altivec_lvxl"): Same.
	(altivec_lvebx): Same.
	(altivec_lvehx): Same.
	(altivec_lvewx): Same.
	("*movv4si_const0"): New.
	("*movv4sf_const0"): New.
	("*movv8hi_const0"): New.
	("*movv16qi_const0"): New.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (notice_update_cc): Use
	cc_status.value2.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (divmod patterns): Change the
	constraints for operands[1] to register_operand.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for
	p_operand.
	* config/h8300/h8300.c (p_operand): Remove.
	* config/h8300/h8300.md: Replace p_operand with
	const_int_operand.

2002-02-18 Philip Blundell <pb@nexus.co.uk>

	* config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
	comment.
	(output_return_instruction): Allow use of LDR to unstack
	return addresss even for interrupt handlers or when
	interworking.  If compiling for ARMv5, use interworking-safe
	return instructions by default.  Remove duplicated code and
	lengthy "strcat" sequences.

2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
	(LINK_EH_SPEC): Define.
	* config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.

2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Do not set the
	frame_related flag for call-clobbered registers.

Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
	(construct_container): Fix handling of SSE operands.
	(ix86_expand_builtin): Fix handling of 64bit pointers.
	(mmx_maskmovq_rex): New pattern.

Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regrename.c (kill_set_value): Handle subregs properly.

2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>

	* objc/objc-act.c (handle_impent): Remove leading '*'
	from objc_class_name.

2002-02-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_operand,
	some_small_symbolic_operand_1, split_small_symbolic_operand,
	split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
	Handle small SYMBOL_REFs anywhere, not just inside memories.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha.md (small symbolic operand splitter): Update.

2002-02-17  Roland McGrath  <roland@frob.com>

	* config.gcc (powerpc-*-gnu-gnualtivec*,
	powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
	* config/rs6000/gnu.h: New file.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
	Grok "gnu" in rs6000_abi_name.
	(ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
	CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
	Grok -mcall-gnu analogous to -mcall-linux et al.
	(LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
	LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
	(SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.

2002-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/3444:
	* c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
	shortening.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* config/cris/cris.h: Undefine STARTFILE_SPEC and
	ENDFILE_SPEC before (re)defining them.

2002-02-17  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* doc/tm.texi: Explain why empty strings should not be
	marked for translation.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* final.c (output_operand_lossage): Changed to accept
	printf style arguments. Change calls where necessary.
	* output.h (output_operand_lossage): Change declaration
	accordingly. Update copyright.
	* config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
	config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
	Update copyright date where necessary.

	* config/i386/i386.c (print_operand): Likewise. Remove use of
	sprintf.

	* config/cris/cris.c (cris_operand_lossage): Likewise.
	Rename parameter so that exgettext recognizes it as
	translatable message.
	(LOSE_AND_RETURN): Rename parameter to msgid.

2002-02-17  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
	hard coded register number with an appropriate macro.
	(HARD_REGNO_MODE_OK): Likewise.
	(ARG_POINTER_REGNUM): Likewise.
	(STATIC_CHAIN_REGNUM): Likewise.
	(RETURN_ADDRESS_POINTER_REGNUM): Likewise.
	* config/h8300/h8300.md (define_constants): Define more
	register numbers.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* config/i386/i386.h: Don't mark empty strings for translation.

2002-02-16  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.

2002-02-16  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (merge_include_chains): Check for brack being
	NULL before attempting to merge it with qtail.

2002-02-16  Andrew Cagney  <ac131313@redhat.com>

	* config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
	DBX_DEBUG.

2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/t-pa, pa/t-pro, som.h: Revert last patch.

2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
	* pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
	* som.h (DO_GLOBAL_DTORS_BODY): Delete define.

Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
	now only if !TARGET_FIX.
	(*movsi_nt_vms_fix): New pattern.

2002-02-16  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c: Implement null frame procedure types on VMS.
	(alpha_procedure_type): Replaces alpha_is_stack_procedure.
	(alpha_sa_mask, alpha_sa_size): Reflect above change.
	(alpha_pv_save_size, alpha_expand_prologue): Likewise.
	(alpha_start_function, alpha_expand_epilogue): Likewise.
	(unicosmk_gen_dsib): Likewise.

Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.

2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
	check_and_change_labels, s390_final_chunkify): Delete.
	(s390_split_branches, s390_chunkify_pool): New functions.
	(s390_function_prologue): Call them.

	* config/s390/s390.h (S390_REL_MAX): Delete.
	(S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.

	* config/s390/s390.md (cjump, icjump, jump): Fix length
	attribute calculation.


2002-02-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
	* config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.

2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
	* config/pa/pa-linux.h (LIB_SPEC): Likewise.
	* config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.

2002-02-15  Richard Sandiford  <rsandifo@redhat.com>

	* c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.

2002-02-15  Richard Sandiford  <rsandifo@redhat.com>

	* reload.c (find_dummy_reload): Check that an output register
	is valid for its mode.

2002-02-14  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (known_cond): After replacing the REG of a SUBREG, try
	to simplify it.

	* function.c (assign_parms): Demote promoted argument passed by
	transparent reference.

2001-02-14	Joel Sherrill <joel@OARcorp.com>

	* config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
	-Acpu() and -Amachine() to eliminate warnings.

2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.

2002-02-14  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype for
	const_costs.
	* config/h8300/h8300.c (const_costs): Treat SET as a little
	more expensive operation.
	* config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
	reference to const_costs.

2002-02-14  Hans-Peter Nilsson  <hp@axis.com>

	* config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.

2002-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/5503:
	* c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
	use arguments from newtype.

2002-02-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (override_options): Add check for march/mipsX
	on the same command line. Fix error message in cpu processing.
	Remove architecture and ISA checks.

2002-02-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.

	* config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.

2002-02-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
	alternatives.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
	not push_reload for altivec modes.

2002-02-13  Joel Sherrill  <joel@OARcorp.com>

	* config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
	all RTEMS targets including removal of #includes from config/*/rtems*.h
	file and adding them to tm_file setting. Added xm_defines=POSIX to
	many targets.
	* config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
	* config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
	* config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
	* config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
	* config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
	config/m68k/rtemself.h: Ditto.
	* config.gcc (mips*-*-rtems*), config/mips/rtems.h,
	config/mips/rtems64.h: Ditto.
	* config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
	* config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
	Ditto.
	* config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
	config/sparc/rtemself.h: Ditto.
	* config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
	* config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
	arm-rtems stanza closer to other arm-elf targets and made arm-rtems
	more like arm-elf.
	* config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
	config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
	target made more similar to i386-elf.
	* config/i386/t-rtems-i386: Added soft float support and multilibs.
	* config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
	be similar to config/m68k/t-m68kelf.
	* gthr-rtems.h: Encapsulate with extern "C" for C++.

Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regmove.c (kill_value): Handle subregs.

Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (mul patterns): Allow memory operand to be first;
	add expanders where needed; fix constraints.
	(min?f_nonieee, max?f_nonieee, SSE TImode patterns):
	Allow memory operand to be the first.

	* i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
	operands.

2002-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/5681:
	* expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
	GET_MODE (x).

2002-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5547:
	* config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
	all valid IA-32 address modes involving non-scaled %ebx and
	GOT/GOTOFF as displacement.

2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
	after emitting ltorg insns.

	* config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
	*cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
	*muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
	*abssf2): Fix "op_type" attribute.

2002-02-13  Douglas B Rupp  <rupp@gnat.com>

	* mkconfig.sh: Avoid using a subshell redirect.
	($output.T): Change to $(output)T.
	(ENABLE_NLS): Remove unneeded undef.

	* config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
	* config/alpha/x-vms (libsubdir): Define.

	* config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
	register frame procedures. Optimize retrieving context.

	* config/alpha/t-vms (MULTILIB_OPTIONS): Define.
	(MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
	* config/alpha/vms.h (ASM_FILE_START): Write .arch directive.

Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
	Make same change as for find_base_value.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
	of QImode and SImode.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
	length computation of movsi.
	* config/h8300/h8300.md (movsi_h8300hs): Correct the length.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (subqi3): Tighten the predicate for
	operands[2] to register_operand.

Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (fop_*_comm_*): allow nonimmediate in the first operand.

2002-02-12  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md: Use predicate altivec_register_operand
	for altivec_lvx* and altivec_stvx*.
	("*movv4si_internal"): Add constraint for loading from GPRs.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

	* config/rs6000/rs6000.c (altivec_register_operand): New.

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add
	altivec_register_operand.

2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
	handle SYMBOL_REF.

2002-02-13  Stan Shebs  <shebs@apple.com>

	* c-typeck.c (digest_init): Handle vectors.
	(really_start_incremental_init): Same.
	(pop_init_level): Same.
	(process_init_element): Same.

	* varasm.c (output_constant): Same.

	* expr.c (clear_storage): Same.
	(store_constructor): Same.

2002-02-12  Eric Christopher  <echristo@redhat.com>

	* explow.c (hard_function_value): Add comment explaining
	signed/unsigned comparison.

2002-02-12  Jakub Jelinek  <jakub@redhat.com>

	* jump.c (never_reached_warning): Add finish argument.
	If finish is NULL, stop on CODE_LABEL, otherwise stop before first
	real insn after end.
	* rtl.h (never_reached_warning): Adjust prototype.
	* cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
	* cfgrtl.c (flow_delete_block): Pass b->end as finish to
	never_reached_warning.

2002-02-12  Graham Stott  <grahams@redhat.com>

	* config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.

2002-02-12  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
	logical shifts on H8/300.
	(shift_alg_si): Improve several shifts on H8/300.
	(get_shift_alg): Likewise.

2002-02-12  Graham Stott  <grahams@redhat.com>

	* config/pa/pa.c (compute_movstrsi_length): Fix typos.

Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
	Handle #ifdef POINTERS_EXTEND_UNSIGNED.

2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
	non-CONST_INT through default_assemble_integer.
	<case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
	<case 8>: Abort for CONST_DOUBLE.

2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
	is specified.
	* config/pa/pa-linux.h (LIB_SPEC): Delete.
	* config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.

2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>

	* config/stormy16/stormy16.md (zero_extendqihi2): New.

2002-02-11  Alexandre Oliva  <aoliva@redhat.com>

	* regrename.c (regrename_optimize): Don't accept a
	part-clobbered register if the replaced register is not part
	clobbered.

	* calls.c (store_one_arg): In the non-BLKmode non-partial case,
	take padding into account when computing the argument value.

	* config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.

	* combine.c (try_combine): Apply substitutions in
	CALL_INSN_FUNCTION_USAGE too.

2002-02-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Handle
	__builtin_altivec_abs*.
	(bdesc_abs): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Add
	ALTIVEC_BUILTIN_ABS*.

	* config/rs6000/altivec.h: Use const char for builtins expecting
	literals.
	(vec_abs): New versions for C and C++.
	(vec_abss): Same.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
	using Pmode.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
	constant definition from h8300.md.
	(FRAME_POINTER_REGNUM): Likewise.
	* config/h8300/h8300.md (define_constants): Add FP_REG.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove redundant code.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
	* config/h8300/h8300.c (byte_reg): Make it static.

2002-02-10  Richard Henderson  <rth@redhat.com>

	PR c/5623
	* c-typeck.c (incomplete_type_error): Handle flexible array members.

2002-02-10  Richard Henderson  <rth@redhat.com>

	PR c++/5624
	* tree.c (append_random_chars): Don't abort if main_input_filename
	does not exist.

2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
	(pushhi1): Likewise.

2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
	* pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.

2002-02-09  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
	remove MASK_VIS.
	(ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_logical_op): Use sub.w to clear
	a half of an SImode register on H8/300.

Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movdi_2): Add missing '!'.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.  Remove commented-out
	definitions.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (length): Correct the distance valid
	for the short branch.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (iorhi3): Tighten the predicates.

2002-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
	registers in SImode.
	(HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
	part-clobbered.

	* config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
	patch.

	Contribute sh64-elf.
	2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
	(sh_cannot_modify_jumps_p): New function.
	2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
	(sh_ms_bitfield_layout_p): New function.
	2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
		    Zack Weinberg  <zack@codesourcery.com>
	* config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
	expand_simple_binop instead of expand_binop.
	2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
	use of .quad and .uaquad.
	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
	TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
	2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movdi_const, movdi_const_32bit,
	movdi_const_16bit): Make sure all CONSTs have modes.
	(sym2PIC): Ditto, but by adjusting all callers.
	* config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
	if the prologue calls the SHmedia argument decoder or register
	saver.
	2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
	(TARGET_ASM_ALIGNED_DI_OP): Likewise.
	(sh_expand_epilogue): Don't emit USE of return target register.
	(prepare_move_operands): Legitimize DImode PIC addresses.
	(sh_media_register_for_return): Skip tr0, used to initialize the
	PIC register.
	(sh_expand_prologue): Remove explicit USE of return register.
	(nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
	CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
	* config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
	(OVERRIDE_OPTIONS): Don't disable PIC on SH5.
	(EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
	EXTRA_CONSTRAINT_T.
	(GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
	(MOVI_SHORI_BASE_OPERAND_P): New.
	(NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
	(EXTRA_CONSTRAINT_T): Define in terms of them.
	(OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
	* config/sh/sh.md (movsi_media, movsi_media_nofpu,
	movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
	alternatives supporting TARGET_REGS.
	(UNSPEC_GOTPLT): New constant.
	(movdi split): Move incrementing of LABEL_NUSES...
	(movdi_const, movdi_const_32bit): Here.  Use
	MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
	(movdi_const_16bit): New.
	(call, call_value) [flag_pic]: Use GOTPLT.
	(call_pop, call_value_pop): New expands.
	(call_pop_compact, call_pop_rettramp): New insns.
	(call_value_pop_compact, call_value_pop_rettramp): New insns.
	(sibcall) [flag_pic]: Use GOT.
	(builtint_setjmp_receiver): Remove bogus, unused expand.
	(GOTaddr2picreg): Implement for SHcompact and SHmedia.
	(*pt, *ptb, ptrel): New insns.
	(sym2GOT): Handle DImode GOT.
	(sym2GOTPLT, symGOTPLT2reg): New expands.
	(sym2PIC): New expand.
	(shcompact_return_tramp): Use GOTPLT to return trampoline.
	(shcompact_return_tramp_i): Use return register explicitly.
	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
	disable flag_reorder_blocks.
	2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sibcall_compact): Reorder return, uses and
	clobbers, for clarity.
	(sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
	restoring of r0 in macl as MAYBE_DEAD.
	2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
	* config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
	alter_subreg all over.
	(jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
	reload, instead of emitting instructions that would require
	reloading.
	(casesi_load_media): Add missing modes.
	2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (sh_expand_prologue): Mark the PIC register
	as used if the argument decoder is called.
	2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
	Pmode, then extend it to DImode if necessary.
	2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
	constants in FPU-enabled SHmedia, let them be loaded from memory.
	2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
	Adjust whitespace in assembly output templates.
	2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
	* config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
	mode of if_then_else.
	2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
	sh.h.
	2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
		    Joern Rennecke <amylaar@redhat.com>
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
	(SUBTARGET_CPP_PTR_SPEC): New.
	(SUBTARGET_CPP_SPEC): Remove.
	2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Fix typo in previous checkin.
	2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
	* config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
	2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
		    Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
	what single FP register can hold for SHmedia target.
	2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
		    Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Do not split into SUBREG.
	2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
	and added new functions as specified in SH5 ABI r9.
	2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
	8-byte boundary.
	2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (dump_table): Add const0_rtx in calls of
	gen_consttable_4 and gen_consttable_8.  Emit multiple labels
	and consttable_window_ends.
	2001-06-03  Graham Stott  <grahams@redhat,com>
	* config/sh/sh.md (movdi split): Remove unused variable last_insn.
	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (print_operand): Handle floating-point pair,
	vector and matrix registers.
	* config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
	vector modes into account.
	* config/sh/sh.md (movv2sf): Split move between registers into
	movdf.
	(movv4sf, movv16sf): Introduce insns that get split only after
	reload.
	* config/sh/shmedia.h: Fix Copyright dates.
	* config/sh/ushmedia.h: Likewise.  Move loop counter
	declarations into conditionals that uses them.
	(sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
	loop boundary.
	* config/sh/sshmedia.h: Fix Copyright dates.
	(sh_media_PUTCFG): Fix constraints.
	2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
	ptrmemfunc_vbit_in_delta for SH5.
	2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
	* invoke.texi: Likewise.
	2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
	GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
	GCC_pop_shmedia_regs_nofpu): New global symbols.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
	* config/sh/sh.c (calc_live_regs): Account for PR's saving in
	compact function with nonlocal labels.
	(sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
	(sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
	(initial_elimination_offset): Account for their stack space.
	* config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
	* config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
	movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
	movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
	least one of the operands to be a register.
	(movv2sf): Likewise.  Renamed to movv2sf_i.
	(movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
	prepare_move_operands() before emitting SHmedia insns.
	2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
	Don't save nor initialize r12.  Don't mis-align the stack.
	Pad the code with a nop.
	* config/sh/crti.asm: Don't restore r12.  Don't mis-align the
	stack.
	2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
	* gcc/longlong.h (__umulsidi3, count_leading_zeros)
	[__SHMEDIA__]: Implement.
	2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md: Set latency of `pt' closer to reality.
	(movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
	movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
	Set move, load and store type attributes.
	* config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
	profiling.
	* config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
	* config/sh/sh-protos.h (sh_media_register_for_return): Declare.
	* config/sh/sh.c (sh_media_register_for_return): New function.
	(sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
	branch-target register.
	(sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
	* config/sh/sh.md (return_media_i): Use any call-clobbered
	branch-target register.
	(return_media): If r18 wasn't copied in the prologue, copy it
	here.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
	Clear class FP0_REGS.
	* config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
	from elf.h.
	2001-03-08  DJ Delorie  <dj@redhat.com>
	* config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
	2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sibcall_compact): Set fp_mode to single.
	2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
	2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
	return value correctly for call_cookie.
	2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crt1.asm (start): Modified so as to call
	___setup_argv_and_call_main.
	2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
	SHmedia mode.
	2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
	(STRIP_NAME_ENCODING): Use it.
	(ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
	2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
	prepare_scc_operands().
	* config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
	(DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
	2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
	2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
	* config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
	used in shcompact_incoming_args.
	* config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
	change.
	* config/sh/crt1.asm (start) [SH5]: Switch to single-precision
	mode.
	* config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
	Adjust accordingly.
	* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
	Simplify.  Adjust.  Add sanity check.
	* config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
	FPU_SINGLE_BIT.
	* config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
	TARGET_SHCOMPACT.
	(udivsi3, divsi3): Use them.
	(force_mode_for_call): New insn.
	(call, call_value, sibcall_value): Emit it before SHcompact
	calls.
	2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (call, call_value, sibcall): Make sure the
	call cookie is non-NULL before taking its value.
	2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
	* config.gcc (sh64): Set target_requires_64bit_host_wide_int.
	2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (shcompact_incoming_args): Set argument memory
	block.
	* config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
	temporary for stack adjusts.  Use MACL and MACH to pass
	arguments to shcompact_incoming_args.
	* config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
	clobber r1.
	* config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
	(nested_trampoline): Load static chain address into r1.
	* config/sh/sh.md (movdi_media splits): Fix sign-extension.
	2001-01-07  Alexandre Oliva  <aoliva@redhat.com
	* config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
	fp_arith_reg_operand().
	2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (casesi): Sign-extend the first two operands,
	and use signed compares for them.
	* config/sh/sh.c (dump_table): Don't emit 8-byte constants after
	4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
	ones properly aligned.
	(find_barrier): Account for extra alignment needed for 8-byte wide
	constants.
	(machine_dependent_reorg): Require a label for the second 4-byte
	constant after an 8-byte one.
	* config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
	change.
	2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
	last_float when switching float modes.
	* config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
	auto-increment for general-purpose registers.
	* config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
	result.
	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
	for stack adjust.
	* config/sh/sh.c (sh_builtin_saveregs): Support using all
	registers for varargs.
	2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
	* config/sh/sh.h (CALL_COOKIE_STACKSEQ,
	CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
	(CALL_COOKIE_INT_REG_SHIFT): Adjust.
	(FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
	call_cookie accordingly.
	(FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
	(SHCOMPACT_BYREF): Likewise.
	(SHCOMPACT_FORCE_ON_STACK): New macro.
	* config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
	(sh_builtin_saveregs): Likewise.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Use new shift values.  Support
	sequences of consecutive and non-consecutive pushes/pops.
	* config/sh/sh.md (return): Don't explicitly use PR_REG.
	2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
	* config/sh/sh.h (TEXT_SECTION): Define.
	* config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
	2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
	* config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
	return values on FPU-enabled SHmedia.
	(FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
	FPU-enabled SHmedia.
	(INIT_CUMULATIVE_ARGS): Set up return trampoline only if
	value is returned in a non-FP reg and is not returned by
	reference.
	* config/sh/sh.md (shcompact_return_tramp_i): Change type to
	jump_ind.
	2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
	(FUNCTION_ARG_CALLEE_COPIES): Require argument to be
	quad-aligned to be passed by callee-copy reference.
	2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
	* config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
	2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
	copying low-numbered FP regs to r7 and r8.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
	FP regs to general-purpose regs only if the copy was passed on the
	stack.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
	copying FP reg to r9.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
	copy FP regs to general-purpose regs only in outgoing calls.
	* config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
	change from	2000-10-30.  Adjust for 64-bit (or 32-bit)
	HOST_WIDE_INT.
	* config/sh/sh.h (struct sh_args): Document all fields.
	(FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
	passed partially on the stack should not consider making
	sibcalls.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
	stack_regs only for incoming calls.  When passing FP args,
	make sure there are FP regs available before modifying
	call_cookie.
	(SHCOMPACT_BYREF): Pass double args in general-purpose
	registers by reference.
	2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
	attempt to generate sibcalls if the caller got any arguments
	by reference.
	* config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
	* config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
	to 8-byte boundaries.
	* config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
	* config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
	* config/sh/sh.c (sh_expand_prologue): Preserve args that will be
	stored in the stack.
	* config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
	for the offsets to have the ISA bit set.
	(shcompact_call_trampoline): Document.  Swap r0 and r1, to match
	invocation.  Use beq instead of bgt to mark end of sequence of
	loads.
	(shcompact_incoming_args): Fix store of r2.  Use beq instead of
	bgt to mark end of sequence of stores.
	* config/sh/sh.c (arith_operand): Don't check whether
	CONST_OK_FOR_J for now.
	* config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
	instead of long for conversion.
	2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (print_operand_address): Convert INTVAL to int
	before passing it to fprintf.
	2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
	Call set_fpscr before reading/writing SR.
	* config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
	Call set_fpscr.
	* config/sh/lib1funcs.asm: Add `.align 2' directives before
	SHmedia code.
	(FMOVD_WORKS): Define on SH5 with FPU.
	(set_fpscr): Define on SH5.  Remove separate _fpscr_values
	setting.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
	_fpscr_values.
	2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
	* config/sh/lib1funcs.asm (ct_main_table): Align contents to even
	address.
	(ia_main_table): Ditto.
	2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
	* config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
	the definitions from sh.h.
	* config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
	* config/sh/elf.h (PTRDIFF_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
	2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
	Increment LABEL_NUSES.

	* config/sh/sh.h (SIZE_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
	defined.
	* config/sh/elf.h (SIZE_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Load switch table addresses using
	datalabel.
	* config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
	(NO_BUILTIN_SIZE_TYPE): Define.
	(SIZE_TYPE): Don't define.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
	* config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
	definition of __SH5__=32 for -m5-compact-nofpu.
	* config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
	ADDR_DIFF_VEC.
	2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
	2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
	(FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
	(INSN_LENGTH_ALIGNMENT): Likewise.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (call, call_value, sibcall): Simplify
	copying of non-branch-target register.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* glimits.h (__LONG_MAX__): Revert	2000-12-13's patch.
	* config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
	floating-point values as structs.
	(FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
	(SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
	general-purpose register.
	(SH5_PROTOTYPED_FLOAT_ARG): New macro.
	2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
	* config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
	* config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
	(ENCODE_SECTION_INFO): Enclose variables and constants in
	DATALABEL unspecs.
	(SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
	(STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
	(ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
	* config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
	only for LABEL_REFs.  For SYMBOL_REFs, prepend
	SH_DATALABEL_ENCODING to the symbol name.
	* config/sh/sh.md (indirect_jump): Use SUBREG instead of
	convert_mode().
	2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
	UNSPEC_DATALABEL.
	* config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
	* config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
	(DATALABEL_REF_P): Don't require CONST.
	(ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
	REL label.
	2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
	right.
	2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movsi_media, call, call_value, sibcall):
	Use shallow_copy_rtx and PUT_MODE to change the mode of
	SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
	* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
	on SHmedia using GENERAL_REGs.
	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): Fix reversion of conditions.
	2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (zero_extendhidi2): Use logical shift right.
	* config/sh/sh.c (output_far_jump): Save r13 in macl.
	2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
	2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
	(GCC_nested_trampoline): Likewise.
	* config/sh/sh-protos.h (gen_datalabel_ref): Declare.
	* config/sh/sh.c (gen_datalabel_ref): Define.
	* config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
	(INITIALIZE_TRAMPOLINE): Likewise.
	(TRAMPOLINE_ADJUST_ADDRESS): Define.
	(DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
	(EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
	(OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
	* config/sh/sh.md (UNSPEC_DATALABEL): New constant.
	(ic_invalidate): Adjust for SH5.
	(ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
	_nested_trampoline.
	2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
	(MOVE_MAX_PIECES): Set to 8 on SHmedia too.
	2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
	* config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
	2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (target_reg_operand): Match only target-branch
	registers and pseudos that aren't virtual registers.
	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Copy operands that don't match target_reg_operand to pseudos.
	(call_media, call_value_media, sibcall_media): Use
	target_reg_operand instead of target_operand.
	2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
	* glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
	* config/sh/sh.c (target_reg_operand): Match hardware registers
	other than branch-target registers.
	* config/sh/sh.md (zero_extendqidi2): Input operand is %1.
	* config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
	(fpscr_values) [SH5 == 32]: Define.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Handle function addresses coming in SUBREGs.
	2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_return_trampoline): Use datalabel where appropriate.
	2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
	general-purpose register to copy one branch-target register to
	another.
	2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (target_operand): Accept LABEL_REFs and
	SYMBOL_REFs with VOIDmode.
	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): New insns.
	2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
	(INIT_CUMULATIVE_ARGS): Likewise.
	2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
	* machmode.def (V16SFmode): New mode.
	* c-common.c (type_for_mode): Support V2SF and V16SF.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (tree_index): Likewise.
	* calls.c (emit_call_1): Take args_so_far.  Adjust all
	callers.  Introduce CALL_POPS_ARGS.
	* tm.texi (CALL_POPS_ARGS): Document.
	* config/sh/crt1.asm: Implement in SHmedia mode.
	* config/sh/crti.asm, config/sh/crtn.asm: Likewise
	* config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
	(DBX_REGISTER_NUMBER): Renumber registers for SH5.
	* config/sh/lib1funcs.asm: Disable functions unused in SH5.
	Implement divsi and udivsi in SHmedia mode.  Introduce
	SHcompact trampolines.
	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
	only in SHmedia64.
	(regno_reg_class): Rewrite.
	(fp_reg_names): Remove.
	(sh_register_names, sh_additional_register_names): New.
	(print_operand): Added `u'.  Support SUBREGs in addresses.
	Add parentheses around shifted CONSTs.
	(output_file_start): Output .mode and .abi directives.
	(shiftcosts, addsubcosts, multcosts): Adjust.
	(output_stack_adjust): Compute alignment.  Sanity-check SIZE.
	(push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
	(calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
	bytes, not registers.  Take into account the need for the
	SHcompact incoming args trampoline.  Adjust all callers.
	(sh_expand_prologue): Take stack_regs into account.  Call
	incoming args trampoline.  Keep stack aligned as per SH5 ABI.
	(sh_expand_epilogue): Take stack_regs into accoutn.  Keep
	stack aligned as per SH5 ABI.
	(sh_builtin_saveregs): Support SH5 ABI.
	(sh_build_va_list, sh_va_start): Likewise.
	(initial_elimination_offset): Take alignment into account.
	Compute location of PR according to the SH5 stack frame.
	(arith_reg_operand): Reject branch-target registers.
	(shmedia_6bit_operand): New.
	(logical_operand): Use CONST_OK_FOR_P on SHmedia.
	(target_reg_operand): Match DImode only.  Accept SUBREGs.
	(target_operand): New.
	* config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
	(CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
	SIBCALL_REGS for SHmedia.
	(TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
	(TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
	(TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
	(TARGET_SWITCHES): New SH5 flags.
	(OVERRIDE_OPTIONS): Set SH5-specific options.  Use
	VALID_REGISTER_P to disable unsupported registers.
	(LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
	(POINTER_SIZE, PARM_BOUNDARY): Adjust.
	(FUNCTION_ARG_PADDING): Define.
	(FASTEST_ALIGNMENT): Adjust.
	(SH_REGISTER_NAMES_INITIALIZER): New.
	(sh_register_names): Declare.
	(DEBUG_REGISTER_NAMES): Define.
	(REGISTER_NAMES): Define based on sh_register_names.
	(SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
	(sh_additional_register_names): Declare.
	(LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
	(FIRST_TARGET_REG, LAST_TARGET_REG): Define.
	(TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
	(REGISTER_NATURAL_MODE): Define.
	(FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
	(HARD_REGNO_CALL_PART_CLOBBERED): Define.
	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
	(VECTOR_MODE_SUPPORTED_P): Define.
	(REG_CLASS_CONTENTS): Adjust.
	(SMALL_REGISTER_CLASSES): Adjust.
	(REG_ALLOC_ORDER): Adjust.
	(INDEX_REG_CLASS): Adjust.
	(CONST_OK_FOR_O, CONST_OK_FOR_P): New.
	(CONST_OK_FOR_LETTER_P): Adjust.
	(PREFERRED_RELOAD_CLASS): Adjust.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
	(SECONDARY_INPUT_RELOAD_CLASS): Adjust.
	(NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
	(FIRST_FP_PARM_REG): Adjust.
	(CALL_POPS_ARGS): Define.
	(FUNCTION_ARG_REGNO_P): Adjust.
	(struct sh_args): New fields.
	(GET_SH_ARG_CLASS): Adjust.
	(INIT_CUMULATIVE_ARGS): Adjust.
	(INIT_CUMULATIVE_INCOMING_ARGS): Define.
	(FUNCTION_ARG_ADVANCE): Adjust.
	(FUNCTION_ARG): Adjust.
	(FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
	(FUNCTION_ARG_CALLEE_COPIES): Define.
	(SH5_PROTOTYPELESS_FLOAT_ARG): Define.
	(STRICT_ARGUMENT_NAMING): Define.
	(PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
	(FUNCTION_ARG_PARTIAL_NREGS): Adjust.
	(SH5_WOULD_BE_PARTIAL_NREGS): Define.
	(SETUP_INCOMING_VARARGS): Adjust.
	(HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
	(USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
	(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
	(SUBREG_OK_FOR_INDEX_P): Adjust.
	(EXTRA_CONSTRAINT_S): Update.
	(EXTRA_CONSTRAINT_T): New.
	(EXTRA_CONSTRAINT): Adjust.
	(GO_IF_LEGITIMATE_INDEX): Adjust.
	(GO_IF_LEGITIMATE_ADDRESS): Adjust.
	(LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
	(MOVE_MAX): Adjust.
	(MAX_MOVE_MAX): Define.
	(Pmode): Adjust.
	(CONST_COSTS): Adjust.
	(REGISTER_MOVE_COST): Adjust.
	(BRANCH_COST): Adjust.
	(TEXT_SECTION_ASM_OP): Adjust.
	(DBX_REGISTER_NUMBER): Adjust.
	(ASM_OUTPUT_DOUBLE_INT): New.
	(UNALIGNED_DOUBLE_INT_ASM_OP): New.
	(PREDICATE_CODES): Adjust.
	(PROMOTE_MODE): Adjust.
	(CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
	* config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
	(MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
	(PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
	(DR0_REG, DR2_REG, DR4_REG): Renumber.
	(TR0_REG, TR1_REG, TR2_REG): New.
	(XD0_REG): Renumber.
	(UNSPEC_COMPACT_ARGS): New.
	(type): Added pt and ptabs.
	(length): Default to 4 on SHmedia.  Default pt length to 12
	and	20 on SHmedia32 and SHmedia64, respectively.
	(pt): New function unit.
	(movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
	Add whitespace between operands of SHmedia instructions.
	(movdicc): Fix.
	(adddi3_media, addsi3_media): Adjust constraints.
	(subsi3) [SHmedia]: Force operand 1 into a register.
	(udivsi3_i1_media, udivsi3_i4_media): New.
	(udivsi3): Support SHmedia.
	(divsi3_i1_media, divsi3_i4_media): New.
	(divsi3): Support SHmedia.
	(anddi3, iordi3, xordi3): Adjust constraints.
	(zero_extendhidi2, zero_extendqidi2): New.
	(extendsidi2, extendhidi2, extendqidi2): New.
	(push, pop, push_e, push_fpul, push_4): Disable on SH5.
	(pop_e, pop_fpul, pop_4): Likewise.
	(movsi_media): Support FP and BT registers.
	(movsi_media_nofpu): New.  Adjust splits to DImode.
	(lduw, ldub): Renamed to zero_extend* above.
	(movqi_media): Fix typo.
	(movdi_media): Support FP and BT registers.
	(movdi_media_nofpu): New.  Adjust splits for SHmedia32.
	(movdi_const_32bit): New.
	(shori_media): Require immediate operand.  Use `u' for output.
	(movdf_media, movsf_media): Simplified.
	(movdf_media_nofpu, movsf_media_nofpu): New.
	(movdf, movsf): Adjust
	(movv2sf, movv2sf, movv16sf): New.
	(beq_media, beq_media_i): Adjust constraints.  Don't use
	scratch BT register.
	(bne_media, bne_media_i): Likewise.
	(bgt_media, bgt_media_i): Likewise.
	(bge_media, bge_media_i): Likewise.
	(bgtu_media, bgtu_media_i): Likewise.
	(bgeu_media, bgeu_media_i): Likewise.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
	bunordered): Emit jump insn.  Force operands to registers when
	needed.
	(jump_media, jump): Simplify.
	(call_compact, call_compact_rettramp): New.
	(call_value_compact, call_value_compact_rettramp): New.
	(call_media, call_value_media): Simplify.
	(sibcall_compact, sibcall_media): New.
	(call, call_value): Adjust for SHmedia and SHcompact.
	(sibcall, sibcall_value, untyped_call): Likewise.
	(sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
	(indirect_jump): Adjust for SHmedia.
	(casesi_jump_media): New.
	(nop): Re-enable for SHmedia.
	(call_site): Restrict to SH1.
	(casesi): Adjust for SHmedia.
	(casesi_shift_media, casesi_load_media): New.
	(return): Explicitly use PR register.  Call return trampoline
	on SHcompact.
	(return_i): Explicitly use PR register.
	(shcompact_return_tramp, shcompact_return_tramp_i): New.
	(return_media): Adjust.
	(shcompact_incoming_args): New.
	(epilogue): Adjust.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(movstrsi): Disable on SH5.
	(fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
	(addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
	(subsf3, subsf3_media): Likewise.
	(mulsf3, mulsf3_media, mac_media): Likewise.
	(divsf3, divsf3_media): Likewise.
	(floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
	(floatsisf2, fux_truncsfsi2): Likewise.
	(fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
	(cmpunsf_media, cmpsf): Likewise.
	(negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
	(abssf2, abssf2_media): Likewise.
	(adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
	(muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
	(floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
	(floatsidf2, fix_truncdfsi2): Likewise.
	(fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqdf_media, cmpgtdf_media): Likewise.
	(cmpgedf_media, cmpundf_media, cmpdf): Likewise.
	(negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
	(absdf2, absdf2_media): Likewise.
	(extendsfdf2, extendsfdf2_media): Likewise.
	(truncsfdf2, truncsfdf2_media): Likewise.
	* config/sh/sh64.h: New file.
	* config/sh/t-sh64: New file.
	* config/sh/shmedia.h: New file.
	* config/sh/ushmedia.h: New file.
	* config/sh/sshmedia.h: New file.
	* configure.in: Added sh64-*-elf.
	* configure: Rebuilt.
	2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
	(reg_class_from_letter): Use `b' for TARGET_REGS.
	(print_operand): Support `%M', `%m', `AND' and
	`ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
	(andcosts): Adjust for SHmedia.
	(output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
	Likewise.
	(target_reg_operand): New function.
	* config/sh/sh-protos.h (target_reg_operand): Declare.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
	FP registers on SH5.
	(HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
	on SH4.
	(TARGET_REGISTER_P): New macro.
	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
	(FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
	(EXTRA_CONSTRAINT_S): New macro.
	(EXTRA_CONSTRAINT): Adjust.
	(FLOAT_TYPE_SIZE): Define to 32.
	(Pmode): DImode on SHmedia.
	(CONST_COSTS): Adjust for SHmedia literals.
	(PREDICATE_CODES): Added target_reg_operand.
	(PROMOTE_MODE): Promote signed types to DImode on SHmedia.
	* config/sh/sh.md: Remove all attrs from SHmedia insns.
	(cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
	(cmpdi): Accept SHmedia.
	(movdicc_false, movdicc_true): New insns.
	(movdicc): New expand.
	(adddi3): Accept arith_operand for op2, but FAIL on SH1 if
	no_new_pseudos.
	(addsi3_media): Match `S' constraint.
	(anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
	(negdi2): Expand for SHmedia.
	(one_cmpldi2): New expand.
	(zero_extendsidi2): Change from expand to insn.
	(extendsidi2): Add constraints.
	(movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
	LD/ST address.  Fix SI immediate loading split.
	(movhi_media, movqi_media, lduw, ldub): New insns.
	(movhi, movqi): Accept SHmedia.
	(shori_media, movdi_media): Relax input constraints.  Split
	symbolic constants.
	(movdf_media, movsf_media): New insn.  New split to movdi.
	(movdf, movsf): Match on SHmedia.
	(beq_media, bne_media, bgt_media, bge_media, bgtu_media,
	bgeu_media): New insns and splits.  New insns with `_i' suffix.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
	(bunordered): New expand.
	(jump_compact): Renamed from `jump'.
	(jump_media): New insn.
	(jump): New expand.
	(call_media, call_value_media): New insns.
	(call, call_value): Adjust.
	(indirect_jump_compact): Renamed from `indirect_jump'.
	(indirect_jump_media): New insn.
	(indirect_jump): New expand.
	(untyped_call, return): Accept SHmedia.
	(return_media): New insn.
	(prologue, epilogue, blockage): Accept SHmedia.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(sunordered): New expand.
	(addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
	cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
	(addsf3_media, subsf3_media, mulsf3_media, mac_media,
	divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
	fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
	cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
	abssf2_media): New insns.
	(adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
	cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
	(adddf3_media, subdf3_media, muldf3_media, divdf3_media,
	floatdidf2, floatsidf2_media, fix_truncdfdi2,
	fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
	cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
	absdf2_media): New insns.
	(extendsfdf2, truncdfsf2): Adjust for SHmedia.
	(extendsfdf2_media, truncdfsf2_media): New insns.
	2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
	* config/sh/sh.h (CONST_OK_FOR_J): Document.
	(LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
	* config/sh/sh.md (adddi3): New expand.
	(adddi3_media, adddi3z_media): New insns.
	(adddi3_compact): Renamed from adddi3.
	(addsi3_media): Use add.l r63 to add constant zero.
	(subdi3): New expand.
	(subdi3_media): New insn.
	(subdi3_compact): Renamed from subdi3.
	(mulsidi3): New expand.
	(mulsidi3_media): New insn.
	(mulsidi3_compact): Renamed from mulsidi3.
	(umulsidi3): New expand.
	(umulsidi3_media): New insn.
	(umulsidi3_compact): Renamed from umulsidi3.
	(ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
	(ashlsi3, ashrsi3, lshrsi3): Use them.
	(ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
	(ashldi3, ashrdi3, lshrdi3): Use them.
	(zero_extendsidi2): New expand.
	(extendsidi2): New insn.
	(movsi_media): New insn.  Split to movdi to load constants.
	(movsi): Enable for shmedia.
	(movdi_media): New insn.  Use shori_media to load wide constants.
	(short_media): New insn.
	(movdi): Enable for shmedia.
	2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (CPP_SPEC): Added `m5'.
	(SUBTARGET_CPP_SPEC): Added `!m5'.
	(SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
	(TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
	to all other SH variants.
	(TARGET_DEFAULT): Set to SH1_BIT.
	(OVERRIDE_OPTIONS): Recognize sh5 CPU.
	(BITS_PER_WORD): Raise to 64 on shmedia.
	(MAX_BITS_PER_WORD): Change to 64.
	(MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
	(INT_TYPE_SIZE): Keep as 32.
	(UNITS_PER_WORD): Raise to 8 on shmedia.
	(MIN_UNITS_PER_WORD): Keep as 4.
	(POINTER_SIZE): Raise to 64 on shmedia.
	(CONST_OK_FOR_J): New macro.
	(CONST_OK_FOR_LETTER_P): Use it.
	(processor_type): Add PROCESSOR_SH5.
	* config/sh/sh.md: Conditionalize all expands, insns and
	splits to TARGET_SH1.
	(cpu): Added sh5.
	(addsi3_compact): Renamed from...
	(addsi3): Now an expand.
	(addsi3_media, subsi3_media): New insns.
	(subsi3): Don't negate constants with SHmedia.

	* hooks.c: New file.
	* hooks.h: New file.
	* Makefile.in (HOOKS_H): New.
	(TARGET_DEF_H): Added $(HOOKS_H).
	(OBJS): Added hooks.o.
	(cfgcleanup.o, bb-reorder.o): Added target.h.
	(hooks.o): Added dependencies.
	* target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
	(TARGET_INITIALIZER): this.
	* doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
	* target.h (struct gcc_target): Added cannot_modify_jumps_p.
	* bb-reorder.c: Include target.h.
	(reorder_basic_blocks): Skip if cannot modify jumps.
	* cfgcleanup.c: Include target.h.
	(try_optimize_cfg): Skip merge blocking if cannot modify jumps.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (casesi_internal, casesi_internal_di):
	Protect jump delay slot instructions with .set noreorder and
	.set nomacro.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (casesi_internal_di): Calculate
	the index into the target offset table correctly.

2002-02-08  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
	* final.c (output_addr_const): Accept and discard SUBREG.
	* varasm.c (decode_addr_const): Don't abort on unknown expressions --
	mark them unknown instead.
	(simplify_subtraction): Handle RTX_UNKNOWN.
	(initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.

2002-02-08  David Edelsohn  <edelsohn@gnu.org>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.

2002-02-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.

2002-02-08  Andreas Jaeger  <aj@suse.de>

	* config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
	* config/i386/t-linux64: New file.

2002-02-08  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (c_expand_expr): Revert 2002-02-06 patch.
	* c-parse.in (compstmt): Clear last_expr_type.

2002-02-07  Richard Henderson  <rth@redhat.com>

	* loop.c (strength_reduce): Sink final_value when not
	eliminating a biv.

2002-02-07  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h: Fix mismatched spec {.

2002-02-07  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c: Include recog.h and insn-config.h.
	(keep_with_call_p): Fix general_operand invocation.
	* Makefile.in (cfgrtl.o): Update dependencies.

2002-02-07  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
	comment.  Accept HImode only if TARGET_H8300.

2002-02-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/crtn.asm: Cleanup #ifdefs.

2002-02-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/crti.asm: Add changes for mips16. mips16 uses
	register 7 as RA instead of $31.
	* config/mips/crtn.asm: Ditto.
	* config/mips/mips.c (mips_move_2words): Add case for
	TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
	(compute_frame_size): Fix typo.
	(save_restore_insns): Ditto.  Make documentation about using
	register $7 as return register more precise.
	(mips_expand_epilogue): Fix comment. Add code to work around not
	being able to add to the stack pointer directly.
	* config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
	to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
	epilogue.

2002-02-07  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
	immediates in ldu and stdu DS opcode field.
	* config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
	* config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Same.

2002-02-07  Jeff Sturm  <jsturm@one-point.com>

	* config/sparc/sparc.c (compute_frame_size): Don't correct frame
	offset for stack bias.

2002-02-07  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.

2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>

	* testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.

Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_order_regs_for_local_alloc): Declare
	* i386.c (x86_order_regs_for_local_alloc): New global function.
	* i386.h (REG_ALLOC_ORDER): CLeanup.
	(ORDER_REGS_FOR_LOCAL_ALLOC): New.

2002-02-07  Richard Henderson  <rth@redhat.com>

	PR optimization/2463
	* alias.c (find_base_value): Recall base values for fixed hard regs.
	* loop.c (loop_regs_update): Don't use single_set on non-insns.

2002-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.md (define_delay) [mips16]: Adjust required
	length.

2002-02-06  Richard Henderson  <rth@redhat.com>

	PR c/5609
	* stmt.c (resolve_operand_name_1): Take more care with mixed
	named and unnamed operands.

2002-02-06  Janis Johnson  <janis187@us.ibm.com>
	    Jan Hubicka  <jh@suse.cz>

	* loop.c (remove_constant_addition): Avoid clobbering a shared
	CONST expression.

2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
	* config/s390/t-linux64: New file.
	* config/s390/libgcc-glibc.ver: New file.

2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux64.h: Delete file.
	* config/s390/s390x.h: New file.
	* config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
	as target header file.
	* config/s390/linux.h (TARGET_VERSION): Define depending on
	DEFAULT_TARGET_64BIT.
	(CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
	(SIZE_TYPE, PTRDIFF_TYPE): Likewise.
	(NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
	(CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
	(LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
	(EXTRA_SPEC): New define.
	* config/s390/s390.h (TARGET_VERSION): Define depending on
	DEFAULT_TARGET_64BIT.
	(MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.

2002-02-06  Jason Merrill  <jason@redhat.com>

	* c-decl.c (finish_function): Warn about a non-void function with
	no return statement and no abnormal exit.
	(current_function_returns_abnormally): New variable.
	(start_function): Clear it.
	(struct c_language_function): Add returns_abnormally.
	(push_c_function_context): Save it.
	(pop_c_function_context): Restore it.
	(builtin_function): Set TREE_THIS_VOLATILE on return fns.
	(grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
	an explicit return type.
	* c-tree.h: Declare current_function_returns_abnormally.
	(C_FUNCTION_IMPLICIT_INT): New macro.
	* c-typeck.c (build_function_call): Set it.
	(c_expand_return): Set current_function_returns_value even if the
	value is erroneous.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/5420:
	* c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
	unsafe for reevaluation.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/5482:
	* c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
	EXPR_STMT, but COMPOUND_STMT, recurse into it.

2002-02-06  Richard Henderson  <rth@redhat.com>

	* cfganal.c (keep_with_call_p): Source for fixed_reg dest must
	be a general_operand.  Dest for function value must be a pseudo.

2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
	as SYMBOL_REFs from the constant pool.

2002-02-06  Alexandre Oliva  <aoliva@redhat.com>

	* dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
	passed by invisible reference.

2002-02-05  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.

2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>

	Implement using "base addresses" in insn operands as default.
	* config/mmix/mmix.c (mmix_conditional_register_usage): if
	-mabi=gnu, modify fixed_regs to fit the GNU ABI.
	(mmix_extra_constraint): Use 'R' to indicate that GETA should be
	used to read the rtx value.
	(mmix_target_asm_function_epilogue): Fix spacing.
	(mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
	(mmix_legitimate_address): Ditto.
	(mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
	should be loaded with a GETA insn.  Don't allocate needless extra
	char for nul termination and fix misleading comment.
	(mmix_print_operand_address): Handle constants if
	TARGET_BASE_ADDRESSES.
	(mmix_output_register_setting): Use base addressing if
	TARGET_BASE_ADDRESSES and the number of insns is 3.
	* config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
	* config/mmix/mmix.md ("movdi"): Change the alternative with GETA
	to use R as constraint, add LDA to match s.
	* config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
	(TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
	(TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
	(FIXED_REGISTERS): Make registers $231..$246 fixed by default.
	(MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
	order with other fixed registers.
	(MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
	other parameter/call-clobbered registers.
	* doc/invoke.texi (Option Summary) <MMIX Options>: Add
	-mbase-addresses, -mno-base-addresses.
	(MMIX Options): Ditto.

2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (PREDICATE_CODES): Add reg_before_reload_operand.

2002-02-06  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Change elem to _S_elem.

2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (WCHAR_TYPE): Define.
	(WCHAR_TYPE_SIZE): Ditto.
	(WINT_TYPE): Ditto.
	* config/alpha/netbsd.h (WCHAR_TYPE): Remove.
	(WCHAR_UNSIGNED): Ditto.
	(WCHAR_TYPE_SIZE): Ditto.
	(WINT_TYPE): Ditto.
	* config/arm/netbsd.h: Likewise.
	* config/i386/netbsd-elf.h: Likewise.
	* config/i386/netbsd.h: Likewise.
	* config/m68k/netbsd-elf.h: Likewise.
	* config/m68k/netbsd.h: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/sparc/netbsd.h: Likewise.
	* config/vax/netbsd.: Likewise.

2002-02-05  Alexandre Oliva  <aoliva@redhat.com>

	* target.h (struct gcc_target): Added ms_bitfield_layout_p.
	* target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
	(TARGET_INITIALIZER): this.
	* doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
	(BITFIELD_NBYTES_LIMITED): Markup fix.
	* tree.h (default_ms_bitfield_layout_p): Declare.
	(record_layout_info): Added prev_field.
	* tree.c (default_ms_bitfield_layout_p): New fn.
	* c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
	PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
	* stor-layout.c: Include target.h.
	(start_record_layout): Initialize prev_field.
	(place_field): Handle MS bit-field layout, and disregard
	EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
	PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
	* Makefile.in (stor-layout.o): Adjust dependencies.

2002-02-05  Jason Merrill  <jason@redhat.com>

	* collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.

2002-02-05  Andreas Jaeger  <aj@suse.de>

	* crtstuff.c: Fix comments.

2002-02-05  Richard Henderson  <rth@redhat.com>

	PR fortran/3393
	* loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
	(loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.

	PR fortran/3392
	* config/mips/mips.c (function_arg): Handle TImode.
	(function_arg_advance): Likewise.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_step_help): Rename to
	__vec_step_help.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Fix typos.

2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/netbsd.h: Correct a comment.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
	building void typed builtins.

	* config/rs6000/altivec.h (vec_ld*): Fix typos.
	(vec_step): Implement for C++.

Mon Feb	 4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* combine.c (nonzero_bits): Re-introduce special case for
	sp/fp/ap wrt REGNO_POINTER_ALIGN.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* doc/extend.texi: Warn about unsupported usage of altivec
	builtins.

	* config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
	(altivec_predicate_*): New.

	* config/rs6000/altivec.h: Rewrite predicates to use new builtins.
	Add C++ version of vec_*() functions.

	* config/rs6000/rs6000.c (bdesc_altivec_preds): New.
	(bdesc_2arg): Remove altivec predicates.
	(altivec_expand_builtin): Handle predicates.
	(altivec_init_builtins): Handle predicates.
	(altivec_expand_predicate_builtin): New.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (DO_FRAME_NOTES): Move forward.
	(store_reg): Revise handling of frame notes.
	(load_reg): Likewise.
	(set_reg_plus_d): Likewise.
	(hppa_expand_prologue): Likewise.
	(hppa_expand_epilogue): Likewise.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/4475, c++/3780:
	* c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
	* c-common.h (SWITCH_TYPE): Define.
	* c-typeck.c (c_start_case): Set SWITCH_TYPE.
	* stmt.c (all_cases_count): Set lastval to thisval at end of loop.
	Rename spareness variable to sparseness.
	(expand_end_case_type): Renamed from expand_end_case, use orig_type
	if non-NULL instead of TREE_TYPE (orig_index).
	* tree.h (expand_end_case_type): Renamed from expand_end_case.
	(expand_end_case): Define using expand_end_case_type.
	* c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
	to expand_end_case_type.
	* doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
	(BIGGEST_ALIGNMENT): Change to 128.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa32-linux.h (LINK_COMMAND_SPEC): Define.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (call_internal_reg_64bit): Remove unused variable.

2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.h (machine_function): Add uses_anonymous_args
	field.
	(SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
	* config/arm/arm.c (current_function_anonymous_args): Delete,
	replace uses with cfun->machine->uses_anonymous_args.
	(arm_reorg): Do not reset uses_anonymous_args.

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
	any geenral register.

2001-02-04  Bernd Schmidt  <bernds@redhat.com>s

	* cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
	the entry block.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* combine.c (force_to_mode): Remove STACK_BIAS code.
	(nonzero_bits): Likewise.  Replace sp/fp special case with
	REGNO_POINTER_ALIGN.

	* config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
	(HARD_FRAME_POINTER_REGNUM): New.
	(FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
	(FIXED_REGS, CALL_USED_REGS): Update.
	(REG_ALLOC_ORDER, REGISTER_NAMES): Update.
	(CONDITIONAL_REGISTER_USAGE): Update for HFP.
	(HARD_REGNO_NREGS): Update for SFP.
	(STACK_POINTER_OFFSET): Include bias here ...
	(FIRST_PARM_OFFSET): ... not here.
	(STACK_BIAS): Remove.
	(INIT_EXPANDERS): New.
	(STARTING_FRAME_OFFSET): Do not include bias.
	(ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
	(REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
	* config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
	* config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
	* config/sparc/sparc.c (mem_min_alignment): Update for HFP.
	(sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
	(MUST_SAVE_REGISTER): Likewise.
	(sparc_flat_function_prologue): Likewise.
	(sparc_flat_function_epilogue): Likewise.
	(HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
	(sparc_init_modes): SFP is GENERAL_REGS.
	(sparc_builtin_saveregs): SFP does not have bias applied.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (current_function_is_thunk): Don't check
	current_function_is_thunk.
	(alpha_sa_mask): Distinguish between current_function_is_thunk
	called from ASM_OUTPUT_MI_THUNK and not.
	(alpha_does_function_need_gp): Thunks always need gp.
	(alpha_start_function, alpha_output_function_end_prologue): Likewise.
	(alpha_output_mi_thunk_osf): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.

2002-02-04  Richard Sandiford  <rsandifo@redhat.com>

	* c-typeck.c (build_c_cast): Warn when qualifiers are added to
	function types, not when they're taken away.

Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)

	* cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
	CODE_LABEL and jump table when replacing a table jump with a
	simple jump.

2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (legitimize_la_operand,
	s390_secondary_input_reload_class, s390_plus_operand,
	s390_expand_plus_operand): Add prototypes.

	config/s390/s390.c (s390_secondary_input_reload_class,
	s390_plus_operand, s390_expand_plus_operand): New functions.

	(struct s390_address): New member 'pointer'.
	(s390_decompose_address): Compute it.
	(legitimate_la_operand_p): Use it.
	(legitimize_la_operand): New function.
	(movti, movdi, movdf splitters): Call it.

	config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
	(PREDICATE_CODES): Add s390_plus_operand.

	config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
	(la_ccclobber): Allow GENERAL_REGS as output operand.

	(reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
	*reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
	(*la_64, *la_31, reload_indi, reload_insi): ... these.

2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
	register names for regular asm () construct.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (movsf_1): Allow moving SF values in MMX
	registers.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (recog_for_combine): Create a dummy insn with PATTERN
	pat for recog.

2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>

	* varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
	constant pool to be identical by string address and index.

2002-02-04  Anthony Green  <green@redhat.com>

	* output.h (SECTION_OVERRIDE): Define.
	* varasm.c (named_section): Obey SECTION_OVERRIDE.

2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
	by existing arm*-*-netbsd* (a.out) target.
	(ns32k-*-netbsdelf*): Likewise.
	(sparc-*-netbsdelf*): Likewise.
	(vax-*-netbsdelf*): Likewise.

2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>

	* gthr-win32.h: Protect against conflicting typedef for BOOL in windows
	headers and libobjc headers.

2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>

	* gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
	(_mingw.h): Remove duplicate include.

2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc: Set cpu_type to m68k for 68010, as well.
	(m68010-*-netbsdelf*): New...
	(m68k*-*-netbsdelf*): ...targets.
	* config/m68k/netbsd-elf.h: New file.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (hand_list): Move inside function_arg.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8_push_ops): Move inside
	h8300_init_once.
	(h8_pop_ops): Likewise.
	(h8_move_ops): Likewise.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (os_task): Make it static.
	(monitor): Likewise.
	(pragma_saveall): Likewise.

2002-02-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (ic_invalidate_line): Make sure the immediate
	constant is a valid sign-extension for Pmode.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix formatting.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (one_cmpl patterns): Tighten the
	predicates of operands[1].  Split the patterns for each
	processor variant.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (xor patterns): Tighten the predicates
	of operands[1] to register_operand.

2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
	* cpphash.c (_cpp_init_hashtable): Similarly.
	* cppinit.c (cpp_create_reader): Default the signed_char flag.
	(init_builtins): Define __CHAR_UNSIGNED__ appropriately.
	(COMMAND_LINE_OPTIONS): Recognize -f{un,}signed-char.
	(cpp_handle_option): Handle the new options.
	* cpplex.c (cpp_interpret_charconst): Use new flag.
	* cpplib.h (struct cpp_options): New member signed_char.
	* gcc.c (cpp_unique_options): Remove %c spec and documentation.
	(cpp_options): Handle -fsigned-char and -funsigned-char.
	(static_specs): Remove signed_char_spec.
	(do_spec1): Don't handle %c.
	* system.h: Poison SIGNED_CHAR_SPEC.
	* tradcif.y (yylex): Use flag_signed_char.
	* tradcpp.h (flag_signed_char): New.
	* tradcpp.c (flag_signed_char): New.
	(main): Handle new command-line options.
	(initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
config:
	* alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
	* avr/avr.h: Remove old comments.
	* i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
	(CC1_SPEC): Pass -fsigned-char if -mic*.
	(SIGNED_CHAR_SPEC): Remove.
doc:
	* tm.texi (SIGNED_CHAR_SPEC): Remove documentation.

2002-02-01  Eric Christopher  <echristo@redhat.com>

	From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
	* config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
	* config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
	(ASM_OUTPUT_REG_POP): Ditto.

2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
	patch.

2002-02-02  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.

2002-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/5304:
	* expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
	unconditionally.

2002-02-01  Janis Johnson  <janis187@us.ibm.com>

	* cfganal.c: Include tm_p.h.
	(keep_with_call_p): Fix the test that determines if a register holds
	the return value of a call.

2002-02-01  DJ Delorie  <dj@redhat.com>

	* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
	we are given conflicting registers, switch to the other one we
	had allocated for us.
	* config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
	as TImode so we know when the "other" register is available.

2002-02-01  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
	sparc/sparc_bi.h.

2002-02-01  Janis Johnson  <janis187@us.ibm.com>

	* cfganal.c (keep_with_call_p): New function.
	(flow_call_edges_add): Prevent splitting a block between a call and
	a single-set instruction that should be kept in the same block.

2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (avr): Update outdated URL.

2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>

	* config/stormy16/stormy16.md (pushqi): New.
	(popqi): New.
	(pushhi): New.
	(pophi): New.
	(movhi): Remove stack operands.
	(movqi): Likewise.
	* config/stormy16/stormy16.h (PREDICATE_CODES): Add
	nonimmediate_nonstack_operand.
	* config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
	New.
	* config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
	New.

2002-01-31  Jason Merrill  <jason@redhat.com>

	* Makefile.in (c-parse.c): Handle .output file.
	* objc/Make-lang.in (objc-parse.c): Likewise.

2002-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
	the -me[lb] option is given.  Don't output the default flag
	twice.

2002-01-31  Zack Weinberg  <zack@codesourcery.com>

	* c-lex.c (yyparse): Call debug_hooks->start_source_file for
	the primary source file; this has not been done yet.
	* c-decl.c (c_expand_body): Reset input_filename from
	DECL_SOURCE_FILE (fndecl) before calling init_function_start.

2002-01-31  Kazu Hirata  <kazu@hxi.com>

	* rtlanal.c (subreg_regno_offset): Do not use
	SUBREG_REGNO_OFFSET.
	* system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
	* doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.

2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
	version rather than GNATS version in --version output.

2002-01-31  Richard Sandiford  <rsandifo@redhat.com>

	* ifcvt.c (noce_process_if_block): Make a copy of the destination
	when copying back from a temporary.

2002-01-30  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (dead_or_predicable): Handling merging when other_bb
	and new_dest are the same.

2002-01-30  Richard Henderson  <rth@redhat.com>

	PR opt/5076
	* rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
	* rtl.c (note_insn_name): Update.
	* emit-rtl.c (remove_unnecessary_notes): Kill it.
	* stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
	to perform loop rotation.
	(expand_exit_loop_top_cond): New.
	* tree.h (expand_exit_loop_top_cond): Declare it.
	* c-semantics.c (genrtl_while_stmt): Use it.
	(genrtl_for_stmt): Likewise.

2002-01-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
	arguments to 64-bit boundaries on 64-bit ABIs.

2002-01-30  Steve Ellcey  <sje@cup.hp.com>

	* loop.c (loop_invariant_p): Special case pic_offset_table_rtx.

2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-decl.c (grokdeclarator): Handle type being a typedef for an
	invalid type.

2002-01-30  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
	* config/sparc/sparc_bi.h: Remove file.
	* config/sparc/biarch64.h: New file (rename of sparc_bi.h).

2002-01-30  Richard Henderson  <rth@redhat.com>

	* sched-deps.c (sched_analyze): Make a call read the frame pointer.

2002-01-30  Zack Weinberg  <zack@codesourcery.com>

	* expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.

2002-01-30  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
	(output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
	(reg_save): Use DW_CFA_offset_extended_sf instead.

	* dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	* cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
	in cselib_lookup.

2002-01-29  Aldy Hernandez  <aldyh@redhat.com>

	* rs6000.md ("*call_value_local32"): Remove constraints.
	("*call_value_local64"): Same.
	("*call_value_indirect_nonlocal_aix32"): Same.
	("*call_value_nonlocal_aix32"): Same.
	("*call_value_indirect_nonlocal_aix64"): Same.
	("*call_value_nonlocal_aix64"): Same.
	("*call_value_nonlocal_sysv"): Same.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* expr.c (force_operand): Ignore flag_pic for detecting pic
	address loads.
	* regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
	for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
	* resource.c (mark_target_live_regs): Use regs_invalidated_by_call
	instead of open-coded loop.
	* doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
	be fixed when in use.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
	* sched-rgn.c (propagate_deps): Update them.
	* sched-deps.c (sched_analyze_insn): Update them.  Flush the
	clobbers list when either gets too long.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
	and INDEX_REGS the same as GENERAL_REGS.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.

2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* tree.c (build_nonstandard_integer_type): Correct prototype.

2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movstrsico, movstrdix_64,
	movstrsix_31): Remove, replace by ...
	(movstrdi_short, movstrsi_short, movstrdi_long,
	movstrsi_long): ... these.  New.
	(movstrdi, movstrsi): Adapt.

	(rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
	ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
	Remove unnecessary CC clobber.
	(*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
	*ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.

	(divmoddi4): Don't partially initialize TImode register.

2002-01-29  Geoffrey Keating  <geoffk@redhat.com>

	* doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* flow.c (print_rtl_and_abort): Remove.
	(print_rtl_and_abort_fcn): Remove.
	(verify_local_live_at_start): Use dump_bb instead.
	(verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
	(verify_wide_reg_1): Return 2 on mode test failure.

2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR c/3325, c/3326, c/2511, c/3347
	* c-decl.c (enum_decl_context): Remove BITFIELD.
	(grokdeclarator): Take bitfield width as an input.
	Ensure bitfields are given the correct type.  Perform
	bitfield width validation with build_bitfield_integer_type
	rather than waiting for finish_struct.
	(grok_typename, grok_typename_in_parm_context, start_decl,
	push_parmdecl, grokfield, start_function): Update calls to
	grokdeclarator.
	(build_bitfield_integer_type): New function.
	(finish_struct): Move bitfield validation to grokdeclarator
	and build_bitfield_integer_type.
	* tree.c (build_nonstandard_integer_type): New function.
	* tree.h (build_nonstandard_integer_type): New prototype.
objc:
	* objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR other/1502:
	* cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
	don't ignore unrecognized -W* options.
	(cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
	* cpplib.h (cpp_handle_option): Adjust prototype.
	* c-decl.c (c_decode_options): Pass 0 as last argument to
	cpp_handle_option.

	PR c/2896:
	* gcc.c (cpp_unique_options): Split from cpp_options.
	(cpp_options): Source cpp_unique_options.
	(default_compilers): Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.
	(static_specs): Add cpp_unique_options.
	* objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.

2002-01-29  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype of
	output_a_shift.
	* config/h8300/h8300.c (output_a_shift): Remove an unused
	argument 'insn'.  Remove redundant code.
	* config/h8300/h8300.md: Adust to the new prototype of
	output_a_shift.

2002-01-29  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototypes of
	emit_a_rotate and expand_a_rotate.
	* config/h8300/h8300.c (emit_a_rotate): Change the type of the
	first argument to 'enum rtx_code'.
	(expand_a_rotate): Likewise.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype of
	output_simode_bld.
	* config/h8300/h8300.c (output_simode_bld): Remove an argumen
	'log2'.
	* config/h8300/h8300.md: Adjust to the new prototype.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
	redundant code.

2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
	is a fixed register before returning pic_offset_table_rtx.
	* loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
	when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.

2002-01-28  Jason Merrill  <jason@redhat.com>

	* dwarf2.h: Sync with src version.

2002-01-28  Paul Koning  <pkoning@equallogic.com>

	* builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
	BT_FN_VOID_PTR_VAR.
	* builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
	* doc/extend.texi (__builtin_prefetch): Update documentation:
	first argument is now const void ptr.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove an unused prototype.

2002-01-28  Roman Zippel  <zippel@linux-m68k.org>

	* toplev.c (lang_independent_init): Round up identifier size.

2002-01-28  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc: Revert previous change.

2002-01-28  Andris Pavenis  <pavenis@latnet.lv>

	* config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION

2002-01-28  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc (*-*-netbsdelf*): Set up generic parameters.
	(*-*-netbsd*): Always use collect2.  Remove collect2 settings from
	other non-elf netbsd config frags.
	* config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
	collect2 will does that.
	* config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
	shared-lib frobbing will work.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.
	* config/h8300/h8300.md: Likewise.

2002-01-28  Loren J. Rittle  <ljrittle@acm.org>

	* fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
	the old, removed AAA_standards fix.
	* fixinc/fixincl.x: Rebuilt.

2002-01-28  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
	atexit call in crtbegin, hooked in after call to frame_dummy;
	register EH before registering __fini__start.

2002-01-28  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Remove spurious semicolons.

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Replace dead bit extraction patterns
	with ones that work.

Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
	if not STRICT_ALIGNMENT.
	* rtl.h (MEM_ALIGN): Likewise.

2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/invoke.texi (-fdump-translation-unit): Revert this
	patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (define_constants): New.
	(anonymous patterns) Use defined constants appropriately.

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Remove redundant code.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* sched-deps.c (reg_pending_uses_head): New.
	(reg_pending_barrier): Rename from reg_pending_sets_all.
	(find_insn_list): Don't mark inline.
	(find_insn_mem_list): Remove.
	(add_dependence_list, add_dependence_list_and_free): New.
	(flush_pending_lists): Replace only_write param with separate
	for_read and for_write parameters.  Update all callers.  Use
	add_dependence_list_and_free.
	(sched_analyze_1): Do not add reg dependencies here; just set
	the pending bits.  Use add_dependence_list.
	(sched_analyze_2): Likewise.
	(sched_analyze_insn): Replace schedule_barrier_found with
	reg_pending_barrier.  Add all dependencies for pending reg
	uses, sets, and clobbers.
	(sched_analyze): Don't add reg dependencies for calls, just
	set pending bits.  Use regs_invalidated_by_call.  Treat
	sched_before_next_call as a normal list, not a fake insn.
	(init_deps): No funny init for sched_before_next_call.
	(free_deps): Free pending mems lists.  Don't zero reg_last.
	(init_deps_global): Init reg_pending_uses.
	(finish_deps_global): Free it.
	* sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
	(find_insn_mem_list): Remove.
	* sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
	(propagate_deps): Use them.  Zero temp mem lists.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* Makefile.in (CRTSTUFF_CFLAGS): New.
	(crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
	* config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
	crtstuff.c instead of alpha assembly version.
	* crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
	entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
	not FORCE_{INIT,FINI}_SECTION_ALIGN.
	(__do_global_dtors_aux): Mark used.
	(frame_dummy, __do_global_ctors_aux): Mark used.
	(fini_dummy, init_dummy): Remove.

	* config/alpha/crtbegin.asm: Remove file.
	* config/alpha/crtend.asm: Remove file.
	* config/alpha/t-crtbe: Remove file.
	* config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
	(LINK_EH_SPEC): New.

	* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
	FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
	calling constructors.
	* config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.

	* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
	* config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
	CRT_END_INIT_DUMMY hack.
	* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
	FORCE_{INIT,FINI}_SECTION_ALIGN.

	* config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
	FORCE_{INIT,FINI}_SECTION_ALIGN.

	* config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
	invocation sequence.
	* config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.

	* doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
	(FORCE_CODE_SECTION_ALIGN): New.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
	(alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.

2002-01-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove bit extraction patterns that
	cannot be triggered.
	Restrict each bit extraction pattern to a variant on which the
	pattern is tested.

2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/include/texinfo.tex: Update to version 2002-01-04.07.

2002-01-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove bit test patterns that cannot
	be triggered.
	Restrict each bit test pattern to a variant on which the
	pattern is tested.

2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (expand_builtin_strncat): Remove redundant check for
	INTEGER_CST.

2002-01-25  David O'Brien  <obrien@FreeBSD.org>

	* config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
	default setting.
	* config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
	existing setting.

2002-01-25  Geoffrey Keating  <geoffk@redhat.com>

	* dbxout.c (dbxout_init): Use assemble_name rather than just
	stripping off the first character.
	(dbxout_source_file): Likewise.

2002-01-25  DJ Delorie  <dj@redhat.com>

	* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
	using rtx_equal_p, not by comparing pointers.

2002-01-25  Steve Ellcey  <sje@cup.hp.com>

	* emit-rtl.c (gen_rtx_REG): Always return the same rtx
	for PIC_OFFSET_TABLE_REGNUM.
	(init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.

2002-01-25  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (x86_64-*-freebsd*): New target.
	(x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
	value.
	(i[34567]86-*-freebsd*): Don't include svr4.h.
	* config/i386/freebsd64.h: New file.

2002-01-25  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/x-vms (version): Make static.

	* config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
	in previous checkin.

	* Makefile.in (install-headers-cp): New target.
	* config.gcc (alpha-dec-*vms*): Install headers with
	install-headers-cp

Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (unroll_loop): Lower final_value to nonmemory operand;
	avoid it's copies.

Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* builtins.c (expand_builtin_strncpy): Use integer_zerop instead
	of compare_tree_int.
	(expand_builtin_strncat): Likewise.
	* c-decl.c (finish_struct): Use tree_low_cst.
	* tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
	* tree.c (compare_tree_int): Likewise.

2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (eliminate_regs_in_insn): Recognize frame pointer
	adjustments even if they are implemented by more than two insns.

Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
	* df.h (struct ref): Kill B.
	(DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.

	* basic-block.h (PROP_EQUAL_NOTES): New flag.
	* flow.c (propagate_one_insn): Use it.
	(mark_used_regs): Handle NIL.

2002-01-25  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
	to help folding.

2002-01-25  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (prefetch): Make address V4SI mode so that the address
	is restricted to legitimate form for instruction.

2002-01-25  Bob Wilson  <bob.wilson@acm.org>

	* doc/install.texi (xtensa-*-elf): New target.
	(xtensa-*-linux*): New target.
	* doc/contrib.texi: Add myself.

2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
	purpose register to hold an SImode (or smaller) value.

2002-01-25  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
	registry only.
	* crtstuff.c: Likewise.

2002-01-25  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (negation patterns): Tighten
	predicates to register_operand.

2002-01-24  Aldy Hernandez  <aldyh@redhat.com>

	* loop.c (emit_prefetch_instructions): Use the prefetch insn's
	mode, not Pmode.

	* builtins.c (expand_builtin_prefetch): Same.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
	modes.

2002-01-24  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	operand character 'A'.
	* config/h8300/h8300.md (three anonymous patterns): Replace
	operand character 'A' with either 'T' or 'S'.

2002-01-24  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	operand character 'U'.

2002-01-24  Andris Pavenis  <pavenis@latnet.lv>

	* config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.

2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
	values to be assigned to the stack pointer.

2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* emit_rtl.c (gen_lowpart_common): Conversion from const_int
	to const_double needs to be done right for big-endian systems.

2002-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/2432
	* config/sparc/sparc.md (call-jump peepholes): Pass the right insn
	to can_throw_internal.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* fold-const.c (fold): Change UINT_MAX test to check vs precision
	rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
	(symGOT2reg): Use them, then set as GOT value as unchanging.
	(symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
	as a temporary, if possible.
	(symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
	sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).

2002-01-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix xorqi and xorqi so that they will
	accept to accept 0x80 as operands[2].

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.

2002-01-23  Aldy Hernandez  <aldyh@redhat.com>

	* c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
	(parmlist_or_identifiers_1): Verify that only a parmlist follows
	an attribute.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* expr.c (move_by_pieces_1): Extend size before negation.

	* config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
	(MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
	(MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
	* config/m68k/t-m68kelf: Likewise.

2002-01-23  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h: New file.
	* config/xtensa/lib1funcs.asm: New file.
	* config/xtensa/lib2funcs.S: New file.
	* config/xtensa/linux.h: New file.
	* config/xtensa/t-xtensa: New file.
	* config/xtensa/xtensa-config.h: New file.
	* config/xtensa/xtensa-protos.h: New file.
	* config/xtensa/xtensa.c: New file.
	* config/xtensa/xtensa.h: New file.
	* config/xtensa/xtensa.md: New file.
	* config.gcc (xtensa-*-elf*): New target.
	(xtensa-*-linux*): New target.
	* cse.c (canon_hash): Compare rtx pointers instead of register
	numbers.  This is required for the Xtensa port.
	* integrate.c (copy_insn_list): Handle case where the static
	chain is in memory and the memory address has to be copied to
	a register.
	* doc/invoke.texi (Option Summary): Add Xtensa options.
	(Xtensa Options): New node.
	* doc/md.texi (Machine Constraints): Add Xtensa machine constraints.

2002-01-23  Zack Weinberg  <zack@codesourcery.com>

	* diagnostic.c (internal_error): Do ICE suppression only
	when ENABLE_CHECKING is not defined.

	* c-typeck.c (require_complete_type): Return error_mark_node
	if type is error_mark_node.

2002-01-23  Janis Johnson  <janis187@us.ibm.com>

	* toplev.c (process_options): Disable -fprefetch-loop-arrays with
	-Os and issue a warning.

2002-01-23  Zack Weinberg  <zack@codesourcery.com>

	* doc/fragments.texi, doc/hostconfig.texi: Update to reflect
	current (lack of) need for host configuration by hand.

	* doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
	references.  Documentation of some target macros moved from
	hostconfig.texi to tm.texi.

2002-01-23  Will Cohen  <wcohen@redhat.com>

	* config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
	defined.

2002-01-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
	operand[3].

2002-01-23  Jason Merrill  <jason@redhat.com>

	* tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.

	* function.c (assign_parms): Don't put args of inline functions
	into registers when not optimizing.

2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
	(prologue_use): New pattern.
	* config/arm/arm.c (expand_prologue): Use gen_prologue_use in
	preference to gen_rtx_USE.
	(thumb_expand_prologue): Use gen_prologue_use in preference to
	gen_rtx_USE.
	(thumb_expand_epilogue): Use gen_prologue_use in preference to
	gen_rtx_USE.

2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.

2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR c/3504
	* doc/extend.texi: Correct documentation of __alignof__.

2002-01-22  Zack Weinberg  <zack@codesourcery.com>

	* params.h: Rename arguments of DEFPARAM so that it will be
	recognized as a translation keyword.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* extend.texi: Document altivec functions.
	Fix N-bit adjectives in X86 builtin documentation.

2002-01-22  Alexandre Oliva  <aoliva@redhat.com>

	* reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
	auto_inc_dec values.

2002-01-22  Richard Earnshaw  <rearnsha@arm.com>

	* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
	after backslash.
	(ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.

2002-01-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/freebsd-aout.h (ASM_QUAD): Undefine.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
	copy_insn not copy_rtx.

2002-01-23  Alan Modra  <amodra@bigpond.net.au>

	* combine.c (simplify_and_const_int): Don't trunc_int_for_mode
	"nonzero" as that might add "1" bits.  Ensure "constop" is
	properly sign extened.
	(force_to_mode): Tweak for sign extended constop.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
	for_each_rtx instead of assuming we're already looking at the MEM.
	(split_small_symbolic_mem_operand): Likewise.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha.md (small symbolic memory splitters): Update.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
	sequence number for the literal.
	(divmoddi_internal_er): Likewise.

2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR java/4972
	* aclocal.m4 (AM_ICONV): Put linking flags for libiconv
	in LIBICONV variable.
	* configure: Regenerated.

2002-01-22  Krister Walfridsson  <cato@df.lth.se>

	* dependence.c (build_def_use): Remove array_idx.

	* dwarfout.c (last_filename): Remove.
	(output_compile_unit_die): Remove last_filename.

2002-01-22  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	PR opt/3640
	* fold-const.c (fold): Optimize unsigned comparisons against
	UINT_MAX (and similar unsigned constants).

2002-01-22  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (loop.o): Depend on OPTABS_H.
	* loop.c (emit_prefetch_instructions): Check the prefetch operand
	against the predicate.

	PR target/5379
	* config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
	for the address operand.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.

2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR other/5450
	* config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
	preprocessor flags.

2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (x86_64-*-netbsd*): New target.
	* config/i386/netbsd64.h: New file.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (kill_value): Fix typo.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* doc/tm.texi: Remove STARTING_FRAME_PHASE.

	* config/rs6000/rs6000.h: Same.

	* function.c (instantiate_virtual_regs): Remove
	STARTING_FRAME_PHASE.
	(assign_stack_local_1): Same.
	Calculate frame phase.

2002-01-22  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
	variable declaration to outer scope in order to simplify
	future extensions.
	(HARD_REGNO_MODE_OK): Replace macro body with a with a call to
	arm_hard_regno_mode_ok.
	* config/arm/arm-protos.h: Add a prototype for
	arm_hard_regno_mode_ok.
	* config/arm/arm.c (soft_df_operand): Remove now redundant
	check for DImode values using IP_REGNUM.
	(nonimmediate_soft_df_operand): Remove now redundant check for
	DImode values using IP_REGNUM.
	(arm_hard_regno_mode_ok): New function. New check: make sure
	that DImode values are not stored in IP_REGNUM.

	* config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
	note with a USE.
	(thumb_expand_prologue): Replace REG_MAYBE_DEAD	note with a USE.

2002-01-22  Jason Merrill  <jason@redhat.com>

	* c-semantics.c (genrtl_compound_stmt): Only check nesting
	consistency if this COMPOUND_STMT is scoped.

2002-01-22  Kazu Hirata  <kazu@hxi.com>

	* predict.c: Fix formatting.
	* print-tree.c: Likewise.
	* protoize.c: Likewise.
	* real.h: Likewise.
	* rtl.h: Likewise.
	* sbitmap.h: Likewise.
	* scan.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sibcall.c: Likewise.
	* ssa.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa-dce.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* system.h: Likewise.

Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.c (int_fits_type_p): If bounds of a subtype are variable, see
	if fits in bounds of base type.

	* dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
	(loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
	(add_bound_info, default): If can't find a context, make a
	SAVE_EXPR.
	(dwarf2out_finish): Check for SAVE_EXPR in node->created_for.

2002-01-22  Hans-Peter Nilsson  <hp@axis.com>

	* c-typeck.c (parser_build_binary_op): If result from
	build_binary_op is ERROR_MARK just return error_mark_node without
	further processing.

2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (TARGET_HAS_F_SETLKW): define.
	Split a.out-specific bits into...
	* config/netbsd-aout.h: ...this.
	* config/netbsd-elf.h: New file.
	* config/alpha/netbsd-elf.h: Remove.
	* config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
	* config/i386/netbsd-elf.h (LIB_SPEC): Remove.
	(STARTFILE_SPEC): Remove redundant definition.
	(ENDFILE_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(CPP_SPEC): Likewise.
	(ASM_SPEC): Likewise.
	(LIB_SPEC): Likewise.
	(SWITCH_TAKES_ARG): Likewise.
	(TARGET_MEM_FUNCTIONS): Likewise.
	(CPP_PREDEFINES): Redefine.
	(ASM_FINAL_SPEC): Remove redefinition.
	(ASM_COMMENT_START): Redefine.
	(FUNCTION_PROFILER): Define.
	(TARGET_VERSION): Redefine.
	Comment and formatting cleanup.
	* config/i386/netbsd.h: Include <netbsd-aout.h>.
	* config/m68k/netbsd.h: Include <netbsd-aout.h>.
	* config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
	big- or little-endian.
	* config/ns32k/netbsd.h: Include <netbsd-aout.h>.
	* config.gcc (*-*-netbsd*): Add definitions common to all
	NetBSD configs.
	(alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
	gnu_ld definitions.  Add netbsd-elf.h to and remove
	alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
	tmake_file, and don't lose previous tmake_file contents.
	(arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
	(i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
	gnu_ld definitions.  Add netbsd-elf.h to tm_file.
	(mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
	(mipsel-*-netbsd*): Rename this to...
	(mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
	mips/little.h to tm_file for mips*el-*.
	(powerpc-*-netbsd*): Remove redundant xm_defines definition.
	(sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
	(vax-*-netbsd*): Add netbsd-aout.h to tm_file.

2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-protos.h (reg_before_reload_operand): New function prototype.
	* pa.c (reg_before_reload_operand): New function implementation.
	* pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
	contraints to "*m".

2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.

2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
	(MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
	(MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
	(EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
	(ENDFILE_SPEC): Undefine.
	(STARTFILE_SPEC): Redefine for PA.

2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.

2002-01-21  Daniel Jacobowitz  <drow@mvista.com>

	* config.gcc: Add entries to supported PowerPC --with-cpu
	types.

2002-01-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_function_arg_regno_p): Never return
	true for 64-bit mode only SSE registers in 32-bit mode.

2002-01-21  Kazu Hirata  <kazu@hxi.com>

	* unwind-dw2.c: Fix formatting.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind-pe.h: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.

2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>

	Remove workaround for register stack overwrite bug in mmix.
	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
	support for TARGET_REG_STACK_FILL_BUG.
	* config/mmix/mmix.h: Remove member has_call_without_parameters.
	(TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
	Delete.
	(TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
	(TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
	-mno-reg-stack-fill-bug-workaround.
	* config/mmix/mmix.md ("call", "call_value"): Don't set struct
	machine member has_call_without_parameters.
	* doc/invoke.texi (Option Summary) <MMIX Options>: Remove
	-mreg-stack-fill-bug-workaround	and
	-mno-reg-stack-fill-bug-workaround.
	(MMIX Options): Ditto.

2002-01-21  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
	as appropriate.
	Remove redundant code.

2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
	config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
	config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
	config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
	out target macro definitions and non-target-specific comments
	mostly taken from old versions of the manual.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix comment formatting.
	* config/ia64/aix.h: Likewise.
	* config/ia64/ia64-protos.h: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ia64/ia64intrin.h: Likewise.
	* config/ia64/linux.h: Likewise.
	* config/ia64/unwind-aix.c: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Revise comments about shift code.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Update a comment.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Update the comments at the beginning
	of the file.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/i370/i370.c: Fix comment formatting.
	* config/i370/i370.h: Likewise.
	* config/i370/i370.md: Likewise.
	* config/i370/linux.h: Likewise.

Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reg-stack.c (subst_stack_regs): Properly check for deleted insn.

	* dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
	(gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
	in incomplete case.

2002-01-20  Graham Stott  <grahams@redhat.com>

	* cfgloop.c (flow_loop_preheader_scan): Fix typo.

2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.

2002-01-19  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.

2002-01-18  Aldy Hernandez  <aldyh@redhat.com>

	* doc/tm.texi (STARTING_FRAME_PHASE): Document.

	* function.c (assign_stack_local_1): Adjust x_frame_offset with
	STARTING_FRAME_PHASE.
	(STARTING_FRAME_PHASE): New.
	(instantiate_virtual_regs): Check saneness of
	STARTING_FRAME_PHASE.

	* config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.

2002-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.

2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
	be used for bootstrapping GCC 3.0.

2002-01-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix an insn length.

2002-01-18  Kazu Hirata  <kazu@hxi.com>

	* bitmap.h: Fix comment formatting.
	* combine.c: Likewise.
	* cppfiles.c: Likewise.
	* c-pragma.h: Likewise.
	* c-typeck.c: Likewise.
	* df.c: Likewise.
	* dwarf2out.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* genattrtab.c: Likewise.
	* gthr-win32.h: Likewise.
	* haifa-sched.c: Likewise.
	* predict.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.h: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind-pe.h: Likewise.
	* vmsdbgout.c: Likewise.

Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
	if type_required and passed decl.

2002-01-17  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc (cpu_type): Include altivec.h in powerpc
	extra_headers.
	Same for darwin.

	* config/rs6000/altivec.h: New.

2002-01-17  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Update assembler and exception
	handling information.
	* doc/trouble.texi (Interoperation): Add libstdc++ information
	for AIX.
	(Misunderstandings): Add template instantiation and static template
	member information for AIX.

2002-01-17  Jason Merrill  <jason@redhat.com>

	* dbxout.c (dbxout_type): Support const and volatile.

	* except.c (add_partial_entry): Remove backwards compatibility code.
	(end_protect_partials): Likewise.

2002-01-17  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/ia64.md (prologue_use): New.
	* config/ia64/ia64.c (ia64_expand_prologue): Use
	gen_prologue_use instead of gen_rtx_USE.
	(group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
	as CODE_FOR_pred_rel_mutex.
	(ia64_sched_reorder2): Likewise.

2002-01-16  Eric Christopher  <echristo@redhat.com>

	* config/mips/r3900.h: Reformat.
	(SUBTARGET_CPP_SIZE_SPEC): Remove.
	* config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
	* config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
	(SUBTARGET_CPP_SIZE_SPEC): Rewrite.
	* config/mips/t-elf: Remove mips3 multilib.

2002-01-16  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h: Include "mips/abi64.h".

2002-01-16  H.J. Lu <hjl@gnu.org>

	* config/mips/t-linux: New.

	* config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.

	* config/mips/linux.h: Don't include "gofast.h".
	(INIT_SUBTARGET_OPTABS): Removed.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Replace emit_a_shift with
	output_a_shift.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.md: Likewise.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
	spaces after an opcode name.
	(pushqi1_h8300hs): Likewise.
	(pushhi1_h8300hs): Likewise.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* doc/extend.texi: Replace "option" with "attribute"
	appropriately.

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
	(and:DI () (const_int -8)).
	(split_small_symbolic_mem_operand): Split
	(mem (and:DI () (const_int -8)).

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/5309:
	* config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
	same way as TYPE_IMUL.
	(ultrasparc_sched_reorder): Likewise.
	* config/sparc/sparc.md (type): Add comment to update
	ultrasparc_sched_reorder when making changes.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* doc/invoke.texi: Change the dump file name of block
	reordering pass from 28.bbro to 29.bbro.
	Mention -dk option.

Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (minsf splitter): Fix pasto.

2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
	to frame pointer initialisation instruction.
	(thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
	initialisation instruction.
	(soft_df_operand): Do not accept the IP register.
	(nonimmediate_soft_df_operand): Do not accept the IP register.

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/5357:
	* config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
	MASK_V8 being both set.

2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Do not emit USE
	insn for GOT register; add REG_MAYBE_DEAD notes instead.
	config/s390/s390.md (call, call_value): Add GOT register to
	CALL_INSN_FUNCTION_USAGE where needed.
	(call_exp, call_value_exp): New.

2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c: General formatting tidy up.

2002-01-16  Graham Stott  <grahams@redhat.com>

	* calls.c (try_to_integrate): Use "(size_t)" intermediate
	cast and when casting an integer literal to "rtx" pointer.
	(expand_call): Likewise.
	* flow.c (try_pre_increment): Likewise.
	(find_use_as_address): Likewise.
	* integrate.c (expand_iline_function): Likewise.
	* regmove.c (try_auto_increment): Likewise.

2002-01-16  Graham Stott  <grahams@redhat.com>

	* sched-rgn.c (passed): Use sbitmap_free.
	(header): Likewise.
	(inner): Likewise.
	(in_queue): Likewise.
	(in_stack): Likewise.

2002-01-15  Eric Christopher  <echristo@redhat.com>

	* flow.c (propagate_one_insn): Change to use fatal_insn.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* expmed.c (extract_fixed_bit_field): Remove unused code.
	* system.h: Poison SLOW_ZERO_EXTEND.
	* doc/tm.texi: Remove.
	* config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
	* config/arm/arm.h: Likewise.
	* config/avr/avr.h: Likewise.
	* config/clipper/clipper.h: Likewise.
	* config/convex/convex.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/elxsi/elxsi.h: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/i370/i370.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/pj/pj.h: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.h: Likewise.
	* config/vax/vax.h: Likewise.
	* config/we32k/we32k.h: Likewise.

2002-01-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
	(altivec_lvsl): Change constraint to b.
	(altivec_lvsr): Same.
	(altivec_lvebx): Same.
	(altivec_lvehx): Same.
	(altivec_lvewx): Same.
	(altivec_lvxl): Same.
	(altivec_lvx): Same.
	(altivec_stvx): Add parallel.
	(altivec_stvxl): Same.
	(altivec_stvehx): Same.
	(altivec_stvebx): Same.
	(altivec_stvebx): Same.

2002-01-15  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc: Change altivec.h to altivec-defs.h.

	* config/rs6000/altivec.h: Delete.

	* config/rs6000/altivec-defs.h: Add.

2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
	and UMOD modes.

	* vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
	less than or equal to eight bytes.

	* vax.md (andsi3): Remove constraints and change SET destination
	operand type to nonimmediate_operand.
	(andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
	when it is a CONST_INT.

2002-01-15  Jason Merrill  <jason@redhat.com>

	* c-common.def (FILE_STMT): New code.
	* c-common.c (statement_code_p): It's a statement.
	* c-common.h (stmt_tree_s): Add x_last_filename.
	(FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
	(last_expr_filename): New macro.
	* c-semantics.c (begin_stmt_tree): Initialize it.
	(add_stmt): If the filename changed, also insert a
	FILE_STMT.
	(expand_stmt): Handle seeing one.

2002-01-15  Eric Christopher  <echristo@redhat.com>

	* flow.c (propagate_one_insn): Add error message and print out
	insn for debugging.

2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>

	* system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
	ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
	* config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
	TRAMPOLINE_ALIGNMENT.
	* config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
	to be in bits.
	* config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
	PCC_BITFIELD_TYPE_MATTERS.
	* config/interix.h (STDC_VALUE): Remove.  Use
	STDC_0_IN_SYSTEM_HEADERS.
	* config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
	(ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
	ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.

2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (hppa*-hp-hpux11): --enable-threads does
	not work on this platform currently.

2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-typeck.c (build_unary_op): Don't wrap msgid argument of
	readonly_warning in _().

2002-01-15  Douglas B Rupp  <rupp@gnat.com>

	* gcc.c (delete_if_ordinary): Backout previous change.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	unused operand characters.

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* rtlanal.c: Likewise.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* config/i386/i386.c: Fix formatting.

2002-01-15  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (process_init_element): Don't save_expr
	COMPOUND_LITERAL_EXPR if just its initializer will be used.

2002-01-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
	emit optional traceback table if optimize_size or TARGET_ELF.
	* config/rs6000/rs6000.md (prefetch): New.

2002-01-15  Andreas Jaeger  <aj@suse.de>

	* config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* mips-tfile.c: Fix formatting.

Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Fix previous commit.

2002-01-14  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for
	eq_operator.
	* config/h8300/h8300.c (eq_operator): Remove.

2002-01-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (prefetch): Tidy.
	(prefetch_3dnow): Fix locality operand.

2002-01-14  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.h (HI_AND_FP_REGS): New register class.
	(CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.

2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* reload1.c (reload_combine): Pass reg_sum replacement through
	copy_rtx in loop performing multiple changes.

2002-01-14  Jakub Jelinek  <jakub@redhat.com>

	* except.c (remove_unreachable_regions): New.
	(free_eh_status): Clear exception_handler_labels.
	(convert_from_eh_region_ranges): Call remove_unreachable_regions.
	(find_exception_handler_labels): Don't add the same label more than
	once.
	(remove_exception_handler_label): Don't die if
	find_exception_handler_labels hasn't been called for the current
	function yet.

Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Rebuild jump labels after
	gcse.

2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Move documentation of X86 built-in functions
	here.
	* doc/invoke.texi: From here.
	* doc/sourcebuild.texi: Document location of documentation for
	machine built-in functions.

2002-01-13  Christopher Faylor  <cgf@redhat.com>

	* cppfiles.c (TEST_THRESHOLD): New macro.
	(SHOULD_MMAP): Ditto.
	(read_include_file): Use SHOULD_MMAP macro to decide when mmap should
	be used.

Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Properly handle
	REG_LABEL
	(unroll_loops): Fix LOOP_CONDITION heuristics.

2002-01-14  Geoffrey Keating  <geoffk@redhat.com>

	* doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
	* doc/md.texi (Machine Constraints): Use @minus{} where appropriate.

Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
	threaded loop.

2002-01-14  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.md: Fix typo with sradi.

2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
	movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
	(clrstrdi, clrstrsi): Adapt callers.

	(extendsidi2, zero_extendsidi2): Remove no-conflict blocks.

	(movti splitter): Never use register 0 as base register.

2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* combine.c (simplify_shift_const): Always generate new rtx
	for shift expression instead of reusing given expression.

Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/alpha/alpha.c (alpha_expand_mov): Don't call
	alpha_legitimize_address unless mode is Pmode.

2002-01-13  Geoffrey Keating  <geoffk@redhat.com>

	* doc/md.texi (Modifiers): Document the '*' constraint for the
	user.

	* doc/md.texi (Machine Constraints): Add constraints for xstormy16.
	* doc/extend.texi (Function Attributes): 'interrupt' is valid
	for xstormy16 too.

2002-01-13  Richard Henderson  <rth@redhat.com>

	* reload.c (find_reloads): Use a hard reg destination as reload reg
	for an input reload of the source.

2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Binaries): Make link to ftp.writtenword.com
	more generic.

Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>

	* Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
	* mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.

	* config/alpha/x-vms (USE_COLLECT2): Set to empty.

Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.

2002-01-12  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
	TARGET_POWERPC64.

2002-01-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.

	* doc/invoke.texi: Update Alpha options.

	* doc/invoke.texi: Update i386 built-in function lists.

Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
	referencing outside.

Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* diagnostic.c (warn_deprecated_use): Rework to lower indentation.
	* expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
	offsets, and change line folding.
	* optabs.c (expand_binop): Remove warnings.
	* sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.

2002-01-12  Graham Stott <grahams@redhat.com>

	* attribs.c (handle_deprecated_attribute): constify WHAT.
	* diagnostic.c (warn_deprecated_use): Add braces, fixes
	dangling else warning and constify WHAT.
	* except.h (struct function, struct inline_remap): Move
	struct tag forward defs before all prototypes.
	(duplicate_eh_regions): Whitespace.

2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
	MODE_BASE_REG_CLASS.
	(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.

2002-01-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (override_options): If SSE, enable sse prefetch.
	(ix86_expand_vector_move): New.
	(bdesc_2arg): Remove andps, andnps, orps, xorps.
	(ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
	Remove old prefetch builtins.  Special case the logicals removed above.
	(ix86_expand_builtin): Likewise.
	(safe_vector_operand): Use V4SFmode, not TImode.
	(ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
	(ix86_expand_timode_binop_builtin): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.h (enum ix86_builtins): Update.
	* config/i386/i386.md: Correct predicates on MMX/SSE patterns.
	Use ix86_expand_vector_move in vector move expanders.
	(movti_internal, movti_rex64): Add xorps alternative.
	(sse_clrv4sf): Rename and adjust from sse_clrti.
	(prefetch): Don't work so hard.
	(prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
	* config/i386/xmmintrin.h (__m128): Use V4SFmode.
	(_mm_getcsr, _mm_setcsr): Fix typo in builtin name.

2002-01-11  Richard Henderson  <rth@redhat.com>

	* config/i386/mmintrin.h: New file.
	* config/i386/xmmintrin.h: New file.
	* config.gcc (i?86-*-*): Add extra_headers.
	* simplify-rtx.c (simplify_unary_operation): Handle saturating
	truncation codes.
	(simplify_binary_operation): Handle saturating arithmetic codes.
	* config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
	not the lowpart subreg.
	(ix86_expand_builtin): Return a TImode dummy register instead of 0
	on error.
	* config/i386/i386.md (mmx_clrdi): Override memory attribute.

2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* conflict.c (conflict_graph_compute): Free regsets when finished.
	* ssa.c (compute_coalesced_reg_partition): Likewise.

2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
	every where we allocate a register.

2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
	* lcm.c (compute_earliest, compute_farthest): Likewise.

2002-01-11  Janis Johnson  <janis187@us.ibm.com>

	* expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.

2002-01-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Insns): Fix 2 typos.

2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
	options.  Use @table @gcctabopt for MMIX options.  Add index
	entries for MMIX options.  Start new paragraph with first
	heading of the machine-dependent options.

2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR other/5299
	* config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
	* combine.c (force_to_mode): Same.
	* reload1.c (clear_reload_reg_in_use): Same.

2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
	and 'subtargets'.

2002-01-11  Andreas Jaeger  <aj@suse.de>,
	    Brad Lucier <lucier@math.purdue.edu>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
	mcpu.

Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
	Protect with IN_LIBGCC.
	(LINK_EH_SPEC): Add required trailing space.

Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* c-tree.h: Move function declarations so that they are listed
	under the filename which contains them.
	(check_identifier, finish_decl_top_level,
	lookup_name_current_level_global, shadow_record_fields): Remove.

2002-01-11  Andreas Jaeger  <aj@suse.de>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
	march.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (print_operand): Add 'J'.
	* config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
	new operand with the sequence number for the lituse.  When splitting
	the insns, use gen_movdi_er_high_g and generate a sequence number.
	(gen_movdi_er_high_g): Print the sequence number if nonzero.

2002-01-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Add support for
	lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
	stvxl.
	(altivec_expand_builtin): Same.
	(altivec_expand_stv_builtin): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Same.

	* config/rs6000/rs6000.md ("altivec_lvebx"): New.
	("altivec_lvehx"): New.
	("altivec_lvewx"): New.
	("altivec_lvxl"): New.
	("altivec_lvx"): New.
	("altivec_stvx"): New.
	("altivec_stvebx"): New.
	("altivec_stvehx"): New.
	("altivec_stvewx"): New.
	("altivec_stvxl"): New.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
	* reload1.c (delete_output_reload): Zap spill_reg_store.  Take
	care not to delete instructions twice.

2002-01-10  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Don't declare environ (it's not used anywhere).
	* configure.in: Don't check for declaration of environ.
	* config/i386/xm-mingw32.h: Don't #define environ.
	* config.in, configure: Regenerate.

2002-01-10  Zack Weinberg  <zack@codesourcery.com>

	* configure.in: Set stage1_cflags for powerpc-*-darwin*.
	* configure: Regenerate.

	* config/interix.h: Set DO_GLOBAL_CTORS_BODY and
	DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
	* config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
	alpha/xm-vms.h.
	* config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
	LIMITS_H_TEST here, not in m68k/x-next.
	* config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
	SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.

	* config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
	LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
	* config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.

	* config/i386/x-djgpp: Renamed i386/t-djgpp.
	* config/m88k/x-dolph: Renamed m88k/t-dolph.
	* config/m88k/x-texXD88: Renamed m88k/t-texXD88.
	* config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
	replacement of quadlib.asm with quadlib.c.

	* config/x-interix3, config/xm-interix.h, config/i386/x-beos,
	config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
	config/rs6000/xm-beos.h: Delete file.

	* config.gcc: Update to match above changes.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix comment typos.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-01-10  Dale Johannesen  <dalej@apple.com>

	PR optimization/5269
	* unroll.c (precondition_loop_p): Make *increment be the correct
	sign when n_iterations known, to avoid confusing caller.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* doc/extend.texi (deprecated): Fix a typo.

Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (update_br_prob_note): Declare.
	* cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
	(try_forward_edges): Care negative frequencies and update note.
	(outgoing_edges_match): Tweek conditional merging heuristics.
	(try_crossjump_to_edge): use update_br_prob_note.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* cfrtl.c (update_br_prob_note): New.
	* ifcvt.c (dead_or_predicable): Call update_br_prob_note.

	* i386.c (ix86_decompose_address): Return -1 if address contains
	shift.
	(legitimate_address_p): Require ix86_decompose_address to return 1.

	* gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
	(cprop_insn): Likewise.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* toplev.c: Fix formatting.
	* tree.c: Likewise.
	* tree-dump.c: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-sjlj.c: Likewise.

2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Document PDP-11 options.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.

2002-01-10  Ira Ruben	<ira@apple.com>

	Add __attribute__ ((deprecated)).
	* extend.texi: Document __attribute__ ((deprecated)).
	* invoke.texi: Document -Wno-deprecated-declarations.
	* testsuite/g++.dg/other/deprecated.C: New C++ test.
	* testsuite/gcc.dg/deprecated.c: New C test.
	* attribs.c (enum attrs): Declare handle_deprecated_attribute().
	(c_common_attribute_table): Add "deprecated" entry.
	(handle_deprecated_attribute): New function.
	* c-decl.c (deprecated_states): New enum.
	deprecated_state: State of "deprecated" handling.
	(start_decl): Set deprecated_state based on attributes.
	(grokdeclarator): Test for deprecated uses, propagate attribute.
	* c-typeck.c (build_component_ref): Test for deprecated fields.
	(build_external_ref): Test for deprecated primaries.
	* diagnostic.c (warn_deprecated_use) New function to issue
	warnings about __attribute__ ((depricated)) references.
	* flags.h (warn_deprecated_decl): Extern declared for
	-W[no-]deprecated-declarations option.
	* print-tree.c (print_node): Show deprecated flag status.
	* toplev.c (warn_deprecated_decl): Defined.
	(W_options): Added "deprecated-declaration".
	* toplev.h (warn_deprecated_use): Extern declared.
	* tree.h (struct tree_common): Define deprecated_flag.
	(TREE_DEPRECATED): New macro to access flag.
	* cp/call.c (build_call): Test for deprecated calls.
	* cp/class.c (add_implicitly_declared_members): Set global
	flag to tell grokdeclarator to not issue deprecated warnings.
	* cp/cp-tree.h: Add extern for adding_implicit_members.
	* cp/decl.c (deprecated_states): New enum.
	(start_decl): Set deprecated_state based on attributes.
	(grokdeclarator): Test for deprecated uses, propagate attribute.
	* cp/lex.c (do_identifier): Test for deprecated primaries.
	* cp/typeck.c (build_component_ref): Test for deprecated fields.

2002-01-10  Ira Ruben	<ira@apple.com>

	Fix to assign attributes to inline member functions.
	* cp/decl.c (start_method): Handle attrlist.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* combine.c (expand_field_assignment): Use subreg_lsb().

2002-01-10  David Edelsohn  <edelsohn@gnu.org>

	* alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
	POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
	(find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
	Recurse for any operand of AND as long as constant is nonzero.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove constraints from expanders.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* varasm.c: Fix formatting.
	* varray.c: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.c: Likewise.

Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
	update edge probabilities to match.

2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>

	* Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
	dependencies.
	* doc/languages.texi, doc/sourcebuild.texi: New files.
	* doc/configfiles.texi: Make a subsubsection.  Update.
	* doc/configterms.texi: Add @node.  Remove warning that this isn't
	instructions for building GCC.
	* doc/makefile.texi: Make a subsection.
	* doc/gccint.texi: Update.

Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_mov?fcc_const0_?): Fix constraints.

Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/cpp.texi: Document the __OBJC__ preprocessor macro.

Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>

	* optabs.c (expand_fix): Look for wider integer modes first.

	* i386.md (mov?f): Avoid the fake const double trick for medium
	memory model.
	(min?f*/max?f*): Prohibit memory operands for i387 variant.
	(fop_df_4): Disable for SSE compilation.

2002-01-10  Graham Stott  <grahams@redhat.com>

	* dwarf2out.c (indirect_string_alloc, output_indirect_string):
	Move prototype into DWARF2_DEBUGGING_INFO conditional block.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Fix typo in mode change check.
	(copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* combine.c (can_combine_p): Fix a comment typo.

2002-01-09  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (s-gencheck, s-options, s-specs): Handle an
	empty list correctly.  Change loop index $t to $f for
	consistency with rest of Makefile.

2002-01-08  Aldy Hernandez  <aldyh@redhat.com>

	* testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
	mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.

	* config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
	mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
	(altivec_init_builtins): Same.
	(altivec_expand_unop_builtin): Return NULL_RTX on error.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_ternop_builtin): Same.
	(bdesc_dst): New.

	* config/rs6000/rs6000.md ("altivec_mtvscr"): New.
	("altivec_vctuxs"): Fix typo.
	("altivec_vnmsubfp"): Same.
	("altivec_dssall"): New.
	("altivec_mfvscr"): New.
	("altivec_dss"): New.
	("altivec_lvsl"): New.
	("altivec_lvsr"): New.
	("altivec_dstt"): New.
	("altivec_dstst"): New.
	("altivec_dststt"): New.
	("altivec_dst"): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
	mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.

2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
	function.
	* config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
	prototype.
	* config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.

2002-01-09  Kazu Hirata  <kazu@hxi.com>

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* regclass.c: Likewise.
	* regrename.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* rtl.c: Likewise.

2002-01-09  Kazu Hirata  <kazu@hxi.com>

	* rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
	to extract items in the expr_list chain.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/vax/vax.c (vax_rtx_cost): Never abort.

	* config/vax/vax.h (REAL_ARITHMETIC): Define.

2002-01-09  Jan Hubicka  <jh@suse.cz>

	* gcse.c (cprop_jump): Delete insn if simplified jump is no-op.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
	Unify code from various alternatives.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* regrename.c (copy_value): Ignore the copy if the source register
	is present in the value chain with a narrower mode.

2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>

	* real.c (c4xtoe, toc4x): Do some special conversion on long doubles
	for the c4x target. Also improve layout.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
	* config/m32r/m32r.md (and ior xor splitters): Swap operands
	to match insn patterns.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
	(copyprop_hardreg_forward_1): Likewise.

2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (decrement_and_branch_until_zero): Change predicate for
	operand 0 from register_operand to reg_or_nonsymb_mem_operand.

2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
	gets undefined. For Darwin.

2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.

2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x/md: Remove extraneous constraints from define_splits.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* regrename.c (copy_value): Ignore overlapping copies.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
	as needed to avoid shared structure.

2002-01-08  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
	H8/300H and H8S.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
	LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
	documentation of obsolete macros.
	* system.h: Poison these macros.
	* config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
	config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
	config/c4x/c4x.h, config/clipper/clipper.h,
	config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
	config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
	config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
	config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
	config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
	config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
	config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
	config/sparc/sparc.h, config/stormy16/stormy16.h,
	config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
	definitions and commented out definitions of obsolete macros.
	* config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
	of MAX_INT_TYPE_SIZE.

2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_preferred_reload_class): Never
	return ADDR_REGS if it isn't a subset of the given class.
	* config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
	FP_REGS, but all superclasses as well.

	* config/s390/s390.c (s390_function_profiler): Fix thinko.

	* config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
	cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
	must not be a const_int.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* Makefile.in (toplev.o): Depend on options.h.
	(gcc.o): Depend on specs.h.

2002-01-08  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (store_expr): Convert VOIDmode constants back to target's
	mode.

2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/invoke.texi: Markup gcc as @command.  Refer to
	http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
	of http://gcc.gnu.org/thanks.html.

2002-01-08  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.md: Add missing int register
	target case to movdf_low.

2002-01-08  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
	except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
	(cppinit.o): Depend on except.h.
	(gencheck.h, options.h, specs.h, s-gencheck, s-options,
	s-specs): New rules.

	* configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
	Don't create specs.h/options.h/gencheck.h here.  Remove
	unnecessary variable settings from last argument of AC_OUTPUT.
	* config.in, configure: Regenerate.
	* intl.c: Hardcode package name as "gcc".

	* cppinit.c: Include except.h.
	(builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
	appropriate.
	* unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
	Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
	(!)USING_SJLJ_EXCEPTIONS.
	* doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
	ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
	OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
	documentation of obsolete macros.
	* system.h: Poison these macros.
	* config/d30v/d30v.h, config/ns32k/encore.h,
	config/stormy16/stormy16.h: Remove definitions and commented out
	definitions of obsolete macros.

Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>

	* objc/objc-act.c (handle_class_ref): Mark the declaration of
	%sobjc_class_ref_%s as used - to prevent unwanted compiler
	warnings.

2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
	* config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
	to insn adjusting stack/frame pointer.
	* config/s390/s390.md (reload_la_64, reload_la_31): Do not
	accept operands that cause the insn to be non-splittable.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
	(C_TYPE_FIELDS_VOLATILE): Likewise.
	(C_TYPE_BEING_DEFINED): Likewise.
	(C_IS_RESERVED_WORD): Likewise.
	(C_TYPE_VARIABLE_SIZE): Likewise.
	(C_DECL_VARIABLE_SIZE): Likewise.
	(C_MISSING_PROTOTYPE_WARNED): Likewise.
	(C_SET_EXP_ORIGINAL_CODE): Likewise.
	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
	parenthesis.
	(C_DECL_ANTICIPATED): Likewise.
	(c_build_type_variant): Add parenthesis.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gcc.c (option_map): Remove --version.
	(process_command): Handle -fversion following the GNU Coding
	Standards.  Partially addresses PR other/704.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* combine.c (combine_instructions): Fix typo.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* debug.h: Use "tree" and "rtx" throughout.

	* debug.c: Likewise.

2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>

	* dbxout.c (dbxout_symbol_location): If a symbol ref is in the
	constant pool, use the pool's version of the symbol instead.

2002-01-07  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Ignore the value chain if
	the original register was copied in a mode with a fewer number of
	hard registers than the desired mode.
	(copyprop_hardreg_forward_1): Likewise.
	(debug_value_data): Fix loop test.
	* toplev.c (parse_options_and_default_flags): Reenable
	-fcprop-registers at -O1.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
	(altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.

	* config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
	predicates.

	* config/rs6000/rs6000.md: Add altivec predicate patterns.

2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
	(pa_output_function_prologue): Output local label at the beginning of
	the prologue when profiling.
	(hppa_profile_hook): Use the local label rather than the function label.
	* pa.h (PROFILE_BEFORE_PROLOGUE): Define.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (print_operand): Remove extra space.
	(altivec_expand_unop_builtin): Fix thinko.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_ternop_builtin): Same.
	(altivec_expand_builtin): Same.

2002-01-07  Richard Henderson  <rth@redhat.com>

	* config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.

2002-01-07  Jason Merrill  <jason@redhat.com>

	* unwind-dw2.c (execute_cfa_program): Use < again.

2002-01-07  Jakub Jelinek  <jakub@redhat.com>

	* predict.c (combine_predictions_for_insn): Avoid division by zero.

2002-01-07  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
	Don't allow -1 - x -> ~x simplifications in the first pass.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
	arguments.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_unop_builtin): Same.
	(print_operand): Fix typo.
	(bdesc_1arg): Add vupk* variants.

	* rs6000.h (rs6000_builtins): Add vupk* enums.

	* rs6000.md: Add altivec_vupk* variants.

2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
	doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
	and last update dates.

2002-01-07  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Flags): Clean up documentation of RTL flags

2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Add new MCU types.
	* config/avr/avr.h (CPP_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.
	* doc/invoke.texi (AVR Options): Document them.

Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
	LABEL_NUSES.

2002-01-07  Graham Stott  <grahams@redhat.com>

	* config/i386/i386.h: Update copyright date.
	(HALF_PIC_PTR): Add parenthesis.
	(OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
	(CONSTANT_ALIGNMENT): Add parenthesis.
	(DATA_ALIGNMENT): Likewise.
	(LOCAL_ALIGNMENT): Likewise.
	(FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
	(IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
	(CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
	(HARD_REGNO_NREGS): Add paranethesis.
	(VALID_SSE_REG_MODE): Whitespace.
	(VALID_MMX_REG_MODE): Whitespace.
	(VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
	(ix86_hard_regno_mode_ok): Add parenthesis.
	(HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
	(RETURN_IN_MEMORY): Whitespace.
	(N_REG_CLASSES): Add parenthesis.
	(INTEGER_CLASS_P): Add parenthesis and wrap.
	(FLOAT_CLASS_P): Likewise.
	(SSE_CLASS_P): Likewise.
	(MMX_CLASS_P): Likewise.
	(MAYBE_INTEGER_CLASS_P): Likewise.
	(MAYBE_FLOAT_CLASS_P): Likewise.
	(MAYBE_SSE_CLASS_P): Likewise.
	(MAYBE_MMX_CLASS_P): Likewise.
	(Q_CLASS_P): Likewise.
	(GENERAL_REGNO_P): Uppercase macro parameter.
	(REX_INT_REGNO_P): Uppercase macro parameter and wrap.
	(FP_REGNO_P): Likewise.
	(ANY_FP_REGNO_P): Uppercase macro parameter.
	(SSE_REGNO_P): Likewise.
	(SSE_REGNO): Likewise.
	(SSE_REG_P): Likewise.
	(SSE_FLOAT_MODE_P): Likewise.
	(MMX_REGNO_P): Likewise.
	(MMX_REG_P):Likewise.
	(STACK_REG_P): Likewise.
	(NON_STACK_REG_P): Likewise.
	(STACK_TOP_P): Likewise.
	(CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
	(PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
	(SECONDARY_MEMORY_NEEDED): Likewise.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
	(MD_ASM_CLOBBERS): Whitespace and wrap.
	(MUST_PASS_IN_STACK): Whitespace and wrap.
	(RETURN_POPS_ARGS): Add parenthesis.
	(INIT_CUMULATIVE_ARGS): Likewise.
	(FUNCTION_ARG): Likewise.
	(FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
	(SETUP_INCOMING_VARARGS): Likewise.
	(BUILD_VA_LIST_TYPE):  Add parenthesis.
	(EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
	parenthsis.
	(EXPAND_BUILTIN_VA_ARG): Likewise.
	(FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
	(INITIALIZE_TRAMPOLINE): Add parenthesis.
	(INITIAL_ELIMINATION_OFFSET): Likewise.
	(REGNO_OK_FOR_INDEX_P): Add parenthesis.
	(REGNO_OK_FOR_BASE_P): Likewise.
	(REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
	(REGNO_OK_FOR_DIREG_P): Likewise.
	(REG_OK_FOR_INDEX_P): Whitespace.
	(REG_OK_FOR_BASE_P): Whitespace.
	(GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
	parenthesis.
	(FIND_BASE_TERM): Fix typo.
	(LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
	(REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
	(SYMBOLIC_CONST; Whitespace.
	(GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
	(ENCODE_SECTION_INFO): Whitespace.
	(FINALIZE_PIC): Remove do { ... } while (0).
	(PROMOTE_MODE): Wrap in do { ... } while (0).
	(CONST_COSTS): Whitespace.
	(RTX_COSTS): Add paramethesis, whitespace and wrap.
	(REGISTER_MOVE_COST): Add parenthesis.
	(MEMORY_MOVE_COST): Likewise.
	(EXTRA_CC_MODES): Whitespace.
	(SELECT_CC_MODE): Add parenthesis and whitespace.
	(DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
	(ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
	(ASM_OUTPUT_LABEL): Add paramethesis.
	(ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
	(ASM_OUTPUT_REG_POP): Likewise.
	(ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.

	* config/i386/i386.c: Update copyright.
	(CHECK_STACK_LIMIT): Add parenthesis.
	(AT_BP): Uppercase macro parameter.
	(x86_64_int_parameter_registers): Constify.
	(x86_64_int_return_registers): Likewise.
	(ix86_compare_op0): Use rtx.
	(construct_container): Constify INTREG parameter.
	(function_arg): Use rtx.

	* diagnostic.h: Update copyright date.
	(output_buffer_state): Add parenthesis.
	(output_buffer_format_args): Likewise.

	* combine.c (combine_instructions): Replace XEXP (links, 0)
	with link.

2002-01-06  H.J. Lu <hjl@gnu.org>

	* cfgcleanup.c (thread_jump): Fix 2 typos.

2002-01-06  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc: Add support for --enable-altivec.

2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* emit-rtl.c (gen_highpart): Add check for NULL_RTX.

2002-01-06  Jakub Jelinek  <jakub@redhat.com>

	* objc/objc-act.c (handle_impent): Use assemble_variable to emit
	__objc_class_name_*.

2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (sparcv9-*-solaris2*): Add documentation.

2002-01-06  Richard Henderson  <rth@redhat.com>

	* reorg.c (emit_delay_sequence): Remove death notes, not merely
	nop them out.  Increment label reference count for REG_LABEL.
	(fill_slots_from_thread): Frob label reference count around
	delete_related_insns.

2002-01-05  Richard Henderson  <rth@redhat.com>

	* cfgcleanup.c (try_forward_edges): Detect infinite loops while
	jump threading.

2002-01-05  Richard Henderson  <rth@redhat.com>

	* c-decl.c (c_expand_body): Don't call outlining_inline_function.
	* integrate.c (output_inline_function): Likewise.
	* toplev.c (rest_of_compilation): Do it here instead.  Move call
	to remove_unnecessary_notes after emitting abstract instance.
	Force an emitted nested function to have its parent emited as well.
	* dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
	for null.
	(rtl_for_decl_location): Do not look at reload data structures
	before reload has run.

2002-01-05  Kazu Hirata  <kazu@hxi.com>

	* cse.c: Fix formatting.
	* dwarf2asm.c: Likewise.
	* dwarf2out.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* function.c: Likewise.
	* gcov.c: Likewise.
	* gencheck.c: Likewise.
	* genrecog.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc-page.c: Likewise.
	* global.c: Likewise.

2002-01-05  Kazu Hirata  <kazu@hxi.com>

	* combine.c: Fix formatting.

2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>

	PR middle-end/1557
	* config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.

2002-01-05  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
	as 1 for __powerpc64__ as well.

	* config/rs6000/t-aix43 (T_ADAFLAGS): Define.

	* alias.c (find_base_value, PLUS/MINUS): If we found a base,
	return it.

2002-01-05  Daniel Berlin  <dan@dberlin.org>

	* lcm.c: Revert change, due to performance regression it causes on
	SPEC because it's slightly more conservative (sigh, I hate
	edge-based LCM).

Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Allow multiple jump threading.

2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/cppinternals.texi: Update.

2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* doc/invoke.texi (Option Summary) <MMIX Options>: Document
	-mbranch-predict, -mreg-stack-fill-bug-workaround and their
	negatives.
	(MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
	kludge for pre-october-14th mmix versions to handle new-found bug
	with PUSHJ/PUSHGO and the register stack.
	* config/mmix/mmix.h (struct machine_function): Rename member
	has_call_value_without_parameters to has_call_without_parameters.
	All referers changed.
	(TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
	TARGET_MASK_BRANCH_PREDICT): New macros.
	(TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
	-mno-reg-stack-fill-bug-workaround.
	* config/mmix/mmix.md ("call"): Set struct machine member
	has_call_without_parameters.

Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (thread_jump): Fix handling of reversed branches.

Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c: Include tm_p.h
	(mark_effect): Fix handling of hard register; fix handling of SET

2002-01-04  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (anonymous patterns): Check that
	operands are registers before using REGNO on them.

2002-01-03  Roland McGrath  <roland@frob.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.

2002-01-04  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (expand_expr_stmt_value): Add maybe_last argument.
	* c-common.h (genrtl_expr_stmt_value): Likewise.
	* stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
	(expand_expr_stmt_value): Add maybe_last argument.
	Don't warn about statement with no effect if it is the last statement
	in expression statement.
	* c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
	(genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
	expand_expr_stmt_value.
	(expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
	genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
	* expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
	as maybe_last to expand_expr_stmt_value.

Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)

	* c-common.c (c_expand_start_cond): Expect the IF_STMT node to
	be passed in, do not build it.
	(c_begin_if_stmt): New function.
	(c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
	* c-common.h (c_expand_start_cond): Update prototype.
	(c_begin_if_stmt): Prototype new function.
	(c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
	* c-parse.in (if_prefix): Use c_begin_if_stmt,
	c_begin_while_stmt and c_finish_while_stmt_cond.

2002-01-04  William Cohen  <wcohen@redhat.com>

	* config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
	* config/pa/pa-linux.h (ASM_FILE_START): Likewise.
	* config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
	* config/pa/som.h (ASM_FILE_START): Likewise.

2002-01-04  Daniel Berlin  <dan@cgsoftware.com>

	* lcm.c: Include df.h.
	Add available_transfer_function prototype.
	(compute_available): Rework to use iterative dataflow framework.
	(struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
	with bb_info in df.h
	(available_transfer_function): New function.

	* Makefile.in (lcm.o): add df.h to dependencies.

2002-01-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_operand): Accept HIGH.
	(input_operand): Likewise; accept simple references to globals.
	(alpha_const_ok_for_letter_p): New, outlined from alpha.h.
	(alpha_const_double_ok_for_letter_p): Likewise.
	(alpha_extra_constraint): Likewise.
	(alpha_preferred_reload_class): Likewise.  Do not force
	symbolic constants to memory.
	(alpha_legitimate_address_p): Accept simple references
	to small_symbolic_operand.
	(alpha_legitimize_address): New arg scratch.  Be prepared to be
	called when no_new_pseudos.  Emit simple symbolic references.
	Split integers into low, high, and rest.
	(alpha_expand_mov): Use alpha_legitimize_address.
	(some_small_symbolic_mem_operand): New.
	(split_small_symbolic_mem_operand): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
	(EXTRA_CONSTRAINT): Likewise.
	(PREFERRED_RELOAD_CLASS): Likewise.
	(LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md: New post-reload splitters to convert
	simplfied symbolic operands to the form that references $29.
	(divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
	(movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.

2002-01-03  Richard Henderson  <rth@redhat.com>

	* local-alloc.c (function_invariant_p): Update commentary.

2002-01-04  H.J. Lu <hjl@gnu.org>

	* toplev.c (rest_of_compilation): Fix a typo when calling
	cleanup_cfg.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* c-common.c: Fix formatting.
	* diagnostic.c: Likewise.
	* doloop.c: Likewise.
	* dwarf2out.c: Likewise.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
	of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.

2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c: Update comments and copyright.
	* cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
	cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.

2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* collect2.c (main): Use strcmp when testing for "-shared".

2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppmacro.c: Don't include intl.h.  Update comments.
	(new_number_token): Allocate enough buffer for 64-bit unsigned
	integers; update prototype.
	* cppmain.c: Update comments.

2002-01-03  William Cohen  <wcohen@redhat.com>

	* function.h (struct function): Add profile.
	(current_function_profile): New.
	doc/extend.texi: Update documentation.
	* final.c (final_start_function): Use current_function_profile
	instead of profile_flag.
	(profile_after_prologue): Likewise.
	* function.c (expand_function_start): Likewise.
	(expand_function_start): Likewise.
	* config/alpha/alpha.c (direct_call_operand):
	(alpha_does_function_need_gp): Likewise.
	(alpha_expand_prologue): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	thumb_expand_prologue: Likewise.
	* config/d30v/d30v.c (d30v_stack_info): Likewise.
	* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
	(fr30_expand_prologue): Likewise.
	* config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
	* config/i386/i386.h (FINALIZE_PIC): Likewise.
	* config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i960/i960.c (i960_output_function_prologue): Likewise.
	* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
	* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
	(m32r_expand_prologue): Likewise.
	* config/m88k/m88k.c (m88k_layout_frame): Likewise.
	(m88k_expand_prologue): Likewise.
	* config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
	* config/mips/mips.c (compute_frame_size): Likewise.
	(mips_expand_prologue): Likewise.
	(mips_can_use_return_insn): Likewise.
	* config/pa/elf.h (ASM_FILE_START): Likewise.
	* config/pa/pa-linux.h (ASM_FILE_START): Likewise.
	* config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
	* config/pa/som.h (ASM_FILE_START): Likewise.
	* config/romp/romp.c (romp_using_r14): Likewise.
	* config/rs6000/rs6000.c (first_reg_to_save): Likewise.
	(rs6000_stack_info): Likewise.
	* config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
	* config/v850/v850.c (compute_register_save_size): Likewise.

2002-01-03  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_binary_operation) [DIV]: If
	gen_lowpart_common fails, use gen_lowpart_SUBREG.

2002-01-03  Turly O'Connor  <turly@apple.com>

	* darwin.c (machopic_output_possible_stub_label): Don't generate
	stub routines for pseudo-stubs which we've just defined.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* builtins.c: Fix formatting.
	* c-typeck.c: Likewise.
	* combine.c: Likewise.
	* expr.c: Likewise.
	* loop.c: Likewise.

2002-01-03  Andreas Schwab  <schwab@suse.de>

	* cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
	and return true if _cpp_push_next_buffer pushed a new include
	file.
	* cpplib.c (_cpp_pop_buffer): Only call obstack_free if
	_cpp_pop_file_buffer did not push a new file.
	* cpphash.h (_cpp_pop_file_buffer): Update declaration.

2002-01-02  Eric Christopher  <echristo@redhat.com>

	* final.c (final_scan_insn): Change 0 -> NULL_RTX in
	FIND_REG_INC_NOTE call. Update copyright.
	* loop.c (canonicalize_condition): Ditto.
	* reorg.c (delete_scheduled_jump): Ditto.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* gcse.c: Fix formatting.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
	forward defs for struct tags rtx_def, union_tree, rtvec_def
	also output corresponding typedefs for rtx, tree, and rtvec.

	* system.h: Move forward defs for struct tags rtx_def, union_tree,
	rtvec_def along with corresponding typedefs for rtx, tree, and
	rtvec to config.h, hconfig.h, tconfig.h.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* tree.h: Update copyright date.
	(IS_EXPR_CODE_CLASS): Add parenthesis.
	(TREE_SET_CODE): Add whitespace.
	(TREE_CHECK): Add parenthesis.
	(TREE_CLASS_CODE): Add parenthesis and wrap long line.
	(CST_OR_CONSTRUCTOR_CHECK):
	(EXPR_CHECK): Add parenthis, whitespace and wrap line.
	(TREE_SYMBOL_REFERENCED): Whitespace.
	(INT_CST_LT): Likewise.
	(INT_CST_LT_UNSIGNED): Likewise.
	(tree_real_cst): Unwrap comment.
	(tree_string): Likewise.
	(tree_complex): Likewise.
	(IDENTIFIER_POINTER): correct cast.
	(SAVE_EXPR_CONTEXT): Whitespace.
	(EXPR_WFL_FILENAME_NODE): Likewise.
	(EXPR_WFL_FILENAME): Remove parenthesis.
	(DECL_ORIGIN): Add parenthesis.
	(DECL_FROM_INLINE): Use NULL_TREE.
	(build_int_2): Whitespace.
	(build_type_variant): Add parenthesis.

	* gcc/jcf-parse.c: Update copyright date.
	(yyparse): Constify resource_filename.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* rtl.h: Update copyright date.
	(RTL_CHECK1): Wrap long line.
	(RTL_CHECK2): Likewise.
	(RTL_CHECKC1): Wrap long line and whitespace.
	(RTL_CHECKC2): Likewise.
	(XWINT): Whitespace.
	(XINT): Likewise.
	(XSTR): Likewise.
	(XEXP): Likewise.
	(XVEC): Likewise.
	(XMODE): Likewise.
	(XBITMAP): Likewise.
	(XTREE): Likewise.
	(XBBDEF): Likewise.
	(XTMPL): Likewise.
	(X0WINT): Likewise.
	(X0INT):Likewise.
	(X0UINT): Likewise.
	(X0STR): Likewise.
	(X0EXP): Likewise.
	(X0VEC): Likewise.
	(X0MODE): Likewise.
	(X0BITMAP): Likewise.
	(X0TREE): Likewise.
	(X0BBDEF): Likewise.
	(X0ADVFLAGS): Likewise.
	(X0CSELIB): Likewise.
	(X0MEMATTR): Likewise.
	(XCWINT): Likewise.
	(XCINT): Likewise.
	(XCUINT): Likewise.
	(XCSTR): Likewise.
	(XCEXP): Likewise.
	(XCVEC): Likewise.
	(XCMODE): Likewise.
	(XCBITMAP): Likewise.
	(XCTREE): Likewise.
	(XCBBDEF): Likewise.
	(XCADVFLAGS): Likewise.
	(XCCSELIB): Likewise.
	(XC2EXP): Likewise.
	(INSN_UID): Likewise.
	(PREV_INSN): Likewise.
	(PATTERN): Likewise.
	(INSN_CODE): Likewise.
	(PUT_REG_NOTE_KIND): Likewise.
	(CODE_LABEL_NUMBER): Likewise.
	(NOTE_SOURCE_FILE): Likewise.
	(NOTE_BLOCK): Likewise.
	(NOTE_EH_HANDLER): Likewise.
	(NOTE_RANGE_INFO): Likewise.
	(NOTE_LIVE_INFO): Likewise.
	(NOTE_BASIC_BLOCK): Likewise.
	(NOTE_EXPECTED_VALUE): Likewise.
	(NOTE_LINE_NUMBER): Likewise.
	(LABEL_NAME): Likewise.
	(LABEL_NUSES): Likewise.
	(LABEL_ALTERNATE_NAME): Likewise.
	(ADDRESSOF_DECL): Likewise.
	(JUMP_LABEL): Likewise.
	(LABEL_NEXTREF): Likewise.
	(REGNO): Likewise.
	(ORIGINAL_REGNO: Likewise.
	(HARD_REGISTER_NUM_P): Add parenthesis.
	(SUBREG_REG): Whitespace.
	(SUBREG_BYTE): Likewise.
	(ASM_OPERANDS_TEMPLATE): Remove parenthesis.
	(ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
	(ASM_OPERANDS_OUTPUT_IDX): Likewise.
	(ASM_OPERANDS_INPUT_VEC): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
	(ASM_OPERANDS_INPUT): Likewise.
	(ASM_OPERANDS_INPUT_LENGTH): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
	(ASM_OPERANDS_INPUT_MODE): Likewise.
	(ASM_OPERANDS_SOURCE_FILE): Likewise.
	(ASM_OPERANDS_SOURCE_LINE): Likewise.
	(MEM_SET_IN_STRUCT_P): Minor reformat.
	(TRAP_CONDITION): Whitespace.
	(TRAP_CODE): Likewise.
	(COND_EXEC_TEST): Likewise.
	(COND_EXEC_CODE): Likewise.
	(FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
	(PHI_NODE_P): Add parenthesis.
	(plus_constant): Whitespace and add parenthesis.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* config/avr/avr.c: Fix comment typos.
	* config/c4x/c4x.md: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/dsp16xx/dsp16xx.md: Likewise.
	* config/i386/i386.md: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68hc11/m68hc11.md: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10200/mn10200.c: Likewise.
	* config/romp/romp.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/stormy16/stormy16.md: Likewise.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* loop.h: Update copyright date.
	(LOOP_MOVABLES): Fix typo.
	(LOOP_REGS): Likewise.
	(LOOP_IVS): Likewise.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* cppinit.c: Update copyright date.
	Don't include output.h
	* Makefile.in: Update copyright date.
	Update dependency.

2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR c/5226
	* invoke.texi (-mthreads): Remove from documented RS/6000 options.
	(-pthread) Add to RS/6000 options.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* except.c: Fix comment typos.
	* loop.c: Likewise.
	* varasm.c: Likewise.
	* doc/tm.texi: Fix a typo.

2002-01-02  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (output_init_element): Allow initializing static storage
	duration objects with compound literals.

2002-01-02  Richard Henderson  <rth@redhat.com>

	* objc/objc-act.c (hack_method_prototype): Clear current_function_decl
	after abusing it.

2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcc.c (default_compilers): Const-ify.
	* mips-tdump.c (stab_names): Likewise.
	* mips-tfile.c (map_coff_types, map_coff_storage,
	map_coff_sym_type, map_coff_derived_type, stabs_symbol,
	pseudo_ops_t, pseudo_ops): Likewise.
	* protoize.c (default_include): Likewise

	* real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
	(ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
	Add array size in declaration.
	(endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
	emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
	esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
	etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
	eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
	efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
	c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
	emtens, make_nan): Const-ify.
	(TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
	DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.

2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* config.gcc (ia64-*-*): Set extra_headers.
	(alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
	* config/alpha/t-osf: Remove.
	* config/ia64/t-ia64 (EXTRA_HEADERS): Remove.

2002-01-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43: Revert previous change.

2002-01-02  Jason Merrill  <jason@redhat.com>

	* c-decl.c (c_expand_body): Call outlining_inline_function when
	emitting an inline function out of line.

2002-01-02  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (limbo_die_node): Add created_for member.
	(new_die): New argument created_for.  Update all callers.
	(mark_limbo_die_list): New.
	(dwarf2out_init): Register limbo_die_list as a root.
	(dwarf2out_finish): Force insert limbo dies into their function
	context.

2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/5089
	* doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/fixunssfsi.c: Update copyright.
	Fix comment typos.
	Fix formatting.
	* config/h8300/h8300.c: Update copyright.
	Eliminate warnings.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* config/romp/romp.c: Fix comment formatting.
	* config/romp/romp.h: Likewise.
	* config/romp/romp.md: Likewise.
	* config/s390/s390.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.

2002-01-02  Alexandre Oliva  <aoliva@redhat.com>

	* c-common.h (genrtl_expr_stmt_value): Declare.
	* c-semantics.c (genrtl_goto_stmt): Redirect to...
	(genrtl_goto_stmt_value): ... this new function.  Pass new
	argument down to expand_expr_stmt_value, taking
	TREE_ADDRESSABLE into account.
	* c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
	STMT_EXPR as addressable, i.e., one whose result we want.
	* expr.c (expand_expr): Don't save expression statement value
	of labeled_blocks or loop_exprs.
	* stmt.c (expand_expr_stmt): Redirect to...
	(expand_expr_stmt_value): ... this new function.  Use new
	argument to tell whether to save expression value.
	(expand_end_stmt_expr): Reset last_expr_type and
	last_expr_value if we don't have either.
	* tree-inline.c (declare_return_variable): Mark its use
	statement as addressable.
	* tree.h: Document new use of TREE_ADDRESSABLE.
	(expand_expr_stmt_value): Declare.

2002-01-01  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
	rs6000_emit_allocate_stack.

2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
	${srcdir}/ginclude/ to every entry in extra_headers.
	* configure: Regenerate.
	* ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
	* ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
	* ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
	* ginclude/proto.h: Rename to config/convex/proto.h.

Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* attribs.c (handle_vector_size_attribute): Use host_integerp
	and tree_int_cst; remove warnings.
	* caller-save.c (insert_restore): Add cast to get rid of warning.
	(insert_save): Likewise.
	* emit-rtl.c (adjust_address_1, offset_address): Likewise.
	* regmove.c (find_matches): Add temporary var to kill a warning.

2002-01-01  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
	LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
	(vms-dwarf2eh.o): Add Makefile rule.
	* config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
	* config/alpha/vms-dwarf2eh.asm: New file.

	* gcc.c (delete_if_ordinary): Delete all versions.

2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md: Update FIXME to not mention
	define_constants.
	(MMIX_rJ_REGNUM): New define_constants constant.
	("movqi", "movsi", "movdi", "*movdicc_real_foldable",
	"*movdicc_real"): Adjust contraints formatting.
	("*bCC_foldable"): Add %+ for P in output format and delete FIXME
	for branch prediction.
	("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
	output template.
	("*call_real", "*call_value_real", "nonlocal_goto_receiver",
	"*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
	number.  Delete related FIXMEs.
	* config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
	from number to MMIX_rJ_REGNUM.
	(TARGET_MASK_BRANCH_PREDICT): New.
	(TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
	(TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
	value.  Add -mbranch-predict and -mno-branch-predict.
	(TARGET_VERSION): Drop date.
	(ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
	* config/mmix/mmix.c (mmix_encode_section_info): Correct condition
	for finding out global symbols.
	(mmix_asm_output_labelref): Revert condition for global symbol.
	(mmix_print_operand): <case '+'>: Emit P for a likely branch.
	(mmix_print_operand_punct_valid_p): A '+' is valid.
