OSDN Git Service

* config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog.3
index 346311a..52df960 100644 (file)
-Fri Jul 19 18:56:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-06-30  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
+       * c-common.c (ridpointers): Declare.
+       * c-common.h (enum rid): Declare.
+       (NORID): Likewise.
+       (ridpointers): Likewise.
+       * c-lex.c (ridpointers): Don't declare.
+       (init_lex): Initialize ridpointers.
+       * c-lex.h (enum rid): Don't declare.
+       (NORID): Likewise.
+       (RID_FIRST_MODIFIER): Likewise.
+       (ridpointers): Likewise.
+
+2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
+       have global scope.
+
+2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
+
+       * invoke.texi (-Wreturn-type): In C++, a missing return type is
+       always an error.
+
+2000-06-30  Catherine Moore  <clm@cygnus.com>
 
-       * cse.c (canon_reg): Allow for recursive call returning 0 (if we had
-       an EXPR_LIST).
-       * sched.c (init_aliases_analysis): Ignore REG_EQUAL note when its value
-       is an EXPR_LIST.
-       * unroll.c (loop_iterations): Likewise.
+       * c-common.c (decl_attributes):  Differentiate between
+       types and type decls for alignment.
 
-       * rs6000.md (andsi3): Fix typo in and-with-cc pattern.
+2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
 
-Fri Jul 19 11:23:22 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * cpp.texi: Document #pragma GCC dependency
+       * cppfiles.c (open_include_file): Set date to unknown.
+       (_cpp_compare_file_date): New function.
+       (read_include_file): Set file date.
+       * cpphash.h (struct include_file): Add date member.
+       (_cpp_compare_file_date): Prototype.
+       * cpplib.c (parse_include): Add trail parameter. Adjust.
+       (do_include): Adjust parse_include call.
+       (do_import): Likewise.
+       (do_include_next): Likewise.
+       (gcc_pragmas): Add dependency pragma.
+       (do_pragma_dependency): New pragma.
+
+2000-06-29  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2out.c (output_loc_operands): Don't abort on codes that have
+       no operands.
+
+2000-06-29  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
+       a volatile mem and FR_REGS.
+
+2000-06-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
+       * c-common.h (flag_const_strings): Declare.
+       (warn_format): Likewise.
+       (flag_traditional): Likewise.
+       (flag_isoc99): Likewise.
+       (warn_parentheses): Likewise.
+       (warn_conversion): Likewise.
+       (C_TYPE_OBJECT_P): Likewise.
+       (C_TYPE_INCOMPLETE_P): Likewise.
+       (C_TYPE_FUNCTION_P): Likewise.
+       (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
+       (C_EXP_ORIGINAL_CODE): Likewise.
+       (build_unary_op): Likewise.
+       (build_binary_op): Likewise.
+       (lvalue_p): Likewise.
+       (default_conversion): Likewise.
+       (common_type): Likewise.
+       * c-tree.h (C_TYPE_OBJECT_P): Remove.
+       (C_TYPE_INCOMPLETE_P): Likewise.
+       (C_TYPE_FUNCTION_P): Likewise.
+       (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
+       (C_EXP_ORIGINAL_CODE): Likewise.
+       (common_type): Likewise.
+       (default_conversion): Likewise.
+       (build_binary_op): Likewise.
+       (build_unary_op): Likewise.
+       (lvalue_p): Likewise.
+       (flag_const_strings): Likewise.
+       (warn_format): Likewise.
+       (warn_conversion): Likewise.
+       (flag_traditional): Likewise.
+       (flag_isoc99): Likewise.
+       (warn_parentheses): Likewise.
+
+2000-06-29  James E. Wilson  <wilson@cygnus.com>
+
+       * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
+
+       * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
+       same.  Only tie XFmode with XFmode.
+
+2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-decl.c, timevar.c, tlink.c: Include intl.h.
+       * Makefile.in: Update deps.
+
+2000-06-29  Andrew Haley  <aph@cygnus.com>
+
+       * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
+       to true.
+
+2000-06-29  Andrew Haley  <aph@cygnus.com>
+
+       * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
+       bytes: remove the multiply by 8.
+
+2000-06-29  Philipp Thomas  <pthomas@suse.de>
 
-       * toplev.c (set_target_switch): For TARGET_OPTIONS, set the
-       variable to the variable part of the actual option.
-       * tm-m88k.h, out-m88k.c: Change the use of m88k_short_data.
+       * rtl.c : Revert NLS changes.
+       * gcc.c : Fix bug in display_help introced by my last changes.
+
+Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
+
+       * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
+       DECL_CONTEXT, not DECL_FIELD_CONTEXT.
+
+2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * flow.c (flow_depth_first_order_compute): Fix algorithm.
+
+2000-06-28  Philipp Thomas  <pthomas@suse.de>
+
+       * c-decl.c : Mark strings for translation.
+       (parmlist_tags_warning): Use distinct messages instead
+       of conditional expressions.
+       * diagnostic.c (v_message_with_decl): Mark string for translation.
+       * gcc.c: Mark messages for translation.
+       (display_help): Combine messages into one string where necessary.
+       * mips-tfile: Add intl.h. Mark messages for translation.
+       * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
+       messages for translation.
+       * timevar.c: Mark messages for translation.
+       * tlink.c: Likewise.
+       * toplev.c: Likewise.
+
+Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
+
+       * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
+
+       * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
+       use -isystem instead of -idirafter.
+       * i386/i386-interix.h: Likewise.
+
+2000-06-28  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2out.c (output_loc_operands): Don't support >1 byte output
+       unless DWARF2_DEBUGGING_INFO is defined.
+       (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
+
+2000-06-28  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
+
+2000-06-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * cpplex.c (output_line_command): Output correct #line if a header
+       is including itself and is not protected against multiple inclusion.
+
+2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (open_include_file): If open(2) returns EMFILE or
+       ENFILE, close all cached file descriptors and try again.
+       (_cpp_execute_include): Keep a count of the number of times
+       each header is included.
+       (close_cached_fd): New function.
+       * cpphash.h (struct include_file): Rename before to
+       include_count; all users updated.  Make include_count and sysp
+       unsigned short.
+       * cppinit.c (cpp_finish): If -H, report headers that could use
+       reinclude guards.
+       (report_missing_guard): New function.
+
+Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (prologue_set_got): Set length_immediate field.
+       (testqi_ccno_1):  Add missing '@' character.
+
+2000-06-27  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
+       DWARF_FRAME_REGNUM.
+
+2000-06-27  Andrew Macleod <amacleod@cygnus.com>
+
+       * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
+       unsigned macros available.
+
+2000-06-27  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.c (emit_insn_group_barriers): Special case
+       epilogue_deallocate_stack.
+
+       * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
+       completers for UNORDERED and ORDERED as well.
+       * config/ia64/ia64.md (bunordered, bordered): New.
+       (sunordered, sordered): New.
+
+Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
+       * i386.c (ix86_attr_length_default): Kill.
+       (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
+       New.
+       * i386-protos.h (ix86_attr_length_default): Kill
+       (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
+       Add prototype
+       * i386.md (attribute type): Add "test".
+       (attribute length_prefix): Kill.
+       (attribute length_opcode): Kill.
+       (attribute i387, mode, length_immediate, length_address, prefix_data16,
+       prefix_rep, prefix_0f, modrm): New.
+       (attribute length): Compute using the new attributes.
+       (attribute pent_prefix): New.
+       (attribute pent_pair): Compute using pent_prefix.
+       (all insn patterns): Set mode,modrm and immediate_length attributes where
+       needed.
+       (cmpsi patterns): Compute sizes properly for test instruction.
+       (movsi, movhi patterns): Compute sizes properly for eax shortcuts.
+       (movstricthi_xor, movstrictqi_xor): New patterns.
+       (andsi/andhi): Use splitters to generate xor instructions.
+       (xorqi_ext_1): New pattern.
+       (movstricthi->movstricthi_xor peep2): New.
+
+Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (addqi_low_1): Remove.
+
+2000-06-27  Philipp Thomas  <pthomas@suse.de>
+
+       * 1750a.h: Mark help strings for options/switches for translation.
+       * a29k.h: Likewise.
+       * alpha.h: Likewise.
+       * arm.h: Likewise.
+       * pe.h: Likewise.
+       * riscix.h: Likewise.
+       * c4x.h: Likewise.
+       * clipper.h: Likewise.
+       * convex.h: Likewise.
+       * elxsi.h: Likewise.
+       * fr30.h: Likewise.
+       * fx80.h: Likewise.
+       * h8300.h: Likewise.
+       * i370.h: Likewise.
+       * cygwin.h: Likewise.
+       * dgux.h: Likewise.
+       * djgpp.h: Likewise.
+       * i386.h: Likewise.
+       * osf1elf.h: Likewise.
+       * osfrose.h: Likewise.
+       * sco5.h: Likewise.
+       * win32.h: Likewise.
+       * i860.h: Likewise.
+       * paragon.h: Likewise.
+       * i960.h: Likewise.
+       * ia64.h: Likewise.
+       * m32r.h: Likewise.
+       * mcore.h: Likewise.
+       * mips.h: Likewise.
+       * mn10300.h: Likewise.
+       * ns32k.h: Likewise.
+       * pdp11.h: Likewise.
+       * pj.h: Likewise.
+       * aix.h: Likewise.
+       * aix41.h: Likewise.
+       * aix43.h: Likewise.
+       * beos.h: Likewise.
+       * rs6000.h: Likewise.
+       * sysv4.h: Likewise.
+       * linux.h: Likewise.
+       * linux64.h: Likewise.
+       * sp64-elf.h: Likewise.
+       * sparc.h: Likewise.
+       * splet.h: Likewise.
+       * v850.h: Likewise.
+       * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
+       for translation.
+       * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
+       Properly document option and mark for translation.
+       * sp86x-elf.h: Likewise.
+
+2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       Add MMX and SSE registers to i386 machine description.
+       * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
+       ix86_local_alignment): Declare.
+
+       * i386.h (TARGET_MMX, TARGET_SSE): New.
+       (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
+       REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
+       REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
+       enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
+       (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
+       (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
+       (RETURN_IN_MEMORY): Handle MMX/SSE.
+       (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
+       also get stack space.
+       (MUST_PASS_IN_STACK): Added TImode to the default definition.
+       (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
+       (MMX_REGISTER_NAMES): New.
+       (ALIGN_MODE_128): New macro.
+       (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
+       (DATA_ALIGNMENT): Likewise.
+       (LOCAL_ALIGNMENT): Likewise.
+       (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
+       TARGET_MMX/TARGET_SSE.
+       (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
+       (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
+       (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
+       SSE/MMX regs and something else.
+       (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
+       (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
+       3 if moving between MMX regs and something else.
+
+       * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
+       (regclass_map): Add MMX/SSE registers.
+       (print_operand): Add code to print XMMWORD as appropriate.
+       (ix86_split_movdi): Abort for MMX regs.
+       (init_cumulative_args): Also allow SSE_REGS
+       (function_arg_advance, function_arg): Likewise
+       (print_reg): Support 'm'.  Add case for TImode.
+       (override_options): TARGET_SSE implies TARGET_MMX.
+       (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
+       New functions.
+
+       * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
+       FIRST_SSE_REG.
+       * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
+       memory.
+       * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
+       * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
+
+2000-06-26  Geoff Keating  <geoffk@cygnus.com>
+
+       * ssa.c (struct rename_set_data): Change the name of field
+       'set_dest' to 'old_reg'.  Add comments.
+       (struct rename_context): Change the name of 'set_data' to
+       'new_renames'.  Add new field 'done_renames'.
+       (create_delayed_rename): New function.
+       (apply_delayed_renames): New function.
+       (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
+       SUBREGs and similar by emitting a move.
+       (new_registers_for_updates): Delete, functionality moved to
+       apply_delayed_renames.
+       (rename_block): Handle moves emitted by rename_insn_1 by putting
+       them into a SEQUENCE with the original insn.  Add sanity checks
+       and comments.
+       (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
+       (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
+
+2000-06-26  Andrew Macleod <amacleod@cygnus.com>
+           Jason Merrill <jason@redhat.com>
+
+       * dwarf2.h (enum dwarf_call_frame_info): Add
+       DW_CFA_def_cfa_expression.
+       * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
+       dw_loc_descr_struct entry.
+       (struct cfa_loc): New structure to track a CFA location.
+       (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
+       (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
+       offset, plus handle DW_CFA_def_cfa_expression.
+       (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
+       cfa_loc record.
+       (dwarf2out_def_cfa): Entry point maintained for compatibility.
+       (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
+       (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
+       (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
+       (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
+       cfa_reg.
+       (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
+       sequences for the new DW_CFA_def_cfa_expression record.
+       (dwarf2out_frame_debug): Use new variables/fields.A
+       (output_cfi): Handle DW_CFA_def_cfa_expression.
+       (output_cfa_loc): New function to generate a CFI record for
+       DW_CFA_def_cfa_expression.
+       (get_cfa_from_loc_descr): New function to get a cfa_loc record from
+       a dw_loc_descr sequeunce.
+       (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
+       (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
+       size_of_locs, output_loc_operands, output_loc_sequence): Move into
+       unwind info section.
+       * frame.h (frame_state): Add base_offset and indirect fields.
+       * frame-dwarf2.c (decode_stack_op): New function to interpret a
+       dw_loc_descr operation.
+       (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
+       (struct frame_state): Add base offset and indirect fields.
+       * libgcc2.c (next_stack_level): Support indirect loading for CFA.
+
+2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
+       Make warnings about implicit int be pedwarns in C99.  Don't warn
+       about duplicate type qualifiers in C99.
+       (start_function): Make warning about implict int return type be a
+       pedwarn in C99.
+       * c-lex.c (yylex): Don't warn about `long long' in C99.
+       * c-typeck.c (c_expand_return): In C99, always pedwarn about
+       `return' with no value in function returning non-void.
+
+2000-06-26  Richard Henderson  <rth@cygnus.com>
+
+       * c-typeck.c (pedwarn_c99): New.
+       * diagnostic.c (verror, vwarning, vpedwarn): Export.
+       * toplev.h: Prototype them.
+
+2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * c-typeck.c (digest_init): Return error_mark_node node when
+       TREE_TYPE (init)  == error_mark_node.
+
+2000-06-26  Philipp Thomas  <pthomas@suse.de>
+
+       * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
+       test for msgfmt without path instead.
+       * configure: Rebuilt.
+
+2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
+
+       * gengenrtl.c (special_rtx): Fix typo in comment.
+
+2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * mklibgcc.in (LIB2FUNCS): Add missing space.
+
+2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * tree.h (enum tree_index): Add vector type nodes.
+       Add accessor macros for them.
+       (TYPE_REPRESENATION_TYPE): New macro.
+       * tree.c (build_common_tree_nodes_2): Build these nodes.
+       (finish_vector_type): New function.
+       * c-common.c (type_for_mode): Handle vector modes.
+       * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
+
+       * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
+       * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
+       * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
+       (gen_type_die): Likewise.
+       * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
+       (fundamental_type_code): Likewise.
+       (type_is_fundamental): VECTOR_TYPEs aren't.
+       (output_type): Handle VECTOR_TYPEs.
+
+2000-06-25  Kazu Hirata  <kazu@hxi.com>
+
+       * config/arm.c: Fix a comment typo.
+       * config/arm.h: Likewise.
+
+2000-06-25  Philipp Thomas  <pthomas@suse.de>
+
+       * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
+       compiler found.
+       AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
+       * configure: Rebuilt.
+
+2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
+
+       * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
+
+2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
+       libgcc.a.
+
+2000-06-24  Marc Espie <espie@cvs.openbsd.org>
+
+       * collect2.c (resolve_lib_name): Move '/' check out of loop.
+
+2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
+
+       * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
+
+2000-06-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * stmt.c (expand_decl_cleanup): Emit a dummy insn after
+       last_unconditional_cleanup.
+
+2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * tree.def (VECTOR_TYPE): New node type.
+       * tree.h: Adjust some comments to reflect addition of vector types.
+       (TYPE_VECTOR_SUBPARTS): New macro.
+       * stor-layout.c (layout_type): Handle VECTOR_TYPE.
+       * c-convert.c (convert): Likewise.
+       * convert.c (convert_to_integer): Handle vector modes.
+       (convert_to_vector): New function.
+       * convert.h (convert_to_vector): Declare.
+       * expr.c (convert_move): Handle vector modes.
+       * expmed.c (extract_bit_field): Don't abort for vector modes.
+
+2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
+       * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
+       New functions, common code moved from function_{prologue,epilogue}
+       and extended to support the -mtiny-stack option.
+       (function_prologue, function_epilogue): Use them.
+       Use lo8/hi8 consistently for asm output readability.
+       (avr_hard_regno_mode_ok): New function.
+       * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
+       (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
+       (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
+       * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
+       Write SPH before SPL.
+       (*movqi): No need to disable interrupts for just one "out"
+       in alternative 5.  Change length attribute from 4 to 1.
+       * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
+       Write SPH before SPL.
+
+2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * rtl.texi (Vector Operations): New node.
+       (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
+       (Conversions): Add ss_truncate, us_truncate.
+       * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
+       VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
+       US_TRUNCATE): New rtx codes.
+       * machmode.def: Add vector modes.
+       * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
+       MODE_VECTOR_FLOAT.
+       (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
+       (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
+       (VECTOR_MODE_P): New.
+
+2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cpp.texi: Clarify #pragma GCC namespace.
+
+2000-06-24  Philipp Thomas  <pthomas@suse.de>
+
+       * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
+       all catalogs specified in ALL_LINGUAS.
+       * configure: Rebuilt.
+
+2000-06-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (reload_outdi+1): Handle
+       HOST_BITS_PER_WIDE_INT == 64 case correctly.
+       (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
+
+2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
+       struct vs. scalar-ness when -fno-strict-aliasing.
+
+2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cpplib.c (struct pragma_entry): New structure.
+       (pragma_dispatch): Pragma dispatcher.
+       (top_pragmas, gcc_pragmas): New static variables.
+       (do_pragma): Use pragma_dispatch.
+       (do_pragma_gcc): New pragma handler.
+       * cpp.texi: Update.
+
+2000-06-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * calls.c (compute_argument_addresses): Force stack slots into
+       alias set 0.
+       * expr.c (emit_push_insn): Force pushes into alias set 0.
+
+2000-06-23  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
+       * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
+
+2000-06-22  Jason Merrill  <jason@redhat.com>
+
+       * toplev.c (compile_file): Always call timevar_print.
+       * Makefile.in (calls.o): Depend on TIMEVAR_H.
+
+2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * varasm.c (constant_descriptor): Make contents unsigned char.
+       (mark_const_hash_entry): Adjust.
+       (const_hash): Just hash the code of unknown nodes.
+       (compare_constant_1): Adjust for unsigned char.
+       Use language specific expander on unknown nodes.
+       (record_constant_1): Likewise.
+
+2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (cpp_make_system_header): New function.
+       * cpplib.h: Prototype it.
+       * cpplib.c (do_line, do_pragma_system_header): Use it.
+       * fix-header.c (read_scan_file): Use it.
+
+       * fix-header.c (check_macro_names): Cast second arg of
+       cpp_defined to const unsigned char *.
+       (read_scan_file): Make getchar_call const unsigned char.
+
+2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c: Include splay-tree.h, not hashtab.h.
+       (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
+       (destroy_include_file_node): New.
+       (_cpp_init_include_hash): Rename _cpp_init_include_table.
+       Create a splay tree, not a hash table.
+       (open_include_file): Look up the path in the include table,
+       do the multiple include optimization here, etc.
+       (cpp_included): Walk the path.
+       (find_include_file): Just walk the path calling
+       open_include_file, or call it directly for an absolute path.
+       (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
+       scheme.
+       (read_include_file): Update for new scheme.  Don't close the
+       file unless reading fails.
+       (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
+
+       * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
+       (struct include_file): New.
+       (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
+       macros.
+       (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
+       Update prototypes.
+
+       * cppinit.c: Include splay-tree.h.
+       (cpp_reader_init, cpp_cleanup): Update.
+
+       * cpplib.h (struct cpp_buffer): Change ihash field to
+       'struct include_file *inc'.  Remove system_header_p.
+       (struct cpp_reader): Change all_include_files to a
+       struct splay_tree_s *.
+
+       * cpplex.c: Update all references to cpp_buffer->ihash and/or
+       cpp_buffer->system_header_p.
+       (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
+
+       * Makefile.in (SPLAY_TREE_H): New macro.
+       (cppfiles.o, cppinit.o): Update dependencies.
+
+Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
+
+       * invoke.texi (g++): "g++" is not a script anymore.
+
+2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * function.c (round_down): Delete obsolete prototype.
+
+       * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
+
+2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * configure.in: Use 'test a = b' not 'test a == b'.
+       * configure: Regen.
+
+       * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
+
+       * Makefile.in: Remove all references to HOST_INTLLIBS.
+
+       * cpplex.c (parse_name): Don't warn about $ in identifiers if
+       skipping.
+
+2000-06-20  Philipp Thomas  <pthomas@suse.de>
+
+       * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
+       for PA 2.0.
+
+Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * Take REG_INC notes into account.
+
+2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
+       (primary: IDENTIFIER): Just call build_external_ref.
+       * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
+       Regenerate.
+       * c-lex.c (lastiddecl): Remove.
+       (yylex): Replace all instances of lastiddecl with local
+       variables.
+
+       * c-typeck.c (build_external_ref): New function.  Treat decls
+       with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
+       Look up the decl from the id here.  Call lookup_objc_ivar.
+       * c-lang.c (lookup_objc_ivar): Stub.
+       * objc/objc-act.c (lookup_objc_ivar): New function.
+
+       * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
+       * c-lex.h: Don't declare lastiddecl.
+
+2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
+
+       * c-common.h (IF_COND): Added documentation.
+       (THEN_CLAUSE): Likewise.
+       (ELSE_CLAUSE): Likewise.
+       (WHILE_COND): Likewise.
+       (WHILE_BODY): Likewise.
+       (DO_COND): Likewise.
+       (DO_BODY): Likewise.
+       (RETURN_EXPR): Likewise.
+       (EXPR_STMT_EXPR): Likewise.
+       (FOR_INIT_STMT): Likewise.
+       (FOR_COND): Likewise.
+       (FOR_EXPR): Likewise.
+       (FOR_BODY): Likewise.
+       (SWITCH_COND): Likewise.
+       (SWITCH_BODY): Likewise.
+       (CASE_LOW): Likewise.
+       (CASE_HIGH): Likewise.
+       (GOTO_DESTINATION): Likewise.
+       (COMPOUND_BODY): Likewise.
+       (ASM_CV_QUAL): Likewise.
+       (ASM_STRING): Likewise.
+       (ASM_OUTPUTS): Likewise.
+       (ASM_INPUTS): Likewise.
+       (ASM_CLOBBERS): Likewise.
+       (DECL_STMT_DECL): Likewise.
+       (STMT_EXPR_STMT): Likewise.
+       (LABEL_STMT_LABEL): Likewise.
+
+       * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
+       COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
+       RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
+       LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
+
+2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in (--enable-checking): Update --help doc to reflect
+       new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
+
+Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
+
+       * function.c (put_var_into_stack): Don't reference DECL_ fields
+       if input is a SAVE_EXPR.
+       Use set_mem_attributes in COMPLEX case.
+
+2000-06-18  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
+       (ia64_file_start): Declare.
+       * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
+       (GR_REGNO_P): Likewise.
+       * config/ia64/ia64.c: Many prototypes.
+       (ia64_reg_numbers): Constify.
+       (ia64_input_reg_names, ia64_local_reg_names): Likewise.
+       (ia64_section_threshold): Make unsigned.
+       (ia64_print_operand): Constify.
+       (fix_range): Constify.
+       (ia64_init_builtins): Don't compare signed vs unsigned.
+       (ia64_expand_builtin): Likewise.
+
+       * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
+       (CONSTRAINT_OK_FOR_Q): New.
+       * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
+       (movsf_internal, movdf_internal): Likewise.
+       (cmovdi_internal): Rewrite so that constraints and predicates match;
+       simplify splitters.
+       (cmovsi_internal): Likewise.
+
+       * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
+       (ASM_FILE_START): New.
+       * config/ia64/ia64.c (ia64_file_start): New.
+       (rtx_needs_barrier): Handle pred.rel.mutex.
+       (emit_predicate_relation_info): New.
+       * config/ia64/ia64.md (pred_rel_mutex): New.
+       * config/ia64/linux.h (ASM_SPEC): Define.
+       * config/ia64/sysv4.h (ASM_FILE_START): Define.
+
+       * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
+       filtering global register variables.
+
+2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (add_c_tree_codes): Fix definition for traditional C.
+
+2000-06-17  Michael Meissner  <meissner@redhat.com>
+
+       * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
+       not present and there is a field after a '-'.
+
+2000-06-17  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/check.tpl:  finish the implementation of multiple tests
+       for a single fix
+       * fixinc/inclhack.def(ctrl_quotes_def): add a second test
+       (io_quotes_def): add a second test
+       (various): reorder `files' so that "limits.h" is never first
+       * fixinc/tests/base/*: update the testing output
+
+Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gcc.texi: Remove reference to stupid.c.
+
+2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
+
+       * c-common.c (c_tree_code_type): New array.
+       (c_tree_code_length): Likewise.
+       (c_tree_code_name): Likewise.
+       (add_c_tree_codes): New function.
+
+       * c-common.h (add_c_tree_codes): Declare.
+       (enum c_tree_code): New enum.
+
+       * c-lex.c (init_parse): Added call to add_c_tree_codes.
+
+2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
+       select pattern to also match macro defs with only one argument.
+
+Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * i386.md: Create new [right,left] rotate and right shift
+       patterns to optimize shift by 1 bit for certain ia32 processors.
+       Update patterns which perform left shifts to optimize shift by
+       1 bit for certain ia32 processors.
+       * i386.c (const_int_1_operand): New predicate.
+       * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
+       * i386-protos.h (const_int_1_operand): Prototype.
+
+Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * mips.c (machine_dependent_reorg): Fix braces for nested if.
+
+2000-06-14  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
+       LABEL_REFs.
+
+2000-06-14  Richard Henderson  <rth@cygnus.com>
+
+       * conflict.c (conflict_graph_compute): Don't look for REG_INC.
+
+       * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
+       auto-inc code.
+
+       * print-rtl.c (print_rtx): Emit space before mem alias set.
+
+2000-06-14  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (expand_block_move): Fix typo in earlier change.
+       (print_operand): Remove unused variables neg and op.
+       (toc_hash_mark_entry): Fix prototype.
+
+2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
+
+       * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
+       (THEN_CLAUSE): Likewise.
+       (ELSE_CLAUSE): Likewise.
+       (WHILE_COND): Likewise.
+       (WHILE_BODY): Likewise.
+       (DO_COND): Likewise.
+       (DO_BODY): Likewise.
+       (RETURN_EXPR): Likewise.
+       (EXPR_STMT_EXPR): Likewise.
+       (FOR_INIT_STMT): Likewise.
+       (FOR_COND): Likewise.
+       (FOR_EXPR): Likewise.
+       (FOR_BODY): Likewise.
+       (SWITCH_COND): Likewise.
+       (SWITCH_BODY): Likewise.
+       (CASE_LOW): Likewise.
+       (CASE_HIGH): Likewise.
+       (GOTO_DESTINATION): Likewise.
+       (COMPOUND_BODY): Likewise.
+       (ASM_CV_QUAL): Likewise.
+       (ASM_STRING): Likewise.
+       (ASM_OUTPUTS): Likewise.
+       (ASM_INPUTS): Likewise.
+       (ASM_CLOBBERS): Likewise.
+       (DECL_STMT_DECL): Likewise.
+       (STMT_EXPR_STMT): Likewise.
+       (LABEL_STMT_LABEL): Likewise.
+       (SCOPE_BEGIN_P): Likewise.
+       (SCOPE_END_P): Likewise.
+       (SCOPE_STMT_BLOCK): Likewise.
+       (SCOPE_NULLIFIED_P): Likewise.
+       (SCOPE_NO_CLEANUPS_P): Likewise.
+       (SCOPE_PARTIAL_P): Likewise.
+       (ASM_VOLATILE_P): Likewise.
+       (STMT_LINENO): Likewise.
+       (STMT_LINENO_FOR_FN_P): Likewise.
+
+       * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
+       ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
+       FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
+       CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
+       SCOPE_STMT, CASE_LABEL, STMT_EXPR.
+
+       * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
+
+2000-06-14  David O'Brien  <obrien@FreeBSD.org>
+
+       * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
+       writable in parts of the GCC code.
+
+       * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
+       specification match cast.
+
+Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
+       * configure, config.in: Rebuilt.
+       * sys-protos.h: Similarly.
+
+Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
+
+       * ifcvt.c (EDGE_COMPLEX): Move definition ...
+       * basic-block.h (EDGE_COMPLEX): ... here.
+
+       * loop.c (check_dbra_loop): Specify the register when
+       generating REG_NONNEG notes and don't generate duplicates.
+
+2000-06-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
+       (struct tree_type, struct tree_decl): Add user_align member.
+       * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
+       (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
+       and DECL_USER_ALIGN 0, cap alignment to this value.
+       (place_field): Likewise.
+       (finalize_type_size): Set TYPE_USER_ALIGN.
+       (layout_type): Likewise.
+       (initialize_sizetypes): Likewise.
+       * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
+       DECL_USER_ALIGN to 1.
+       * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
+       (xfer_tag): Set TYPE_USER_ALIGN.
+       (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
+       (finish_enum): Likewise.
+       * stmt.c (expand_decl): Set DECL_USER_ALIGN.
+       (expand_anon_union_decl): Likewise.
+       * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
+       (build_index_type): Set TYPE_USER_ALIGN.
+       (build_range_type): Likewise.
+       (build_common_tree_nodes_2): Likewise.
+       * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
+
+2000-06-13  Andreas Jaeger  <aj@suse.de>
+
+       * configure.in: Use --enable-checking=misc,tree,gc by default if
+       no --enable-checking option is given and for
+       --enable-checking=yes.
+       * configure: Rebuilt.
+
+2000-06-13  Richard Henderson  <rth@cygnus.com>
+
+       * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
+       (__throw): Don't pass the address of a label.
+
+       * config/ia64/ia64.c (ia64_compute_frame_size): Use
+       current_function_is_leaf.
+       (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
+       instead of reg_names[RETURN_ADDRESS_REGNUM].
+       (ia64_init_machine_status): Reset return_address_pointer_rtx.
+       * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
+       from RETURN_ADDRESS_REGNUM.  Update all uses.
+       (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
+       zero instead of null on failure.
+       (ELIMINABLE_REGS): Add ra->b0 elimination.
+       (CAN_ELIMINATE): Update accordingly.
+       (INITIAL_ELIMINATION_OFFSET): Likewise.
+       (REGISTER_NAMES): Use an illegal assembler name for
+       RETURN_ADDRESS_POINTER_REGNUM.
+
+2000-06-13  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
+       GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
+       (REG_CLASS_NAMES): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
+       (HARD_REGNO_MODE_OK): Remove references to them.
+       (REGNO_REG_CLASS): Likewise.
+       (REG_CLASS_FROM_LETTER): Likewise.
+       (CLASS_MAX_NREGS): Likewise.
+       (REGISTER_MOVE_COST): Likewise.
+       * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
+       * config/ia64/ia64.md (*): Replace "e" constraints with "f".
+       (movqi_internal): Special case moves from zero.
+       (movhi_internal, movsi_internal): Likewise.
+       (movdi_internal): Likewise.  Fill out "f" constraints.
+       (movsf_internal): Fill out "r" constraints.
+       (movdf_internal): Likewise.
+
+2000-06-13  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
+       alive before reload.
+
+       * haifa-sched.c (struct deps): Add in_post_call_group_p.
+       (add_dependence): Handle notes between SCHED_GROUP_P insns.
+       (remove_dependence): Always define.
+       (set_sched_group_p): New.
+       (sched_analyze_2): Use it.
+       (sched_analyze_insn): Don't special-case naked uses.  Look for
+       and extend in_post_call_group_p.
+       (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
+       (init_deps): Clear in_post_call_group_p.
+
+2000-06-13  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
+       CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
+       and hard-coded tests.
+       (simplify_set): Likewise.
+       (gen_lowpart_for_combine): Likewise.
+       * emit-rtl.c (gen_lowpart_common): Likewise.
+       * global.c (find_reg): Likewise.
+       * local-alloc.c (find_free_reg): Likewise.
+       * recog.c (register_operand): Likewise.
+       * regclass.c (init_reg_sets_1): Likewise.
+       (record_operand_costs, regclass): Likewise.
+       * reload.c (push_reload): Likewise.
+       * reload1.c (choose_reload_regs): Likewise.
+       * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
+       * local-alloc.c (struct qty): Rename changes_size to changes_mode.
+       Update all references.
+       * regs.h (struct reg_info_def): Likewise.
+       (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
+       * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
+       (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
+
+       * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
+       (CLASS_CANNOT_CHANGE_MODE_P): New.
+       * config/mips/mips.h: Likewise.
+       * config/pa/pa32-regs.h: Likewise.
+       * config/pa/pa64-regs.h: Likewise.
+       * config/rs6000/rs6000.h: Likewise.
+       * config/sh/sh.h: Likewise.
+       * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
+       (CLASS_CANNOT_CHANGE_MODE_P): New.
+       * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
+       * config/d30v/d30v.h: Likewise.
+
+2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * configure.in: Add AC_TYPE_GETGROUPS test.
+       * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
+       * configure: Rebuilt.
+       * config.in: Rebuilt.
+
+2000-06-13  Richard Henderson  <rth@cygnus.com>
+
+       * explow.c (set_mem_attributes): Do nothing for NULL type.
+
+Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
+       correctly.
+
+2000-06-13  James E. Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
+
+Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
+
+2000-06-13  Philipp Thomas  <pthomas@suse.de>
+
+       * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
+       * configure: Rebuilt.
+
+2000-06-07  David O'Brien  <obrien@FreeBSD.org>
+
+       * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
+       We now default to ELF for the i386, and a.out is the special case.
+       * configure:  Rebuilt.
+
+Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * final.c (final_scan_insn): Delete notes between cc0 setter and
+       user when restarting from setter.
+
+2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
+       cast to squelch signed/unsigned warnings.
+
+2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (handle_directive): Print non-NUL-terminated string
+       with %.*s.
+
+2000-06-12  Michael Meissner  <meissner@redhat.com>
+
+       * ifcvt.c (dead_or_predicable): Don't do conditional execution
+       path if the machine needs extra support to do conditional
+       execution.
+
+Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
+       to print the alias set.
+       * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
+
+2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * config/float-vax.h: Add GFLOAT defines.
+
+Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
+
+       * configure.in: Update tm dependencies for MPE.
+       * configure: Rebuilt.
+
+2000-06-12  H.J. Lu  <hjl@gnu.org>
+
+       * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
+
+2000-06-12  David Edelsohn  <edelsohn@gnu.org>
+
+       * aix41.h (SUBTARGET_SWITCHES): Delete threads.
+       (CPP_SPEC): Change mthreads to pthread.
+       (LIB_SPEC): Likewise.
+       (STARTFILE_SPEC): Likewise.
+       * aix43.h (SUBTARGET_SWITCHES): Delete threads.
+       (CPP_SPEC): Change mthreads to pthread.
+       (LIB_SPEC): Likewise.
+       (STARTFILE_SPEC): Likewise.
+       * rs6000-protos.h (reg_or_arith_cint_operand): New.
+       * rs6000.c (reg_or_arith_cint_operand): New.
+       (num_insns_constant_wide): Decorate unsigned constant.
+       * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
+       * rs6000.md (addsi3): Use new predicate.
+       (subsi3, adddi3, subdi3): Likewise.
+
+2000-06-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.c (lang_get_alias_set): Fix typo.
+
+2000-06-12  Richard Earnshaw <rearnsha@arm.com>
+
+       * flow.c (mark_used_regs): Revert last change.
+       (life_analysis): Remove PROP_AUTOINC if running after reload.
+       (propagate_one_insn): PROP_AUTOINC is always off after reload.
+
+2000-06-11  Richard Earnshaw <rearnsha@arm.com>
+
+       * flow.c (mark_used_regs): Don't call find_auto_inc after reload
+       has run.
+
+2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * bb-reorder.c (build_scope_forest): Initialize variable
+       `curr_scope'.
+
+       * calls.c (expand_call): Likewise for variables
+       `save_pending_stack_adjust' and `save_stack_pointer_delta'.
+
+       * i386.c (function_arg_advance, function_arg): Cast to avoid
+       signed/unsigned warnings.
+
+       * i386.h (MEMORY_MOVE_COST): Likewise.
+
+       * ifcvt.c (cond_exec_process_if_block): Initialize variables
+       `else_start' and `else_end'.
+
+       * libgcc2.h (__eh_alloc, __eh_free): Prototype.
+
+       * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
+
+2000-06-10  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (libintl.a): Depend on intl.all.
+
+2000-06-09  H.J. Lu  (hjl@gnu.org)
+
+       * Makefile.in (c-parse.o): Also depend on output.h.
+
+2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
+
+       * mcore-protos.h: discards const warning removal.
+       * mcore.c: discards const warning removal.
+
+2000-06-09  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/lib1funcs.asm: Declare the machine architecture at
+       the beginning of the file.
+
+2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * real.h:  Add prototype for ldexp.
+
+2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
+       it ggc_alloc, drop second argument, never clear returned memory.
+       * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
+       (ggc_alloc_cleared): New.
+       * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
+       ggc_alloc_obj.  Remove ggc_alloc macro.
+       (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
+
+       * rtl.c (rtvec_alloc): Clear the vector always.
+       (rtx_alloc): Clear the first word always.  Remove dirty
+       obstack tricks (this routine is no longer a bottleneck).
+       * tree.c (make_node): Clear the new node always.
+       (make_tree_vec): Likewise.
+       (tree_cons): Clear the common structure always.
+       (build1): Likewise; also, clear TREE_COMPLEXITY.
+       * gengenrtl.c: Use puts wherever possible.  Remove extra
+       newlines.
+       (gendef): Clear the first word of an RTX in the generator
+       function, irrespective of ggc_p.  Initialize '0' slots to
+       NULL.
+       (genlegend): Don't generate obstack_alloc_rtx routine, just a
+       thin wrapper macro around obstack_alloc.
+
+       * stmt.c (expand_fixup): Use ggc_alloc.
+       * c-typeck.c (add_pending_init): Use ggc_alloc.
+       * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
+       * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
+       const0_rtx when it is created.
+       (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
+       we are not in a function.
+
+       * tree.c (tree_class_check_failed): Make second arg an int.
+       * tree.h: Update prototype.
+
+2000-06-09  Geoff Keating  <geoffk@cygnus.com>
+
+       * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
+       of an error_mark_node.
+
+Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (asm_output_section_name): bugfix.
+
+2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * timevar.def: Add TV_EXPAND.
+       * timevar.c (timevar_print): Update timing information.
+       * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
+
+       * stmt.c (expand_return): Check for error_mark_node.
+
+2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
+
+       * scan-types.sh (VALUE) Wrap use with double quotes to protect
+       variable against filename expansion when it contains "char *".
+
+       * system.h (SSIZE_MAX): Delete backup definition.
+
+       * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
+       instead of SSIZE_MAX.
+
+2000-06-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * configure.in: Check whether gas supports -relax.
+       * configure, config.in: Rebuilt.
+       * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
+       (EXTRA_SPECS): Add asm_relax.
+       (ASM_SPEC): Add %(asm_relax).
+       (TARGET_SWITCHES): Add -mrelax and -mno-relax.
+       * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
+       (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
+       (ASM_SPEC): Add %(asm_relax).
+       * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
+       * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
+       never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
+       instead of mov, so that gas can further optimize it.
+
+2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
+
+       * dwarf2out.c (size_of_die, case dw_val_class_const): Use
+       size_of_sleb128.
+       (value_format, case dw_val_class_const): Use sdata format.
+       (output_die): Call output_sleb128.
+
+2000-06-08  James E. Wilson  <wilson@cygnus.com>
+
+       * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
+       UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
+       ASM_OUTPUT_DWARF_CONST_DOUBLE.
+       (output_die, case dw_val_class_unsigned_const): Correct call to
+       ASM_OUTPUT_DWARF_DATA8.
+       (output_die, case dw_val_class_long_long): Use
+       ASM_OUTPUT_DWARF_CONST_DOUBLE.
+       * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
+       pos is zero.
+
+       * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
+       (output_function_prologue): Fix mispelling.
+       (output_function_prologue, output_function_epilogue): Reorder to
+       match ia64.c definition order.
+       * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
+       (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
+       Use r3 instead of r2 for large stack restores.
+       (ia64_output_end_prologue): New function.
+       (process_set): Emit ".restore sp" for epilogue stack restores.
+       * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
+
+2000-06-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * dbxout.c (dbxout_type_fields): Don't segfault on fields with
+       incomplete types.
+
+2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * frame.c (end_fde_sort): Remove extraneous erratic array test.
+
+2000-06-08  Denis Perchine <dyp@perchine.com>
+
+       * frame.c (start_fde_sort): Don't malloc (0).
+
+2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
+       error_mark_node.
+       * print-tree.c (print_node): The transparent_union_flag means
+       different things for unions and arrays.  Do not inspect it
+       with TYPE_TRANSPARENT_UNION.
+
+2000-06-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
+       returned NULL.
+
+Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (asm_output_section_name): output section
+       attributes.
+       * config/avr/libgcc.S (.text.libgcc): declare section attributes.
+
+2000-06-06  James E. Wilson  <wilson@cygnus.com>
+
+       * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
+       fields into header field.
+       (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
+       macros to access length, flags, and version info from header field.
+       * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
+       * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
+       (__do_global_ctors_aux): Fix caller.
+       * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
+       prologue_flag to header.  Pass to read_P_record.
+       (read_P_record): New argument header.  Implement P4 format.
+       Multiply P7_T_SIZE by 16.
+       (execute_one_ia64_descriptor): New static local region_header.  Pass to
+       get_unwind_record.  Copy r to region_header if r is a header record.
+       (print_all_records): Likewise.
+       (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
+       (__get_personality, __get_except_table): Likewise.
+       * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
+
+2000-06-06  Philipp Thomas  <pthomas@suse.de>
+
+       * configure.in (AC_C_INLINE): Added.
+       * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
+       * configure: Regenerate.
+
+2000-06-06  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.h (c_language_kind): New type.
+       (c_language): New variab.e
+       * c-common.c (lang_get_alias_set): Don't put structures in
+       nonzero alias sets in C++.
+       * c-decl.c (c_language): Define it.
+       * c-lex.c (doing_objc_thang): Remove.
+       * c-tree.h (doing_objc_thang): Make it a macro.
+       * objc/objc-act.c (lang_decode_option): Set c_language, not
+       doing_objc_thang.
+
+2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * diagnostic.c (output_maximum_width): Remove.
+       (doing_line_wrapping): Tweak.
+       (diagnostic_buffer): New object.
+       (global_output_buffer): New object.
+       (output_destroy_prefix): New function.
+       (default_initialize_buffer): Likewise.
+       (reshape_diagnostic_buffer): Likewise.
+       (initialize_diagnostics): Likewise.
+       (output_clear): Tweak.
+       (line_wrapper_printf): Adjust call to init_output_buffer.
+       (vline_wrapper_message_with_location): Likewise.  Use
+       output_destroy_prefix.
+       (v_message_with_decl): Likewise.
+
+       * diagnostic.h (struct output_buffer): Constify prefix.
+       (init_output_buffer, output_get_prefix): Constify.
+       (diagnostic_message_length_per_line): Likewise.
+       (reshape_diagnostic_buffer): Declare.
+       (default_initialize_buffer): Declare.
+       (initialize_diagnostics): Declare.
+       (diagnostic_buffer): Declare new obbject.
+
+       * toplev.c: #include diagnostic.h
+       (display_help): Document diagnostic formatting options.
+       (decode_f_option): Handle diagnostic formatting options.
+       (main): Setup initialization for diagnostic messages outputter.
+
+       * toplev.h (set_message_length): Remove.
+
+       * Makefile.in (toplev.o): Depends upon diagnostic.h
+
+       * invoke.texi : Document diagnostics formatting options.
+
+Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * configure.in (Make the links): Typo fix : the file that must be
+       included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
+       * configure: File rebuilt.
+
+2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
+       (eh_context): Add alloc_mask and alloc_buffer emergency fallback
+       space.
+       * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
+       emergency eh_context buffer, if malloc fails.
+       (__eh_free): Moved from cp/exception.cc. Release to emergency
+       eh_context buffer, if appropriate.
+
+2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * expr.c (store_expr): Fix typo.
+
+2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * m68k.c (legitimize_pic_address): Move prototype ...
+
+       * m68k-protos.h (legitimize_pic_address): ... here.
+
+       * m68k.md (legitimize_pic_address): Delete prototypes.
+       (untyped_call): Invoke GEN_CALL(), not gen_call().
+
+       * nextstep.c: Include system.h and toplev.h.
+       (get_directive_line): Don't prototype.
+       (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
+
+       * nextstep.h (handle_pragma): Prototype.
+       (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
+       objc_section_init ...
+       (EXTRA_SECTION_FUNCTIONS): ... here.
+
+Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * sdbout.c (struct sdb_file): NAME now const.
+       (sdbout_init): input_file_name now const.
+       (sdbout_start_new_source_file): FILENAME now const.
+       * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
+
+2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * c-typeck.c (build_conditional_expr): Handle complex data types.
+
+2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * explow.c (maybe_set_unchanging): New function, broken out from...
+       (set_mem_attributes): Here.
+       * expr.h: Declare it.
+       * stmt.c (expand_decl): Call it.
+
+2000-06-05  Richard Henderson  <rth@cygnus.com>
+
+       * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
+       while looking for a register to inherit from.
+
+2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * Makefile.in (libgcc.ready): Lose.
+       (libgcc.mk): Just use mv, not move-if-change.
+       (LIBGCC_DEPS): New macro.
+       (libgcc.a): Use it.
+       (stmp-multilib): Likewise.
+       * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
+       it rather than the directories themselves.
+       (LIB2ADD): Depend on the list file rather than 'force'.
+
+       * fold-const.c (fold, case COND_EXPR): Elide conversion between
+       cv-qualified versions of types.
+
+Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/sparc/sparc.c (short_branch): Correct error in range
+       computation.
+
+2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * fixinc/inclhack.def: New include hacks for ultrix.
+       * (nested_ultrix): Replaced by ultrix_nested_svc.
+       * (ultrix_atof_param): test_text string added.
+       * (ultrix_ifdef): Modified select string.
+
+2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * objc/objc-act.c (generate_method_descriptors): Register
+       objc_method_prototype_template as a GC root.
+       (comp_method_with_proto): Register function_type as a GC root.
+       (comp_proto_with_proto): Replace function_type1 and
+       function_type2 with a two-element array; register it as a GC root.
+
+       (generate_protocols, build_protocol_initializer,
+       generate_protocol_list, build_category_initializer,
+       build_shared_structure_initializer): Do not cache cast_type
+       and/or cast_type2.
+
+2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * function.c (assign_parms): Add missing argument to set_mem_attributes
+       call.
+
+2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * tree.h (VOID_TYPE_P): New macro.
+       (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
+       * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
+       (get_parm_info): Likewise.
+       (store_parm_decls): Likewise.
+       (combine_parm_decls): Likewise.
+       (finish_function): Likewise.
+       * c-typeck.c (build_function_call): Likewise.
+       (build_binary_op): Likewise.
+       (build_conditional_expr): Likewise.
+       (internal_build_compound_expr): Likewise.
+       (convert_for_assignment): Likewise.
+       * stmt.c (expend_expr_stmt): Likewise.
+       (warn_if_unused_value): Likewise.
+       (expand_return): Likewise.
+       * c-parse.in (primary): Likewise.
+       * c-parse.y, c-parse.c, c-parse.h: Regenerate.
+       * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
+
+Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): If compnent is addressable, use alias
+       set of component.
+       * c-decl.c (init_decl_processing): Don't call record_component_aliases.
+       (grokdeclarator): Likewise.
+       * c-typeck.c (common_type): Likewise.
+
+2000-06-04  Alex Samuel  <samuel@codesourcery.com>
+
+       * Makefile.in (OBJS): Remove dyn_string.o
+       (dyn-string.o): Delete rule.
+       * dyn-string.c: Delete file
+       * dyn-string.h: Likewise.
+
+2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (intl.*): Honor nonzero exit codes in the intl
+       subdir.
+
+2000-06-03  Geoff Keating  <geoffk@cygnus.com>
+
+       * alias.c (record_component_aliases): Don't inspect
+       DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
+
+Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
+
+       * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
+       it with the pattern to do machine dependent work.
+       (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
+       use it to modify the true/false tests used in conditional
+       execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
+       defined, invoke them if the conversion to conditional execution
+       was successful or not.
+
+       * tm.texi (IFCVT_MODIFY_TESTS): Document.
+       (IFCVT_MODIFY_INSN): Ditto.
+       (IFCVT_MODIFY_FINAL): Ditto.
+       (IFCVT_MODIFY_CANCEL): Ditto.
+
+Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
+
+       * toplev.c (main): Fix misspellings of possibility and language.
+
+2000-06-03  Richard Henderson  <rth@cygnus.com>
+
+       * alias.c (record_alias_subset): Initialize has_zero_child in the
+       superset.
+
+2000-06-03  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm.md (untyped_call): Use GEN_CALL macro.
+
+2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
+
+       * Makefile.in: Use $(MAKE) not "make"
+
+Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (struct alias_set_entry): New field has_zero_child.
+       (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
+       (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
+       do nothing.
+       Call record_component_aliases for aggregate types.
+       (record_alias_subset): Set has_zero_child.
+       (record_component_aliases, case ARRAY_TYPE): Do nothing if
+       TYPE_NONALIASES_COMPONENT.
+       (record_component_aliases, case RECORD_TYPE): Test
+       DECL_NONADDRESSABLE_P.
+       * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
+       of TREE_ADDRESSABLE.
+       * calls.c (initialize_argument_information): Only test
+       TYPE_TRANSPARENT_UNION for UNION_TYPE.
+       * function.c (assign_parms): Likewise.
+       * integrate.c (function_cannot_inline_p): Likewise.
+       * stor-layout.c (finish_record_layout): Don't call
+       record_component_aliases.
+       * tree.h (struct tree_int_cst): Use struct tree_common.
+       (struct tree_real_cst, struct tree_string): Likewise.
+       (struct tree_complex, struct tree_identifier): Likewise.
+       (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
+       (struct tree_block, struct tree_type, struct tree_decl): Likewise.
+       (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
+       (TYPE_NONALIASES_COMPONENT): New macro.
+       (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
+       (DECL_NONADDRESSABLE_P): New macro.
+       (struct tree_decl): Reorder bits for clarity of how many left;
+       add non_adressable.
+
+2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
+       * mklibgcc.in (force): New target.
+       Make LIB2ADD stuff depend on it.
+
+2000-06-02  Richard Henderson  <rth@cygnus.com>
+
+       * alias.c (lang_get_alias_set): Remove.
+       (get_alias_set): Call it directly, not indirectly.
+       * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
+       * c-common.h (c_get_alias_set): Don't declare.
+       * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
+       * expr.h (lang_get_alias_set): Declare as function, not pointer.
+
+2000-06-02  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
+       (server_setup):  define the server's master pid
+       (close_server):  actually do the deed IFF we are the server's master
+
+2000-06-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.c (c_get_alias_set): Check whether signed_type did not
+       return its argument before calling get_alias_set on the result.
+
+2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
+
+Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
+       (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
+       for TARGET_NOMACSAVE.
+       (NOMACSAVE_BIT): Define.
+       (TARGET_NOMACSAVE): Define.
+       (TARGET_SWITCHES): Add "nomacsave".
+
+2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
+
+       * sh.md (untyped_call): Remove excess parameters
+
+2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
+
+       * fixinc/inclhack.def (osf_namespace_a): Relax expression to
+       match that used before the conversion to c_fix style.
+       * fixinc/fixincl.x: regenerate
+
+2000-06-01  Stan Cox  <scox@cygnus.com>
+
+       * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
+       macro argument typo.
+
+2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
+       error message.
+       * cpplib.c (parse_include): Remove support for VAX-C
+       "#include starlet" misfeature.
+
+2000-05-31 Laurynas Biveinis <lauras@softhome.net>
+
+       * cppfiles.c: conditionally define O_BINARY.
+       (open_include_file): pass O_BINARY to open().
+
+2000-06-01  Richard Henderson  <rth@cygnus.com>
+
+       * i960.c (i960_br_predict_opcode): Remove.
+       (i960_print_operand) [+]: Emit branch prediction hints.
+       (i960_function_arg): Return early for VOIDmode.
+       (i960_round_align): Return early for incomplete types.
+       * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
+       * i960.md (all conditional branches): Add "%+".
+
+Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): Don't call language-specific routine more
+       than is needed and clean up code a bit.
+       * c-common.c (c_get_alias_set): All references whose type
+       is char get alias set 0, but character types need not.
+       * varasm.c (make_function_rtl): Don't call set_mem_attributes.
+       (make_decl_rtl): Don't call it for FUNCTION_DECL.
+
+2000-06-01  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/tests/base/...: new base result files
+
+Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
+       * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
+       * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
+       will use FCOMI.
+
+2000-06-01  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
+
+       * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
+       CONSTANT_POOL_ADDRESS_P addresses for .sdata.
+       * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
+       * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
+       (ia64_print_operand) [+]: ... here.  Use current_output_insn.
+       * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
+       * config/ia64/ia64.md (all branch/call patterns): Use %+.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
+       remaining edges.
+       (find_if_block): Allow THEN with no outgoing edges.
+       * flow.c (merge_blocks_nomove): Remove a barrier not following
+       a jump as well.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (propagate_block): Move initialization of mem_set_list ...
+       (init_propagate_block_info): ... here.  Also track blocks with
+       no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (jump_optimize_1): Revert 05-18 change.
+
+2000-05-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * invoke.texi: Remove documentation for -fguiding-decls.
+
+2000-05-31  Richard Henderson  <rth@cygnus.com>
+
+       * configure.in: Fix typo last change.
+
+2000-05-31  Philipp Thomas  <pthomas@suse.de>
+
+       * configure.in (enable-nls): Enable if build == host, i.e. when
+       not building a canadian cross compiler.
+       (enable-maintainer-mode): Added for use with i18n.
+       * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
+       cross section of ALL_LINGUAS and LINGUAS.
+       * configure: Rebuild.
+
+2000-05-31  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/check.tpl: rework to use test result tree
+       * fixinc/Makefile.in: change invocation of check script
+       * fixinc/check.diff: No longer needed
+       * fixinc/fixincl.x: regenerate
+       * fixinc/inclhack.def:  add new tests
+       * fixinc/tests/base/arch/i960/archI960.h:  New test result
+       * fixinc/tests/base/curses.h: modified test result
+       * fixinc/tests/base/stdio.h: ditto
+       * fixinc/tests/base/time.h: ditto
+       * fixinc/tests/base/sys/asm.h: ditto
+       * fixinc/tests/base/sys/stat.h: ditto
+       * fixinc/tests/base/sys/wait.h: ditto
+
+Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * except.c (clear_function_eh_region): Do not free NULL.
+
+Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
+       * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
+       (REG_BASE_VALUE): Remove unneeded cast to unsigned.
+       (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
+       (find_base_decl): New function, from c_find_base_decl in c-common.c.
+       (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
+       (get_alias_set): Likewise.
+       Major rework to do more things and allow language-specific code
+       to just handle special-cases.
+       (record_alias_subset): Args are HOST_WIDE_INT.
+       (record_component_alias): Local vars are HOST_WIDE_INT.
+       Don't handle COMPLEX_EXPR.
+       (get_varargs_alias_set): Moved from builtins.c.
+       (get_frame_alias_set): New function.
+       * builtins.c (expand_builtin_return_address): Use frame alias set.
+       (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
+       for setjmp buffer.
+       (get_memory_rtx): Rework to use set_mem_attributes.
+       (get_varargs_alias_set): Deleted from here.
+       * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
+       (c_find_base_decl): Deleted from here.
+       (c_get_alias_set): Remove many cases and rework to just handle
+       C-specific cases.
+       * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
+       * c-decl.c (rtl.h, expr.h): Now included.
+       (init_decl_processing): Call record_component_aliases on array types.
+       (grokdeclarator): Likewise.
+       Set TREE_ADDRESSABLE for all fields that are not bitfields.
+       * c-typeck.c (common_type): Call record_component_aliases for array.
+       * caller-save.c (setup_save_areas): Rework register loop for unsigned.
+       Set all save areas to the frame alias set.
+       * calls.c (initialie_argument_information): Call set_mem_attributes.
+       (compute_argument_addresses, expand_call): Likewise.
+       * explow.c (set_mem_attributes): New function.
+       (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
+       * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
+       LEN and OFFSET now HOST_WIDE_INT.
+       (clear_by_pieces): Similar changes.
+       (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
+       (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
+       (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
+       (clear_by_pieces_1): Likewise.
+       (emit_push_insn): Call set_mem_attributes.
+       (expand_expr, case INDIRECT_REF): Likewise.
+       (expand_expr, case VAR_DECL): Call change_address.
+       * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
+       tree_low_cst.
+       (get_varargs_alias_set, get_frame_alias_set): New decls.
+       (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
+       (new_alias_set, set_mem_attributes): Likewse.
+       * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
+       (assign_stack_temp_for_type): Likewise.
+       Can split slot even if alias set since can copy.
+       Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
+       (assign_temp): Use host_integerp and tree_low_cst.
+       (put_var_into_stack): Properly handle SAVE_EXPR.
+       (put_addressof_into_stack): Likewise.
+       (assign_parms): Call set_mem_attributes.
+       Delete #if 0 code.
+       (fix_lexical_address): Put reference to chain into frame alias set.
+       (expand_function_start): Call set_mem_attributes.
+       * integrate.c (expand_inline_function): Likewise.
+       * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
+       * regmove.c (try_apply_stack_adjustment): Likewise.
+       * reload.c (push_reload, make_memloc): Likewise.
+       * reload1.c (alter_reg): Make alias sets for spilled pseudos.
+       * rtl.def (MEM): Update comment.
+       * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
+       (move_by_pieces): Change length to HOST_WIDE_INT.
+       (record_base_value, record_alias_subset): Delete from here.
+       * stmt.c (expand_decl): Call set_mem_attributes.
+       * stor-layout.c (finish_record_layout): Call record_component_aliases.i
+       * toplev.c (compile_file): Call init_alias_once earlier.
+       * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
+       from here: now in alias.c.
+       * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
+       (struct tree_decl): Likewise.
+       (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
+       * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
+       (output_constant_def, force_const_mem): Likewise.
+
+       * flow.c (propagate_block): If block has no successors, stores to
+       frame are dead if not used.
+
+2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * stmt (expand_end_case): Reorder conversion sequence for jump
+       table to avoid extra truncations.
+
+Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
+       in the block is more than just a simple conditional branch.
+       (noce_process_if_block): Similarly.
+
+Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
+       queue.
+
+2000-05-30  Michael Meissner  <meissner@redhat.com>
+
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
+       instructions.  Treat LO_SUM operations as loading the full integer
+       constant.
+
+2000-05-30  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
+
+2000-05-30  Richard Henderson  <rth@cygnus.com>
+
+       * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
+
+2000-05-30  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/tests/*:  Added expected result files for fixinc's make check
+       * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
+
+2000-05-30  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.md (*setne_internal): Use match_operator
+       instead of working down from insn.
+
+2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * invoke.texi (-Wtraditional): Update WRT function macros.
+
+Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * except.c (free_exception_table): Do not free NULL.
+
+2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_if): Don't save and restore only_seen_white here.
+       * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
+       and skipping here.
+
+2000-05-29  Richard Earnshaw (rearnsha@arm.com)
+
+       * flow.c (mark_used_reg): If a register is unconditionally live,
+       remove any conditional death information.
+
+2000-05-29  Richard Henderson  <rth@cygnus.com>
+
+       * final.c (current_output_insn): New.
+       (final_scan_insn): Set it.
+       * output.h: Declare it.
+
+2000-05-29  Richard Henderson  <rth@cygnus.com>
+
+       * stor-layout.c (finalize_record_size): Fix typo.
+
+       * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
+       if nlabel is null.
+
+2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (cpp_reader): Remove if_stack.  Change
+       potential_control_macro to a cpp_hashnode *.  Add skipping flag.
+       * cpphash.h (struct ihash): Change control_macro to a
+       cpp_hashnode * and shorten name to cmacro.
+       Add NEVER_REINCLUDE constant.
+
+       * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
+       Examine the cmacro node directly, no need to call cpp_defined.
+       (_cpp_execute_include, read_include_file): Set cmacro to
+       NEVER_REINCLUDE, not U"".
+       * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
+       (cpp_get_token): If pfile->skipping is true, discard text and
+       keep scanning until we hit a directive; don't expand macros.
+
+       * cpplib.c (struct if_stack): Remove if_succeeded, add
+       was_skipping. Change control_macro to a cpp_hashnode * and
+       shorten name to cmacro.  Remove typedef IF_STACK.
+       (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
+       (conditional_skip, skip_if_group,
+       consider_directive_while_skipping): Delete.
+       (push_conditional): New.
+       (_cpp_handle_directive): Don't process directives other than
+       conditionals if we are skipping.
+
+       (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
+       Update to new scheme.
+       (validate_else): Skip rest of line here, unconditionally.
+       (_cpp_unwind_if_stack): The stack is per-buffer.  Force
+       pfile->skipping off.
+
+       (all): Remove `scare quotes' from error messages.
+
+2000-05-29  Richard Henderson  <rth@cygnus.com>
+
+       * function.c (emit_return_into_block): New line_note arg; emit it.
+       (thread_prologue_and_epilogue_insns): Attempt to locate a line note
+       for the close brace to accompany HAVE_return.  Move all line notes
+       following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
+
+2000-05-29  Richard Henderson  <rth@cygnus.com>
+
+       * longlong.h [__alpha] (count_leading_zeros): New.
+       (count_trailing_zeros): New.
+       (COUNT_LEADING_ZEROS_0): New.
+
+       * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
+       (alpha_split_conditional_move): New.
+       * config/alpha/alpha-protos.h: Prototype them.
+       * config/alpha/alpha.h (PREDICATE_CODES): Update.
+       (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
+       * config/alpha/alpha.md: Update ffs cix commentary.
+       (*ze_and_ne): New.
+       (*nabssf2, *nabsdf2): New.
+       (*mov[qhsd]icc_internal): Use add_operand.
+       (if_then_else constant splitters): New.
+       (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
+       (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
+
+2000-05-29  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (force_to_mode) [MINUS]: Convert subtraction from
+       a constant to NEG or NOT when conditions allow.
+
+       * combine.c (combine_simplify_rtx): Don't create an if_then_else
+       unless both args are general_operand.  Don't canonicalize plus
+       to ior unless it helps.
+
+       * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
+       instead track register_life_up_to_date.  Toggle no_new_pseudos
+       around if_convert.
+
+2000-05-28  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
+       so output_operand doesn't see them.
+
+Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * lcm.c (make_preds_opaque): Fix comment.
+       (optimize_mode_switching): Use NORMAL_MODE instead of
+       MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
+       FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
+       Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
+       * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
+       (MODE_USES_IN_EXIT_BLOCK): Delete.
+       (MODE_AT_ENTRY) Rename to NORMAL_MODE.
+       * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
+       (MODE_AT_ENTRY): Rename to NORMAL_MODE.
+       (MODE_NEEDED): Don't look for USE.
+       (EPILOGUE_USES): Define.
+
+Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
+
+       * mklibgcc.in (all): Variable initialized to `libgcc'.
+
+2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * toplev.h (skip_leading_substring): New macro.
+       * toplev.c (decode_f_option): Use skip_leading_substring instead
+       of strncmp.
+       (decode_W_option): Likewise.
+
+2000-05-28  Nick Clifton  <nickc@cygnus.com>
+
+       * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
+       modify reg_names.
+
+2000-05-28  Richard Henderson  <rth@cygnus.com>
+
+       * regclass.c (record_operand_costs): Protect reg_changes_size
+       with CLASS_CANNOT_CHANGE_SIZE.
+
+       * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
+
+2000-05-28  Richard Henderson  <rth@cygnus.com>
+
+       * function.c (diddle_return_value): A pcc-style struct return
+       returns a pointer.
+
+2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c: Read files in, using mmap if possible, then
+       prescan them separately.
+       (read_file, read_with_read): New functions.
+       * cpplex.c: Don't define UCHAR_MAX.
+       (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
+       the file here.
+
+       * cppinit.c (handle_option): Automatically define __cplusplus,
+       __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
+       the respective -lang switch.
+
+       * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
+       prototype): Move to...
+       * cpplib.h: ... here.  Rename struct hashnode to struct
+       cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
+       cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
+
+2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.md (movsi): Constify 'name'.
+
+       * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
+       (class_can_change_size): New variable.
+       (reg_changes_size): New variable.
+       (init_reg_sets_1): Initialize class_can_change_size.
+       (record_operand_costs): Remove subreg_changes_size.
+       Don't pass it around.  Instead update reg_changes_size.
+       (regclass): Initialize and free reg_changes_size.  If a register
+       changes size, don't preference it to a class that contains
+       registers that can't change size.
+       (record_reg_classes): Don't look at subreg_changes_size.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * print-rtl.c (reg_names): Remove const.
+       * regclass.c (reg_names): Likewise.
+       * regs.h (reg_names): Likewise.
+       * hard-reg-set.h (reg_names): Likewise.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_does_function_need_gp): Test
+       TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
+       (alpha_expand_prologue): Emit prologue_mcount if needed.
+       * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
+       * config/alpha/alpha.md (prologue_mcount): New.
+       * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
+       (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
+       * config/alpha/netbsd.h: Likewise.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
+       change to config/elfos.h.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (resource.o): Depend on except.h.
+       * except.h (output_exception_table_data): Prototype.
+       * genconfig.c (gen_peephole2): Prototype.
+       * genemit.c (main): Include ggc.h.
+       * genoutput.c: Revert parts of last change: include errors.h
+       (main): Set progname.
+       * recog.c: Include hard-reg-set.h before recog.h.
+       * resource.c: Include except.h.
+
+       * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
+       with RTX_CODE.
+       (alpha_write_linkage): Protect with BUFSIZ.
+       (alpha_need_linkage): Update prototype.
+       * config/alpha/alpha.c (function_arg): Move VMS code here.
+       (alpha_links_base): Remove.
+       (alpha_links): New.
+       (mark_alpha_links_node, mark_alpha_links): New.
+       (alpha_write_one_linkage): New.
+       (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
+       (alpha_write_linkage): Use splay_tree_foreach.
+       * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
+       to get the linkage symbol.
+       (call_value_vms): Likewise.
+       * config/alpha/elf.h (output_file_directive): Remove decl.
+       (ctors_section, dtors_section): Prototype.
+       (sbss_section, sdata_section): Prototype.
+       * config/alpha/vms.h (FUNCTION_ARG): Remove.
+       (readonly_section, link_section, literals_section): Prototype.
+       (ctors_section, dtors_section): Prototype.
+       (vms_valid_decl_attribute_p): Remove decl.
+       (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
+
+2000-05-27  Geoff Keating  <geoffk@cygnus.com>
+
+       * reload.c (get_secondary_mem): Don't widen floating-point modes.
+
+       * combine.c (subst): Honor CLASS_CANNOT_CHANGE_SIZE when
+       substituting the REG in a (subreg:X (reg:Y ...)).
+
+2000-05-28  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
+       first token of a line BOL.  Update EOF code for this.
+       Remove illegal directive check - it appears in the (not
+       yet committed) caller.
+       * cpplib.h (BOL): New flag.
+
+2000-05-28  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (_cpp_init_toklist): No comment space to initialize.
+       (_cpp_free_toklist): No comment space to free.
+       (expand_comment_space): Remove.
+       (save_comment_space): Place the comment in the current token and
+       not in a separate comment space.
+       (_cpp_lex_line): Save comments during plain code and #define
+       directives only.
+       * cpplib.h (struct _cpp_toklist): Remove comment space.
+
+2000-05-28  Neil Booth  <NeilB@earthling.net>
+
+       * cppexp.c (parse_assertion): Supply extra argument to
+       _cpp_init_toklist.
+       * cpplib.c (do_assert, do_unassert): Similarly.
+       * cpphash.h (_cpp_init_toklist) Update.
+       (_cpp_expand_token_space): New.
+       (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
+       * cpplex.c (_cpp_init_toklist): New argument.
+       (parse_string2): New argument multiline_ok.
+       (spell_token): Take a const cpp_token *.
+       (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
+       (SPELL_ macros): Replace with enum.
+       (expand_token_space): Replace with _cpp_expand_token_space.
+       Take COUNT argument.
+       (IS_DIRECTIVE): Update.
+       (_cpp_lex_line): Update token structure before parsing number.
+       Don't assume start at beginning of token list.
+       (save_comment): Use INIT_TOKEN_NAME.
+
+2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
+       -Wmissing-prototypes.
+       * configure: Regenerate.
+       * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
+
+       * builtins.c, calls.c: Change all instances of gen_call_* or
+       gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
+       * calls.c (struct_value_size_rtx): Separate definition from
+       initialization to avoid unused variable warning.
+
+       * genflags.c (gen_macro): New function.
+       (gen_proto): Call it for gen_call_* and gen_sibcall_*.
+       (gen_nonproto): Delete.
+       (gen_insn): Put all insns on the same obstack.
+       (main): Generate prototypes for everything unconditionally.
+
+       * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
+       out check for wchar_t.
+       * acconfig.h: Add template for ssize_t.  Remove @TOP@.
+       * system.h: Add infrastructure for defining missing
+       TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
+       definitions of UCHAR_MAX and SSIZE_MAX.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+       * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
+       Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
+       headers.
+       (clean): No need to delete libgcc1.a, libgcc1-asm.a,
+       libgcc2.a, or libgcc1.null.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (recog.o): Don't depend on resource.h.
+       * recog.c: Don't include resource.h.
+       (recog_last_allowed_insn): Remove.
+       (recog_next_insn): Remove.
+       (struct peep2_insn_data): New.
+       (peep2_insn_data, peep2_current): New.
+       (peep2_next_insn): New.
+       (peep2_regno_dead_p, peep2_reg_dead_p): New.
+       (peep2_find_free_register): New.
+       (peephole2_optimize): Track life information by insn as we go.
+       * recog.h: Update declarations.
+       * resource.c (find_free_register, reg_dead_p): Remove.
+       * resource.h: Remove their declarations.
+       * toplev.c: Include hard-reg-set.h before recog.h.
+
+       * genconfig.c (max_insns_per_peep2): New.
+       (gen_peephole2): New.
+       (main): Call it.
+       * genemit.c (output_peephole2_scratches): Generate calls to
+       peep2_find_free_register; adjust surrounding code.
+       (main): Have insn-emit.c include hard-reg-set.h before recog.h.
+       * genrecog.c (change_state): Don't track last_insn.
+       (write_action): Write into *_pmatch_len before accepting.
+       (write_tree): Adjust peephole2_insns and subroutines to match.
+
+       * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
+
+       * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
+       (hard_int_register_operand): New.
+       * config/alpha/alpha-protos.h: Declare it.
+       * config/alpha/alpha.h (PREDICATE_CODES): Update.
+       * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
+       as needed; use peep2_reg_dead_p instead of dead_or_set_p.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * function.c (thread_prologue_epilogue_insns): Don't move the
+       line note at the head of the chain.  Only force a lineno note
+       before the end of block 0.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * gensupport.c (collect_insn_data): Record the maximum number
+       of alternatives, not the last seen.
+
+       * genoutput.c: Don't include errors.h.
+       (struct data): Add lineno member.
+       (have_error): New.
+       (scan_operands): Use message_with_line instead of error.
+       (validate_insn_alternatives): Likewise.
+       (gen_insn): Accept and store the pattern's line number.
+       (gen_peephole, gen_expand, gen_split): Likewise.
+       (main): Don't set progname.  Pass line_no to gen_foo.
+
+2000-05-27  Richard Henderson  <rth@cygnus.com>
+
+       * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
+       * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
+       * config/d30v/d30v.md (attr predicable): New.
+       (all insn patterns): Mark non-predicable patterns; use %: on the rest.
+       (andsi3*): Unify into one pattern.
+       (iorsi3*, xorsi3*): Likewise.
+       (peephole2 patterns): Use peep2_reg_dead_p; verify not a
+       conditional return.
+       (old cond_exec patterns): Remove.
+       (define_cond_exec): New.
+
+Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.h (TREE_CODE_LENGTH): New macro.
+       * c-common.c (c_find_base_decl): Use it.
+       * expr.c (safe_from_p): Likewise.
+       * print-tree.c (print_node): Likewise.
+       * tree.c (make_node, copy_node, get_identifier): Likewie.
+       (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
+       (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
+       * fold-const.c (make_range): Likewise.
+       (fold): Likewise; also use first_rtl_op.
+       * c-iterate.c (collect_iterators): Use first_rtl_op.
+       * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
+       Use IS_EXPR_CODE_CLASS.
+       (preexpand_calls): Likewise.
+       * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
+       and TREE_CODE_LENGTH.
+       * stmt.c (warn_if_unused_value): If no operands, no unused value.
+
+2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
+       than '%1(%*)'.
+       (movdi_internal64): Likewise.
+
+       * config/rs6000/rs6000.md: Correct order of operands for DImode
+       boolean patterns.
+
+       * config/rs6000/rs6000.c (boolean_or_operator): New function.
+       * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
+       * config/rs6000/rs6000.md: Use boolean_or_operator instead of
+       boolean_operator for the boolean patterns without NOTs.
+
+       * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
+       from reg_or_u_cint_operand.  Change comment and behavior.
+       (logical_operand): Clean up, add assertion.
+       (non_logical_cint_operand): Also check for
+       reg_or_logical_cint_operand.
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
+       * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
+       in the expander.
+       (xorsi3): Likewise.
+       (iordi3): Likewise.
+       (xordi3): Likewise.
+
+2000-05-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (struct record_layout_info): Rename to (struct
+       record_layout_info_s).
+       * stor-layout.c (start_record_layout): Replace
+       `record_layout_info' with `record_layout_info_s'.
+
+2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
+
+       * flow.c (find_label_refs): New function.
+       (find_basic_blocks_1): Call it for each alternative of a call
+       placeholder.
+
+2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
+
+       * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
+       of get_pc.
+
+2000-05-25  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_comparison_operator): Don't be
+       so strict about DImode.
+       (alpha_swapped_comparison_operator): Likewise.
+       * config/alpha/alpha.md (*setne_internal): Name it.  Allow
+       any integer output mode.
+       (*setcc_internal): Likewise.
+       (*setcc_swapped_internal): Likewise.
+       (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
+       (*mov[qhs]icc_internal): New.
+       (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
+
+2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
+
+2000-05-25  Richard Henderson  <rth@cygnus.com>
+
+       * bb-reorder.c (reorder_block_def): Reorder elements for size.
+       Remove add_jump; add next; replace flags with visited.
+       (rbd_init): Remove.
+       (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
+       (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
+       (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
+       (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
+       (RBI): New.
+       (reorder_index, reorder_last_visited): Remove.
+       (skip_insns_after_block): Rewrite to use a switch.
+       (get_common_dest): Remove.
+       (chain_reorder_blocks): Remove.
+       (record_effective_endpoints): Split out from reorder_basic_blocks.
+       (make_reorder_chain): Likewise.  Loop until all blocks are placed.
+       (make_reorder_chain_1): Renamed from old make_reorder_chain.
+       Only construct the reorder chain, do not move insns.  Try harder
+       to tail recurse.
+       (label_for_bb, emit_jump_to_block_after): New.
+       (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
+       and adjust the jump insns appropriately.  Fixup basic_block_info.
+       (verify_insn_chain): Always define.
+       (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
+       in allocation size.
+       (make_new_scope): Don't write zeros to calloc'd space.
+       (build_scope_forest): Rely on xrealloc to DTRT.
+       (reorder_basic_blocks): Don't build loop nest.  Don't fail if
+       profile_arc_flag.  Streamline EH test.
+
+       * flow.c (redirect_edge_succ, redirect_edge_pred): New.
+       * basic-block.h: Declare them.
+
+2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * emit-rtl.c (reset_used_decls): New function.
+       (unshare_all_rtl_again): Call it.
+
+2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (maybe_macroexpand): Warn about function-like
+       macros used in non-function context, if -Wtraditional.
+
+2000-05-25  Mark Mitchell  <mark@codesourcery.com>
+
+       * recog.c (peephole2_optimize): Use INSN_P.
+
+2000-05-25  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (seq_contains_jump): New.
+       (noce_try_store_flag_constants): Use it to fail conversion.
+       (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
+
+2000-05-25  Mark Mitchell  <mark@codesourcery.com>
+
+       * except.h (can_throw): Declare it.
+       * except.c (can_throw): Give it external linkage.
+       * resource.c (find_dead_or_set_registers): Use can_throw.
+
+2000-05-25  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (mark_set_1): Don't record conditionally dead memory.
+
+2000-05-25  Jan Hubicka  <jh@suse.cz>
+
+       * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
+       and pc_set at the place of simplejump_p and condjump_p.
+       * cse.c (record_jump_equiv): Likewise.
+       * emit-rtl.c (emit): Likewise.
+       * explow.c (find_next_ref): Likewise.
+       * flow.c (tidy_fallthru_edge): Likewise.
+       (init_propagate_block_info): Likewise.
+       * gcse.c (delete_null_pointer_checks): Likewise.
+       * ifcvt.c (cond_exec_get_condition, noce_get_condition,
+       dead_or_predicable): Likewise.
+       * integrate.c (copy_insn_list): Likewise.
+       * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
+       for_each_insn_in_loop, check_dbra_loop, get_condition,
+       insert_bct, load_mems): Likewise.
+       * resource.c (find_dead_or_set_registers): Likewise.
+       * sibcalls.c (simplejump_p): Likewise.
+       * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
+
+2000-05-25  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
+       to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
+       when unaligned.
+       * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
+       (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
+       (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
+       * rs6000.md: Name various internal patterns.
+
+2000-05-25  Jan Hubicka  <jh@suse.cz>
+
+       * jump.c (invert_exp_1): Remove first argument, use pc_set
+       to get the expression.
+       (redirect_exp): Make static; redirect only the pc_set expression,
+       remove first argument.
+       (invert_exp): Remove first argument, make static.
+       (jump_optimize): Use any_condjump_p, any_uncondjump_p and
+       any_onlyjump at most places where we originaly did condjump_p
+       and simplejump_p.
+       (jump_back_p, follow_jumps, thread_jumps): Likewise.
+       (delete_barrier_succesors): Use pc_set.
+       (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
+       calls of invert_exp and redirect_exp.
+       * rtl.h (redirect_exp, invert_exp): Remove.
+       * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
+
+2000-05-25  Richard Henderson  <rth@cygnus.com>
+
+       * stmt.c (expand_end_bindings): Fix thinko last change.
+
+2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
+           Andrew Haley  <aph@cygnus.com>
+
+       * except.c  (func_eh_entry): Add emitted field.
+       (new_eh_region_entry): Set emitted field to 0;
+       (output_exception_table_entry): Only emit previously un-emitted data,
+       and send it to the eh_data section.
+       (output_exception_table): Break out common parts. Output
+       exception table for entire compilation unit to eh_data section.
+       (output_exception_table_data): Common parts of output_exception_table.
+       Send output to eh_data section.
+       (output_function_exception_table): Output exception table data for
+       a single function to eh_data section.
+       (free_exception_table): New external to free the table.
+       * except.h (free_exception_table): Add prototype.
+       (output_function_exception_table): Add prototype.
+       * final.c (final_end_function): Output function exception table
+       for IA64_UNWIND_INFO.
+       (final_scan_insn): Emit any unwind directives for an insn.
+
+       * frame-dwarf2.c: New file containing all DWARF 2 specific code
+       from frame.c.
+       * frame.c: Remove all DWARF 2 specific code.
+       * config/ia64/frame-ia64.c: New file.
+       (gthread_stuff): Make all gthread available with
+       IA64_UNWIND_INFO.
+       (dwarf_fde): Define an IA64 struct for dwarf_fde.
+       (__register_frame_info, __register_frame): Move to common area of file.
+       (__register_frame_info_table, __register_frame_table): Move to common i
+       area.
+       (__deregister_frame_info, __deregister_frame): Move to common area.
+       (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
+       (read_uleb128): New version for ia64.
+       (get_unwind_record): Read the next IA-64 unwind record.
+       (read_R_record): Read a region header record.
+       (process_a_b_reg_code): X record helper.
+       (read_X_record): Read an X format record.
+       (read_B_record): Read a B format record.
+       (P3_record_types): List of record types matching the P3 format.
+       (P7_record_types): List of record types matching the P7 format.
+       (P8_record_types): List of record types matching the P8 format.
+       (read_P_record): Read a P format record.
+       (init_ia64_reg_loc): Set default fields for a register.
+       (init_ia64_unwind_frame): Set defaults for all register records.
+       (execute_one_ia64_descriptor): Execute one descriptor record.
+       (rse_address_add): Calculate the position of a local reg in memory.
+       (normalize_reg_loc): Turn a location descriptor into a memory address.
+       (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
+       within a specified PC offset range.
+       (get_real_reg_value): Given a register location, retrieve its value.
+       (set_real_reg_value): Change the value of a register location.
+       (copy_reg_value): Copy reg values, if needed.
+       (copy_saved_reg_state): Copy all registers that need to be copied.
+       (process_state_between): Normalize all frame register records that
+       fall within the specified PC range.
+       (frame_translate): Take a processed frame description, and turn
+       everything into addresses.
+       (build_ia64_frame_state ): Find and create frame state record for a PC.
+       (get_personality): Get the personality routine for a given frame.
+       (get_except_table): Get the exception table for a given frame.
+       (record_name): Unwind record names for debugging.
+       (print_record): Print and unwind record.
+       (print_all_records): Print an entire unwind image.
+       (__ia64_backtrace): Print a backtrace.
+       (ia64_backtrace_helper): New function.
+       (__register_frame_info_aux): New function.
+       * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
+
+       * frame.h (enum unw_record_type): New unwind record types.
+       (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
+       (struct unw_r_record, unwind_record): New unwind record structs.
+       (struct unwind_info_ptr): Unwind information layout.
+       (IA64_UNW_LOC_TYPE_*): Macros for different types for location
+       descriptors.
+       (struct ia64_reg_loc): Register location description.
+       (struct ia64_frame_state): Location of all registers in a frame.
+       (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
+       * libgcc2.c (__ia64_personality_v1): Personality routine.
+       (__calc_caller_bsp): Calculate the bsp register for the caller's
+       frame.
+       (ia64_throw_helper): Figure out who to return to and set up the
+       registers.
+       (__throw): Throw routine.
+
+       * output.h (assemble_eh_align, assemble_eh_label): New functions
+       to generate EH info where we want it.
+       (assemble_eh_integer): New function.
+       * toplev.c (compile_file): Output module level exception table for
+       non-ia64 targets.
+       (main): Set exceptions_via_longjump and flag_new_exceptions based
+       on IA64_UNWIND_INFO too.
+
+       * varasm.c (assemble_eh_label): Generate a label via
+       ASM_OUTPUT_EH_LABEL if it has been specified.
+       (assemble_eh_align): Generate an alignment directive via
+       ASM_OUTPUT_EH_ALIGN if it has been specified.
+       (assemble_eh_label): Generate an integer value via
+       ASM_OUTPUT_EH_type if they have been specified.
+       * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
+       (ia64_init_builtins): Add __builtin_ia64_bsp
+       and __builtin_ia64_flushrs.
+       (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
+       IA64_BUILTIN_FLUSHRS.
+       * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
+       IA64_BUILTIN_FLUSHRS.
+
+       * config/ia64/ia64.md (flushrs): New insn to flush the register
+       stack.  Add to unspec list.
+
+       * config/ia64/crtbegin.asm (frame_object): Change size.
+       (__do_frame_setup_aux): New function.
+       * config/ia64/crtend.asm: call __do_frame_setup_aux.
+       * config/ia64/t-ia64 (LIB2ADDEH): Add.
+       * Makefile.in (LIB2ADDEH): Add.
+       (LIB2ADD): Use LIB2ADDEH.
+
+2000-05-24  Richard Henderson  <rth@cygnus.com>
+
+       * recog.c (offsettable_address_p): If mode size is zero, assume
+       BIGGEST_ALIGNMENT.
+
+2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
+
+       * configure.in: Check for -Wno-long-long option support and improve
+       handling of warning CFLAGS for stages 1 and 2.
+       * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
+       * configure: Regenerate.
+
+Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * gcc.texi: Remove contributor list.  Instead include contrib.texi.
+       * contrib.texi: New file.
+
+Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (basic_induction_var): Avoid double recording of an increment.
+
+Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * Back out this patch:
+       Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
+         * loop.h (struct induction): Add multi_insn_incr.
+         * loop.c (basic_induction_var): New multi_insn_incr argument.
+         Set it if we search back through previous insns for the biv.
+         (record_biv): New multi_insn_incr argument; fill in struct induction.
+         (strength_reduce): Discard an iv with multiple bivs, any of
+         which require multiple insns to increment.
+
+       * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
+
+Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * rtl.h (loc_mentioned_in_p): Declare.
+       * reload.c (loc_mentioned_in_p): Moved from here...
+       * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
+       Fix loop increment for 'E' handling.
+       * loop.c (strength_reduce): When doing biv->giv conversion,
+       take multi-insn biv increments into account.
+
+2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
+
+       * stmt.c (expand_end_bindings): Look through NOTEs to find a
+       BARRIER.
+
+2000-05-24  Mark Mitchell  <mark@codesourcery.com>
+
+       * calls.c (expand_call): Handle cleanups in tail-recursion
+       arguments analogously to cleanups in sibling calls.
+
+2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
+       All callers changed.
+
+2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * expr.c (expand_assignment, store_expr, expand_expr,
+       expand_expr_unaligned): Set in_check_memory_usage while emitting
+       chkr_check_addr libcall.
+
+2000-05-24  Nick Clifton  <nickc@cygnus.com>
+
+       * fold-const.c (extract_muldiv): When constructing a
+       multiplier/divisor, do not expect const_binop to correctly
+       determine if overflow has occurred, so check explicitly.
+
+2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * c-decl.c (build_enumerator): Don't modify the value's type,
+       convert it.
+
+2000-05-24  Andreas Jaeger  <aj@suse.de>
+
+       * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
+
+2000-05-24  Eric Christopher <echristo@cygnus.com>
+
+       * configure.in: Redefine inhibit_libc conditions.
+       * libgcc2.c: Remove inhibit_libc conditional define.
+       * configure: Regenerate.
+
+2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
+
+       * configure.in:  For --enable-languages=LIST, check for empty LIST.
+       * configure:  Regenerate.
+
+2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
+
+       * pdp11.h (STACK_BOUNDARY): Define.
+
+2000-05-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * ifcvt.c (if_convert): Update life info globally.
+
+2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * emit-rtl.c (unshare_all_decls): New function.
+       (unshare_all_rtl): Call it.
+
+2000-05-23  Nick Clifton  <nickc@cygnus.com>
+
+       * configure.in: Treat 'strongarm' as if it were 'arm' when
+       determining cpu type.
+
+       * configure: Regenerate.
+
+       * config/arm/arm.c: Change 'char *' to 'const char *' for cases
+       where constant strings are involved.
+
+       * config/arm/arm.h (arm_condition_codes): Change type to 'const
+       char *'.
+
+       * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
+       cases where constant strings are involved.
+
+Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/sh/sh.c (gen_far_branch, split_branches): Update
+       to reflect new prototypes for redirect_jump and invert_jump.
+       (sh_insn_length_adjustment): Get rid of const warnings.
+
+2000-05-23  Kazu Hirata  <kazu@hxi.com>
+
+       * invoke.texi (Options for Debugging Your Program or GCC): Update
+       the names of dump files.
+
+Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
+       * configure: Regenerated.
+
+2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * simplify-rtx.c (SIGN_EXTEND): New macro.
+       (simplify_unary_operation, simplify_binary_operation,
+       simplify_relational_operation): Use SIGN_EXTEND.  Make low
+       halves of (low, high) pairs unsigned if they weren't already.
+       (simplify_ternary_operation): Cast INTVAL to unsigned before
+       comparing to a MODE_BITSIZE.
+
+2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
+       rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
+
+       * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
+       gcc_AC_NEED_DECLARATIONS.
+
+       * dwarfout.c: Don't prototype time().
+
+       * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
+
+       * system.h: Likewise.
+
+       * toplev.c: Likewise.
+
+2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-decl.c (pushdecl): Invert sense of test for non-global types.
+
+Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
+
+2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+       * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
+
+Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
+       (alpha_start_function): Never write ..ng label if VMS or NT.
+       (alpha_align_insns): Remove GP_IN_USE arg.
+       Alignment now unsigned.
+       (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
+       * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
+       and two define_insn's.
+
+2000-05-22  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (simplify_comparison): Use trunc_int_for_mode.
+
+2000-05-22  Richard Henderson  <rth@cygnus.com>
+
+       * stor-layout.c (place_field): Change rli->size to rli->offset.
+
+2000-05-22  Richard Henderson  <rth@cygnus.com>
+
+       * function.c (thread_prologue_and_epilogue_insns): Make sure
+       existing line number notes appear after the prologue.
+
+Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/alpha/alpha.c (alpha_fnname): New static variable.
+       (print_operand, case '~'): New case.
+       (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
+       (alpha_start_function): Set alpha_fnname.
+       Write "ng" label if no ldgp; don't write ldgp insn.
+       * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
+       * config/alpha/alpha.md (prologue_ldgp): New define_insn.
+
+Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
+       on deleted labels.
+
+2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * varasm.c (eh_frame_section): Revert change to argument list.
+
+Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
+       (gen_extend_insn, can_fix_p, can_float_p): Likewise.
+
+       * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
+       dangling "else" that causes "break" to be conditional.
+       Also remove unneeded code at start.
+
+Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
+       * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
+       * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
+
+2000-05-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
+       just one argument.
+
+Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (record_component_aliases): New function.
+       * tree.h: Clean up some declarations and comments.
+       (record_component_aliases): New declaration.
+       * tree.c (get_alias_set): If type and has alias set, use it.
+
+2000-05-22  Richard Henderson  <rth@cygnus.com>
+
+       * simplify-rtx.c (simplify_ternary_operation): Try to simplify
+       IF_THEN_ELSE to a setcc form.
+       * jump.c (can_reverse_comparison_p): Be prepared for insn null.
+
+2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
+       (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
+
+Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
+       not a PARALLEL.
+
+2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
+       * config/mn10300/mn10300.c (print_operand): Likewise.
+
+       * final.c (split_double): Right shift of negative values is not
+       portable.
+
+       * ifcvt.c (if_convert): Scan and kill dead code.
+
+       * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
+
+2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * diagnostic.c: Eliminate implicit int.
+       * except.c, gcc.c: Add static prototypes.
+       * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
+       * gensupport.c (process_rtx): Use XVEC to initialize vector
+       slot of 'split'.
+
+       * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
+       debug_reg_names instead of static reg_names.  If not, define
+       global reg_names.
+       * regclass.c: Don't define global reg_names unless
+       DEBUG_REGISTER_NAMES is defined.
+
+       * reload1.c (order_regs_for_reload): Remove unused variable.
+       * varasm.c: Include output.h after defaults.h.  Define
+       eh_frame_section as function of no args, not of unspecified args.
+
+       * gcc.c: Constify argbuf; arguments to store_arg,
+       process_command, main; elements of struct command and struct
+       switchstr; local variables in execute, process_command, main.
+
+2000-05-20  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/inclhack.def:  many applications of c_fix=format + tests
+       * fixinc/check.diff:  regenerated
+       * fixinc/fixincl.x:  regenerated
+
+Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c: Clarify some comments.
+       (record_base_value): REGNO is unsigned.
+       * rtl.h (record_base_value): Likewise.
+
+       * alias.c (aliases_everything_p): Don't special-case QImode here.
+       * c-common.c (c_get_alias_set): Do it here.
+       Handle BIT_FIELD_REF by getting alias info for arg.
+       Use POINTER_TYPE_P.
+
+2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * mklibgcc.in: Restore rule to create ${dir}.
+
+Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
+
+       * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
+       GCC_FOR_TARGET used by MULTILIBS.
+       * mklibgcc.in: Make sure each .o file depends on the
+       directory it will be in.
+       Make the multilib directory depends libgcc.
+
+Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
+
+       * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
+
+Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * fold-const.c (make_range): Handle degenerated intervals.
+       Fixes c-torture/execute/991221-1.c
+
+Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
+       * reload.c (find_equiv_reg): Likewise.
+       * alias.c (init_alias_analysis): Likewise.
+       Only call prologue_epilogue_contains on insns.
+       * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
+       * bb-reorder.c (hard-reg-set.h): Include earlier.
+       * haifa-sched.c (hard-reg-set.h): Likewise.
+       * ifcvt.c (hard-reg-set.h): Likewise.
+       * local-alloc.c (hard-reg-set.h): Likewise.
+       * loop.c (hard-reg-set.h): Likewise.
+       * predict.c (hard-reg-set.h): Likewise.
+       * regrename.c (hard-reg-set.h): Likewise.
+       * flow.c (hard-reg-set.h): Likewise.
+       (reg_set_to_hard_reg_set): New function.
+       * bitmap.c (regs.h, basic-block.h): No longer include.
+       (bitmap.h): Now include.
+       * conflict.c (hard-reg-set.h): Include.
+       * profile.c (hard-reg-set.h): Likewise.
+       * print-rtl.c (hard-reg-set.h): Likewise.
+       * sbitmap.c (hard-reg-set.h): Likewise.
+       * toplev.c (hard-reg-set.h): Likewise.
+       * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
+       * hard-reg-set.h (reg_names): Now constant.
+       * regs.h (reg_names): Likewise.
+       * regclass.c (reg_names): Likewise.
+       * loop.h (basic-block.h): No longer include.
+       (bitmap.h): Now include.
+       * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
+       * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
+       (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
+
+2000-05-19  Jan Hubicka  <jh@suse.cz>
+           Richard Henderson  <rth@cygnus.com>
+
+       * basic-block.h (struct edge_def): New field "count".
+       (struct basic_block_def): Likewise.
+       * flow.c (entry_exit_blocks): Add count fileds.
+       (split_edge): Keep count information up-to-date.
+       (dump_edge_info, dump_flow_info): Dump count fields.
+
+       * final.c (count_instrumented_edges): Rename to edge from arc.
+       (end_final): Update users.
+       * profile.c: Include expr.h, basic-block.h.
+       (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
+       (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
+       (ignore_next_note, return_label_execution_count): Kill.
+       (bbg_file_name, da_file_name): Kill.
+       (edge_info, bb_info): New structures.
+       (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
+       (count_instrumented_edges, total_num_edges): Rename to edge from arc.
+       (total_num_edges_instrumented): Likewise.
+       (init_arc, expand_spanning_tree): Kill.
+       (fill_spanning_tree, tablejump_entry_p): Kill.
+       (instrument_edges):  Rewrite from instrument_arcs to use
+       commit_edge_insertions infrastructure.
+       (compute_branch_probabilities): Remove arguments; rewrite for
+       CFG infrastructure; use rtl_dump_file directly.
+       (branch_prob, find_spanning_tree): Likewise.
+       (union_groups, find_group): New.
+       (init_branch_prob): Make bbg_file_name and da_file_name local.
+       (end_branch_prob): Use rtl_dump_file directly.
+       (init_edge_profiler): Rename to edge from arc.
+       (output_arc_profiler): Kill.
+       (gen_edge_profiler): New.
+       (output_func_start_profiler): Turn off profiling.  Make the
+       constructor static when we can.
+       * rtl.h (branch_prob, end_branch_prob): Update prototypes.
+
+       * toplev.c (DFI_flow): Remove.
+       (DFI_cfg, DFI_life): New.
+       (dump_file): Update accordingly.
+       (compile_file): Call end_branch_prob if profile_arc_flag too.
+       (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
+       profiling after the CFG is built.  Move flow1 life analysis to
+       DFI_life.  Always estimate remaining probabilities.
+
+2000-05-19  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
+
+       * flow.c (make_edges): The sibling call edge to exit is abnormal.
+
+2000-05-19  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (redirect_jump): Add delete_unused argument.  Don't
+       remove labels and code following when LABEL_NUSES goes to zero.
+       (invert_jump): Likewise.
+       (jump_optimize_1): Fix redirect/invert arguments.
+       (do_cross_jump, thread_jumps): Likewise.
+       * flow.c (split_edge): Likewise.
+       * reorg.c (optimize_skip): Likewise.
+       (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
+       * profile.c (instrument_arcs): Likewise.
+       * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
+       * rtl.h: Update prototypes.
+
+Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * ssa.c (convert_from_ssa): Tell life_analysis we need death
+       notes.
+       (make_regs_equivalent_over_bad_edges): Only look at abnormal
+       critical edges.
+
+2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (funlike_macroexpand): Make sure not to walk p1
+       past l1 when deleting whitespace and markers.
+
+       * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
+       * cpplib.c (do_unassert): Put the list to compare against on
+       the stack.
+
+2000-05-19  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/README:  cleaned up old documentation
+       * fixinc/check.diff: regenerated & verified on OSR5 on ix86
+       * fixinc/check.tpl: compute the list of needed directories
+       emit "#if defined(name)" because of conflict
+       omit machine name differences from output differences
+       * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
+       (machine_name): change test text to use `sed' markers
+       * fixinc/fixincl.x: regen
+
+Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
+       a CONSTRUCTOR.
+
+2000-05-18  Chris Demetriou  <cgd@sibyte.com>
+
+       * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
+       it to match the current practice.
+
+2000-05-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
+
+2000-05-18  Richard Henderson  <rth@cygnus.com>
+
+       * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
+       * rtl.h (insn_dependant_p): Declare it.
+       * loop.c (strength_reduce): Use it.
+
+2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
+       16-bit and 64-bit clean-up.
+
+2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
+
+       * configure.in (*-pc-msdosdjgpp): Set float_format to none.
+       * configure: Rebuilt.
+
+2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * genopinit.c: Use $ for escape sequences in optab patterns.
+       Remove backslashes from optab patterns.  Change $A, $B, $C to
+       expand to (int) whatever instead of just whatever; remove
+       explicit (int) from all optab patterns.
+
+       * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
+       * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
+       genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
+       genrecog.c: Remove private copies of xmalloc, xrealloc, and
+       xstrdup.
+
+2000-05-18  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (jump_optimize_1): Base minimum insn count during
+       find_cross_jump on BRANCH_COST.
+
+2000-05-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * print-rtl.c (print_rtx): Only print note line number as string
+       if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
+       * final.c (final_scan_insn): Do nothing for note line number 0.
+
+2000-05-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
+       from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
+       NOTE_INSN_DELETED_LABEL.
+
+2000-05-18  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
+       uninitialized data in .rodata not .bss, and do not interpret an
+       error in the initialisation value as meaning that the variable
+       should be placed in the .bss section.
+
+Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
+       not `$ac_cv_prog_cc_cc_c_o'.
+       * configure: Regenerated.
+
+2000-05-18  Chris Demetriou  <cgd@sibyte.com>
+           Richard Henderson  <rth@cygnus.com>
+
+       * c-common.h (enum c_tree_index): Add g77 type entries.
+       (g77_integer_type_node, g77_uinteger_type_node): New.
+       (g77_longint_type_node, g77_ulongint_type_node): New.
+       * c-decl.c (init_decl_processing): Initialize them.
+
+2000-05-18  Richard Henderson  <rth@cygnus.com>
+
+       * config/h8300/h8300.md (subs patterns): Use %G to negate.
+
+       * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
+       (small_power_of_two): Likewise; use exact_log2.
+       (adds_subs_operand, one_insn_adds_subs_operand): Remove.
+       (output_adds_subs): Remove.
+       (two_insn_adds_subs_operand): New.
+       (split_adds_subs): New.
+       * config/h8300/h8300-protos.h: Update.
+       * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
+       (CONST_OK_FOR_L): Match strict adds operands.
+       (CONST_OK_FOR_N): Match struct subs operands.
+       * config/h8300/h8300.md (adds_subs insns): Remove.
+       (addhi patterns): Output adds/subs directly.
+       (addsi_h8300h): Likewise.
+       (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
+
+2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c (parse_assertion): New.
+       (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
+       (_cpp_parse_expr): Remove case '#'.  Don't set
+       parsing_if_directive.
+       * cpphash.c (collect_objlike_expansion,
+       collect_funlike_expansion, collect_params,
+       _cpp_create_definition): The list no longer has a trailing
+       VSPACE token.
+       * cpphash.h (enum node_type): Add T_ASSERTION.
+       (struct hashnode): Remove aschain, add pred.
+       (struct predicate): New.
+       Update prototypes.
+
+       * cpplex.c (expand_token_space): Handle both offset and
+       nonoffset lists.
+       (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
+       (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
+       _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
+       _cpp_equiv_toklists): New.
+       (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
+       stop at any single-character token, not just newline.
+       (_cpp_lex_token): Remove special cases for #define and #if.
+       (cpp_get_token): Expect # as a separate token type.  Remove
+       DIRECTIVE case.
+       (_cpp_get_directive_token): Remove DIRECTIVE case.
+       (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
+
+       * cpplib.c (_cpp_check_directive): Set dirno and
+       SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
+       (_cpp_handle_directive): Run # <number> through the same logic
+       as normal directives.
+       (do_define): Don't set parsing_define_directive.  Use
+       _cpp_scan_until.  The list does not have a VSPACE at the end.
+       (do_if): Save, clear, and restore only_seen_white around
+       _cpp_parse_expr.
+       (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
+       (do_assert, do_unassert): Rewrite.
+
+       * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
+       (LIST_OFFSET): New flag.
+       (struct cpp_toklist): Replace dir_handler and dir_flags with
+       dirno and flags.
+       (struct cpp_reader): Remove parsing_if_directive and
+       parsing_define_directive.
+
+2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
+       following the cabs decl which terminate on the following line.
+       Add the corresponding test_text case.
+
+2000-05-18  Neil Booth  <NeilB@earthling.net>
+
+       * cppinit.c (cpp_reader_init): Initialize col_adjust and
+       default tab stop size.
+       (no_num, OPT_ftabstop): New.
+       (handle_option): Handle "ftabstop=" command-line option.
+       (print_help): Document it.
+       * cpplex.c (COLUMN): Remove.
+       (handle_newline): Reset col_adjust.
+       (skip_whitespace): Update col_adjust as tabs encountered.
+       (_cpp_lex_line): Update to use col_adjust.  Call
+       skip_whitespace for all whitespace.
+       * cpplib.h (struct cpp_options): New member tabstop.
+       (struct cpp_reader): New member col_adjust.
+       (CPP_BUF_COL): Update.
+       (CPP_BUF_COLUMN): New.
+       * cpp.texi: Document "-ftabstop=" command line option.
+
+Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
+       files.
+       * configure: Rebuilt.
+
+Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+       * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
+
+       * tree.c (build_common_tree_nodes): Do not build TI nodes unless
+       HOST_BITS_PER_WIDE_INT is >= 64.
+
+2000-05-17  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (jump_optimize_1): Remove inactive but real insns
+       in jump-to-next-insn optimization.
+
+2000-05-17  Richard Henderson  <rth@cygnus.com>
+
+       * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
+       unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
+       Don't call recompute_reg_usage if no_new_pseudos is true.
+       * lcm.c (optimize_mode_switching): Move ifdefs outside function.
+       Return true if we did work; update global life information.
+       * basic-block.h (optimize_mode_switching): Update decl.
+
+2000-05-17  Neil Booth  <neilb@earthling.net>
+
+       * cpplex.c (expand_name_space): Don't use ptrdiff_t.
+
+2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c: New feature, #pragma system_header.
+       * cpp.texi: Document special treatment of system headers, and
+       the various mechanisms to get a header that special treatment.
+
+2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h (offsetof): Define at the very end, to ensure we prefer
+       the platform's definition if available.
+
+2000-05-16  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
+       * fixinc/server.c: likewise
+       * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
+       + #ifdef debugging code + use #def constant for
+       sub-pattern count
+       * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
+       on C++ math namespace
+
+2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
+       Don't check the return value of sprintf.  Use asprintf to avoid
+       buffer overflows.
+
+Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * flags.h (warn_unused_function, warn_unused_label,
+       warn_unused_parameter, warn_unused_variable, warn_unused_value):
+       Replace ``warn_unused''.
+       (set_Wunused): Add declaration.
+       * toplev.c (set_Wunused): New function.
+       (warn_unused_function, warn_unused_label, warn_unused_parameter,
+       warn_unused_variable, warn_unused_value): New variables.
+       (W_options): Add -Wunused-function, -Wunused-function,
+       -Wunused-label, -Wunused-parameter, -Wunused-variable and
+       -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
+
+       * toplev.c (decode_W_option): Update -Wunused flags by calling
+       set_Wunused.
+       * c-decl.c (c_decode_option): Ditto for -Wall.
+
+       * stmt.c (expand_expr_stmt, expand_expr_stmt,
+       warn_about_unused_variables): Replace warn_unused with more
+       explicit warn_unused_value et.al.
+       * function.c (expand_function_end): Ditto.
+       * c-typeck.c (internal_build_compound_expr,
+       internal_build_compound_expr): Ditto.
+       * c-decl.c (poplevel, pop_label_level): Ditto.
+       * toplev.c (check_global_declarations): Replace warn_unused with
+       check for either warn_unused_function or warn_unused_variable.
+
+       * gcc.1, invoke.texi (Warning Options): Document
+       -Wunused-function, -Wunused-function, -Wunused-label,
+       -Wunused-parameter, -Wunused-variable and -Wunused-value options.
+
+Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
+       $(srcdir), not in the current directory.
+
+2000-05-16  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
+       assembler supports it.
+       (.fini, .init): Use a gp-relative indirect call.
+       (__do_global_dtors_aux): Preserve the gp; rebundle.
+       (__do_frame_setup): Likewise.
+       * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
+       (.init): Use a gp-relative indirect call.
+       (__do_global_ctors_aux): Preserve the gp.
+
+2000-05-16  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (commit_one_edge_insertion): Be prepared for a return
+       insn to be inserted on the edge with a normal jump.
+       * jump.c (jump_optimize_1): Don't look to create return isns.
+
+       * flow.c (flow_delete_insn): Don't adjust reference count of notes.
+       * jump.c (jump_optimize_1): Likewise.
+       (returnjump_p): Verify the argument is a JUMP_INSN.
+       * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
+
+2000-05-16  Nick Clifton  <nickc@cygnus.com>
+
+       * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
+       GET_RTX_CLASS (GET_CODE ()) == 'i'.
+       (large_insn_p): Ditto.
+       (m32r_is_insn): New function: Return true if the insn contains
+       an executable instruction.
+       (m32r_adjust_insn): Use m32r_is_insn.
+       (m32r_sched_reorder): Use m32r_is_insn.
+       (m32r_sched_variable_issue): Use m32r_is_insn.
+
+2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
+       VAR_DECL.
+
+       * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
+
+       * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
+       according to given options.
+
+Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
+       if X has VOIDmode either.
+       (LIMIT_RELOAD_CLASS): Similarly.
+
+       * mn10200.md (indirect_jump, tablejump): Use "register_operand",
+       not "general_operand" to match the processor's capabilities.
+
+2000-05-16  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/README:  corrected return address
+       * fixinc/check.diff:  regenerate, now that test works
+       * fixinc/fixfixes.c(format_fix,format_write): reformatted
+       (char_macro_def_fix,char_macro_use_fix): corrected and
+       rewrote to use regex to parse the text
+       * fixinc/inclhack.def: more testing
+       * fixinc/fixincl.x:  regenerated
+
+       * fixinc/inclhack.def: added several "test_text" attributes
+       changed several fixes to use `c_fix = format'
+       re-alphabetized the fixes
+
+       * fixinc/check.diff: regenerate
+       * fixinc/fixincl.x: regenerate
+       * fixinc/check.tpl: added `sparc' and `netinet' to the list
+       of created dirs
+
+
+2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
+
+2000-05-15  Richard Henderson  <rth@cygnus.com>
+
+       * toplev.c (rest_of_compilation): Run full jump pass before
+       find_basic_blocks of flow2.
+
+2000-05-15  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c: Fix typos and clarify commentary from last change.
+       (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
+       (safe_to_remove_jump_p): Remove.
+       (condjump_label): Use pc_set.
+
+2000-05-15  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
+       that get in the way after reload.
+       (cond_exec_process_if_block): Skip a label heading THEN block.
+
+2000-05-15  Richard Henderson  <rth@cygnus.com>
+
+       * varasm.c (output_constant_pool): Abort instead of converting
+       (improperly) deleted labels to zero.
+
+2000-05-16  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (parse_string2): Update comment.
+       (cpp_lex_line): No special assertion treatment for '('.
+       * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
+       * cpplib.h (SYNTAX_ASSERT): Remove.
+
+Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * jump.c (condjump_p):  Mark as depreached.
+       (any_condump_p): New.
+       (any_uncondump_p): New.
+       (pc_set): New.
+       (safe_to_remove_jump_p): New.
+       * rtl.h (any_condump_p, any_uncondjump_p, pc_set
+       safe_to_remove_jump_p): Declare.
+
+Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c: Re-install both patches reverted by last patch.
+       (struct arg_data): New field tail_call_reg.
+       (initialize_argument_information): Initialize tail_call_reg
+       (load_register_parameters): New argument flags, use
+       tail_call_reg when emiting tail call sequence.
+       (expand_call): Update call of load_register_parameters;
+       copy unadjusted_args_size to adjusted_args_size.
+
+Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
+       and bct_p parameters to flags.
+       * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
+       * rtl.h (loop_optimize): Update prototype.
+       * toplev.c (rest_of_compilation): Update call of loop_optimize.
+
+2000-05-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * calls.c (expand_call): Move expand_start_target_temps call after
+       start_sequence().
+
+2000-05-15  Neil Booth  <NeilB@earthling.net>
+
+       * cpphash.c (trad_stringify, warn_trad_stringify,
+       collect_params): Make some pointers pointers to const.
+       * cpplex.c (auto_expand_name_space) Guaranteed to always
+       expand by at least one character.
+       (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
+       (struct token_spelling): Use const U_CHAR * rather than PTR.
+       (expand_name_space): Fix up token pointers if name space
+       is moved when expanding.
+       (INIT_NAME, cpp_scan_line, parse_name, parse_number,
+       parse_string2, save_comment, spell_token, cpp_output_list):
+       Update so the routines handle tokens with a direct pointer to
+       their text, rather than an offset into the token's list's namebuf.
+       (_cpp_lex_line): Rearrange for clarity.
+
+       * cpplib.c (_cpp_check_directive): Similarly.
+       (do_define): Make SYM a pointer to const.
+       * cpplib.h (struct cpp_name): Replace offset with direct pointer.
+       (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
+       (TOK_OFFSET): Delete.
+       (TOK_NAME): Update.
+
+2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
+       64-bit ABI.
+
+       * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
+       into account.
+       (logical_u_operand): Delete.
+       (non_logical_cint_operand): Rewrite to take MODE into account.
+       (non_logical_u_cint_operand): Delete.
+       (boolean_operator): New function.
+       (print_operand): Add new %q operand.
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
+       remove logical_u_operand and non_logical_u_cint_operand,
+       update logical_operand and non_logical_cint_operand.
+       * config/rs6000/rs6000.md: Rewrite the patterns for performing
+       logical operations to use %q.
+
+       * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
+       (movdi): Make similar to movsi.
+       * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
+       is no such thing as a DImode CONST_DOUBLE.
+       * config/rs6000/rs6000.c (output_toc): Likewise.
+
+       * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
+       codes when old mnemonics are in use.  Print register names
+       for cc registers when requested.
+
+       * optabs.c (expand_float): Don't allow mode widening that causes
+       double rounding.
+
+       * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
+       flags to their current names -maix64 and -maix32.
+
+2000-05-14  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
+       and/or after current text of file
+       * fixinc/fixlib.c(must_malloc):
+       * fixinc/fixlib.h(must_malloc): + reformatting
+       * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
+       with usages of ``c_fix = wrap;''
+       Add several tests and use the ``c_fix = format'' fixer more.
+       * fixinc/fixincl.x: regen
+       * fixinc/check.diff: regen
+       * fixinc/check.tpl: emit the associated header with the missing
+       test message
+
+Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
+       variables $src and $dst.
+
+2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
+
+       * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
+       (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
+       (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
+       (struct output_buffer: emitted_prefix_p, prefixing_rule): New
+       fields.
+       (set_message_prefixing_rule): Declare.
+
+       * diagnostic.c: (current_prefixing_rule): New variable.
+       (set_message_prefixing_rule): Define.
+       (output_set_prefix): Adjust buffer->emitted_prefix_p.
+       (init_output_buffer): Adjust Initialization.
+       (output_emit_prefix): Rewrite.  Take prefixing rules into account.
+
+Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * ifcvt.c (if_convert): Do not free NULL.
+
+2000-05-12  H.J. Lu  (hjl@gnu.org)
+
+       * gthr-dce.h: Add support for libobjc.
+       * gthr-posix.h: Likewise.
+       * gthr-solaris.h: Likewise.
+       * gthr-vxworks.h: Likewise.
+       * gthr-single.h: Likewise.
+       * gthr-win32.h: Likewise.
+
+2000-05-12  Nick Clifton  <nickc@cygnus.com>
+
+       * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
+       to move a double word value.
+       (di_operand): New function: Return true if the operand is suitbale
+       for a double word move operation.
+       (nonimmediate_di_operand): New function: Return true if the
+       operand is a DImode register or MEM.
+
+       * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
+       nonimmediate_di_operand.
+
+       * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
+       nonimmediate_di_operand.
+
+       * config/fr30/fr30.md (movdi): New pattern.  Required because
+       other patterns generate DImode results.
+       (movdi_insn): New pattern.
+
+2000-05-12  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (struct shadow_summary): Define
+       bitfields as type unsigned int.
+
+Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/t-avr: Added definition of FLOAT while generates
+       fp-bit.c
+
+       * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
+       peepholes for tst+jump = sbrs/sbrc optimization.
+
+Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * expr.c (emit_push_insn): Do not adjust stack pointer when
+       preallocating.
+
+Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
+       * system.h (offsetof): ... to here.
+
+2000-05-12  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
+       * final.c (final_end_function): Use app_disable.  Rearrange note
+       handling into a switch.  Emit deleted labels.
+       (output_asm_label): Generate label strings for deleted labels.
+       * flow.c (tail_recursion_label_list): New.
+       (find_basic_blocks_1): Set label_value_list directly.  Collect list
+       of tail recursion labels from call_placeholders.  Don't add deleted
+       labels to the label value list.
+       (cleanup_cfg): Use free_EXPR_LIST_list.
+       (flow_delete_insn_chain): Turn non-removable labels into notes.
+       (flow_delete_block): Don't disable deleting the block because of
+       a non-removable label.
+       (tail_recursion_label_p): New.
+       (merge_blocks_move_predecessor_nojumps): Don't disable the merge
+       because of a label.
+       (merge_blocks_move_successor_nojumps): Likewise.  Also move a
+       jump table.
+       (merge_blocks): Disable a merge because of tail recursion labels.
+       * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
+       Use a more accurate measure of not merging the join block.
+       (find_if_block): Don't disable conversion because of a label.
+       (find_if_case_1, find_if_case_2): Likewise.
+       * jump.c (duplicate_loop_exit_test): Preserve the kind of list
+       element when copying.
+       (squeeze_notes): Also leave EH notes.
+       (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
+       REG_LABEL notes.
+       (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
+       deleting a label.
+       * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
+       NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
+       referring to a deleted label.  Convert tail handling to a switch.
+       * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
+       for NOTE_INSN_DELETED_LABEL.
+       (NOTE): Fix commentary.
+       * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
+       (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
+       (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
+       (LABEL_NUSES, LABEL_REFS): Likewise.
+       * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
+
+2000-05-12  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/fixfixes.c(format_write): buglet & relaxed rules
+       * fixinc/check.diff: updated
+       * fixinc/inclhack.def: corrected & added some test_text-s
+       * fixinc/genfixes: removed unneeded options to autogen invocation
+       * fixinc/fixincl.tpl: Specified the output file
+       * fixinc/fixfixes.c: visual appearance
+       * fixinc/fixincl.x: regenerate
+
+2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
+
+       * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
+       CTRL_defn_fix): Delete.
+       (fix_char_macro_defines, fix_char_macro_uses): Rename to
+       char_macro_def_fix and char_macro_use_fix, respectively.  Put
+       them into the FIXUP_TABLE.  Get the string to search for from
+       a c_fix_arg.
+
+       (format_write): New function.
+       (format_fix): Use it.
+
+       (FIX_PROC_HEAD): Constify text parameter.
+       (machine_name_fix): Constify all char *s.
+       * fixtests.c (skip_quote): Remove double static.
+
+       * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
+       ctrl_use_quotes): Update for new scheme.
+       * fixincl.x: Regenerate.
+
+2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
+       DWARF2_DEBUG.
+       (DWARF2_ASM_LINE_DEBUG_INFO): Define.
+       (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
+
+2000-05-11  Robert Lipe <robertlipe@usa.net>
+
+       * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
+       * fixincl.x: Regenerate.
+
+2000-05-11  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c: Revert both 05-09 patches.
+
+2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.c (print_operand): Print FP constants in
+       hexadecimal.
+       * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
+       for FP values.
+
+       * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
+       and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
+
+2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
+
+       * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
+
+2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
+
+Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
+       * config/avr/avr.c (jump_over_one_insn_p): New function.
+       * config/avr/avr.md: New peepholes added. Output test and
+       conditional jump to "sbrc" or "sbrs" command.
+
+2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
+
+       * cppmain.c (main): Use IS_DIR_SEPARATOR.
+
+2000-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * except.c (find_exception_handler_labels_1): New function.
+       (find_exception_handler_labels): Split into two functions, dive
+       into CALL_PLACEHOLDERs when looking for exception handler labels.
+
+2000-05-11 Stan Cox <scox@cygnus.com>
+
+       * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
+       * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
+       * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
+
+2000-05-11  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/fixfixes.c (double_slash_fix):  obsolete
+       (else_endif_label_fix): obsolete
+       (format_fix):  new, unused as yet
+       (main): obsolete
+       * fixinc/fixlib.h: added fix description struct for use by format_fix
+       * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
+       * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
+       modules.  Removed the vestiges of the script version.
+       Added support for "make check".
+       * fixinc/check.diff: base diff file (needs work!!)
+       * fixinc/check.tpl: quiet the fixup output
+       * fixinc/fixtests.c (main): obsolete
+       * fixinc/fixincl.sh:  don't bother copying fixincl to ..
+       * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
+
+Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
+
+       * toplev.c (rest_of_compilation): Remove dead code after
+       combine.
+
+2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (collect_funlike_expansion): Make "# is not
+       followed by a macro argument name" a pedwarn, not an error.
+       Preserve the # in the output.  Suppress the warning if lang_asm.
+
+Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
+       * configure: Rebuilt.
+
+2000-05-10 Laurynas Biveinis <lauras@softhome.net>
+
+       * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
+
+2000-05-10  Kazu Hirata  <kazu@hxi.com>
+
+       * combine.c (try_combine): Fix a typo.
+
+Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.md (insv): Add comment.
+
+2000-05-10  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
+       * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
+       dependencies on FPBIT and DPBIT.
+
+2000-05-10  Nick Clifton  <nickc@redhat.com>
+
+       * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
+       when optimising for size.
+       (mark_used_regs:) Ditto.
+       (try_pre_increment_1): Ditto.
+
+2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
+       Make error message friendlier.
+
+       * cpphash.h (struct hashnode): Use struct hack for name
+       member.
+       * cpphash.c (struct hashdummy): New.
+       (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
+       (make_HASHNODE): No need to set ->name pointer.  Correct
+       setting of p.
+       (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
+
+2000-05-10  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_basic_blocks_1): Remove any spare bb_note
+       after completion.
+
+2000-05-10  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
+
+2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
+
+       * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
+       after we enter .debug.
+
+2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
+       abstract instance of a nested inline function.
+
+       * stor-layout.c (finish_record_layout): finalize_type_size
+       before laying out the pending_statics.
+
+Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (spell_token): New function.
+       (spell_string, spell_comment, spell_name): fold into
+       spell_token.
+       (I, S): Add macros.
+       (E, H): Remove macros.
+       (save_comment): Save comment opening characters too.
+       (_cpp_lex_file): Update to use spell_token.  Tidy up comment
+       handling.
+       * cpplib.h (I, S): Add macros.
+       (E, H): Remove macros.
+       (TTYPE_TABLE): Update entries for new speller.
+       (SYNTAX_ASSERT): Remove.
+
+Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
+       when removing escaped newlines.  Reverse sense of test for
+       escaped newline.
+
+2000-05-09  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_basic_blocks_1): Do not delete the first
+       bb_note we run across.
+       (create_basic_block): Use reorder_insns to move an existing
+       bb_note to the correct place.
+
+2000-05-09  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c (expand_call): Increment currently_expanding_call
+       before calling optimize_tail_recursion.
+
+Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * reload1.c (reload_combine): Fix errors in last change.
+
+2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * gcc.c (used_arg): Skip over a semicolon at the end of the
+       split-up loop; don't break out of it.
+
+       * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
+       (tree.o): Depend on output.h.
+
+       * c-decl.c (pending_invalid_xref_file,
+       current_function_prototype_file): Constify.
+       (pushdecl): Constify a local char *.
+       (define_label): Constify filename parameter.
+       * c-lex.c (init_parse): Constify parameter and return value.
+       * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
+       * c-tree.h: Update prototypes.
+       * c-parse.in: Constify filename member of %union, and if_stmt_file.
+       * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
+       objc/objc-parse.c: Regenerate.
+
+       * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
+       * dwarfout.h: Update prototypes.
+       * expr.c (expand_expr): Constify a local char *.
+       * flags.h: Constify main_input_filename.
+       * function.c (expand_function_end): Constify filename parameter.
+       * genrecog.c (make_insn_sequence): Use a character array for
+       c_test_pos.
+       (main): Remove unused variables.
+       * input.h: Constify input_filename, main_input_filename, and
+       file_stack.name.  Update prototypes.
+       * output.h: Declare first_global_object_name and
+       weak_global_object_name here, as const char *.
+       * stmt.c (expand_asm_operands): Constify filename parameter.
+       * toplev.c (compile_file, push_srcloc, debug_start_source_file):
+       Constify filename parameter.
+       (input_filename, main_input_filename): Constify.
+       * toplev.h: Update prototypes.
+       * tree.c: Include output.h.  Don't declare
+       first_global_object_name or weak_global_object_name.  Clean up string
+       bashing in get_file_function_name_long.
+       * tree.h (struct tree_decl): Constify filename member.
+       (input_filename): Constify.
+       Update prototypes.
+       * varasm.c (first_global_object_name, weak_global_object_name):
+       Constify.
+       (assemble_start_function, assemble_variable): Clean up string bashing.
+
+       * gcc.c: Constify all spec-related strings initialized,
+       transitively, from string constants.  Constify all strings
+       and string variables related to multilibs.
+       (set_spec, read_specs): Cast argument to free to PTR.
+       (used_arg): Do not modify multilib_matches.  Use strncmp plus
+       length comparison to compare multilib switches.
+       * genmultilib: Constify everything declared in multilib.h.
+
+Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
+       as deleted.
+
+Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr-protos.h (extra_constraint): change a type of
+       second argument from char to int to avoid warnings.
+       (asm_output_byte): Likewise.
+
+       * config/avr/avr.c (MAX_LD_OFFSET) New macro.
+       (initial_elimination_offset): Handle elimination from
+       FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
+       (legitimate_address_p): Use MAX_LD_OFFSET.
+       (legitimize_address): Likewise.
+       (out_movqi_r_mr): Likewise.
+       (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
+       (out_movsi_r_mr): Use MAX_LD_OFFSET.
+       (out_movsi_mr_r): Likewise.
+       (out_movqi_mr_r): Likewise.
+       (out_movhi_mr_r): Likewise.
+       (notice_update_cc): Correct CC for the ashrqi3 with the shift
+       count as CONST_INT != 6.
+       (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
+       shift count is a CONSTANT_P, but not a CONST_INT.
+       (ashlhi3_out): Coding style modifications.
+       (ashlsi3_out): Likewise.
+       (ashrhi3_out): Likewise.
+       (ashrsi3_out): Likewise.
+       (lshrhi3_out): Likewise.
+       (lshrsi3_out): Likewise.
+       (ashrqi3_out): Generate shift for any known constant count without
+       scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
+       but not a CONST_INT.
+       (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
+       shift count is a CONSTANT_P, but not a CONST_INT.
+       (extra_constraint): change a type of
+       second argument from char to int to avoid warnings.
+       (asm_output_byte): Likewise.
+       (asm_file_end): Output size generated commands count as a hex
+       number too.
+
+       * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
+
+       * config/avr/avr.md (addhi3): Fragment commented by &&0 is
+       removed.
+       (ashlqi3): Values of "length" attribute changed. Shift count
+       uses constraints 'n' instead of 'i'.
+       (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
+       shifts without clobber register.
+       (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
+       (call_insn): Correct test for which_alternative == 1 (was 0).
+       (call_value_insn): Likewise.
+
+       * config/avr/t-avr: Remove definition of FLOAT while generates
+       fp-bit.c
+
+2000-05-09  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/check.tpl:  Template for checking fixes
+       * fixinc/inclhack.def:  Added 'test_text' for many fixes
+       disable hpux8_bogus_inlines on SCO
+       * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
+
+Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (expand_call): Reorganize somewhat in order
+       to avoid unnecesary recalculation inside loop and make
+       tail call failure code cleaner.
+
+Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (nonlocal_reference_p): Minor reformatting.
+       * reload.c (find_equiv_reg): Simplify logic for
+       CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
+       some some reformatting.
+       * reload1.c (reload_combine): Don't assume everything in
+       CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
+
+2000-05-08  Richard Henderson  <rth@cygnus.com>
+
+       * final.c (current_insn_predicate): New.
+       (final_scan_insn): Set it.
+       * output.h (current_insn_predicate): Declare.
+
+       * ifcvt.c (cond_exec_process_insns): New argument prob_val.
+       Attach it to call insns.
+       (cond_exec_process_if_block): Track probability for true and
+       false branches.
+       (dead_or_predicable): Likewise.
+
+       * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
+       (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
+       (PROB_VERY_LIKELY, PROB_ALWAYS): New.
+       (estimate_probability, expected_value_to_br_prob): Use them.
+
+       * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
+       * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
+       (ia64_expand_prediction): New.
+       (emit_insn_group_barriers): Don't look at notes.  Emit barriers
+       as needed after calls.
+       (ia64_epilogue_uses): Mark b0 used.
+       * config/ia64/ia64.md (beq_true, beq_false): Remove.
+       (bne_true, bne_false): Remove.
+       (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
+       (br_true, br_false): New.  Use predicate_operator and
+       ia64_expand_prediction.
+       (return_true, return_false): Likewise.
+       (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
+       (call_internal1, call_value_internal): Likewise.
+       (call_value_internal1, call_multiple_values_internal1): Likewise.
+
+       * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
+
+       * config/ia64/ia64.md (extendsfdf2): Split only after reload.
+
+2000-05-08  Richard Henderson  <rth@cygnus.com>
+
+       * rtlanal.c (may_trap_p): Consider old-style and volatile
+       asms to trap.
+
+Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
+
+2000-05-08  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.h (predicate_operator): Declare.
+
+       * config/ia64/ia64.md (extendsfdf2): Split the nop case out
+       of existence.
+
+       * gensupport.c (process_rtx): Copy and post-process each member
+       of the define_insn rtvec individually.
+
+Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (spell_token): New function.
+       (TOKEN_LEN): Add 1 for whitespace.
+       (_cpp_lex_file): Update to use spell_token.
+       * cpplib.h (E): Remove.
+       (TTYPE_TABLE): Update CPP_VSPACE entry.
+
+2000-05-08  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (init_propagate_block_info): Watch out for conditional
+       branch to next instruction, and thus one outgoing edge.
+
+       * config/ia64/ia64.c (ia64_encode_section_info): Exit early
+       for global register variables; don't special case __[CD]TOR_LIST__;
+       mind ggc_p for string allocation.
+
+2000-05-08  Nick Clifton  <nickc@cygnus.com>
+
+       * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
+
+2000-05-08  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
+       i?86-*-msdosdjgpp* no longer uses fixincludes
+       * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
+       * fixinc/inclhack.sh:  deleted
+       * fixinc/hackshell.tpl:  deleted
+       * fixinc/inclhack.tpl:  deleted
+       * fixinc/Makefile.in:  Remove dependencies on above
+       * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
+
+2000-05-08  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
+       support.
+
+2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
+       substitutions.
+
+Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c: Move new lexer definitions and prototypes
+       to top.  Conditional include these and the code if
+       NEW_LEXER is defined.  Rename functions whose names
+       clash if this code included.
+
+Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
+
+       * rtl.def (COND_EXEC): Clarify.
+
+       * i386.md (extendsidi2): Clobber (reg:CC 17) in the
+       same fashion as zero_extendsidi2.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * config/ia64/ia64.c (predicate_operator): New.
+       (ia64_print_operand): Handle 'J'.
+       (rtx_needs_barrier): Handle COND_EXEC.
+       * config/ia64/ia64.h (BRANCH_COST): Define.
+       (PREDICATE_CODES): Update.
+       * config/ia64/ia64.md: Document used unspec values.
+       (attr predicable): New.
+       (movxf, movxf_internal): New.
+       (extendsfdf2): Don't comment out nop.
+       (floatdidf2): Remove.
+       (truncxfsf2, truncxfdf2, floatdixf2): New.
+       (abssi2, absdi2): Put the neg in the "true" slot.
+       (conditional branch instructions): Mark not predicable.
+       (cmov*_internal): Use predicate_operator.  Split to cond_exec.
+       (abs*_internal): Likewise.
+       (alloc, set_bsp): Mark not predicable.
+       (barrier, insn_group_barrier, flush_cache): Likewise.
+       (define_cond_exec): New.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * c-decl.c: Include "tm_p.h".
+
+       * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
+       (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
+       (ia64_expand_op_and_fetch): Declare.
+       * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
+       (setjmp_operand): Constify variables for XSTR.
+       (ia64_encode_section_info): Likewise.
+       (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
+       values to int.
+       (ia64_asm_output_external): Constify name.
+       (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
+       (process_for_unwind_directive): Provide switch default.
+       (ia64_expand_compare_and_swap): Remove unused variables.
+       (ia64_expand_builtin): Likewise.
+       * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
+       for printing.
+
+       * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
+       (symbolic_operand, function_operand, setjmp_operand): Likewise.
+       (shift_count_operand, shift_32bit_count_operand): Likewise.
+       (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
+       (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
+       (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
+       (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
+       (ia64_expand_builtin): Likewise.
+       (call_multiple_values_operation): Make dest_regno unsigned.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.def (DEFINE_COND_EXEC): New.
+       * md.texi: Document it.
+
+       * gensupport.c (input_file): Remove.
+       (struct queue_elem): Add lineno.
+       (rtx_ready_queue): Remove.
+       (errors): New.
+       (predicable_default): New.
+       (predicable_true, predicable_false): New.
+       (define_attr_queue, define_attr_tail): New.
+       (define_insn_queue, define_insn_tail): New.
+       (define_cond_exec_queue, define_cond_exec_tail): New.
+       (other_queue, other_tail): New.
+       (queue_pattern): New.
+       (process_rtx): Add patterns to the appropriate queues.
+       (is_predicable, identify_predicable_attribute): New.
+       (n_alternatives, collect_insn_data): New.
+       (alter_predicate_for_insn, alter_test_for_insn): New.
+       (shift_output_template, alter_output_for_insn): New.
+       (process_one_cond_exec, process_define_cond_exec): New.
+       (init_md_reader): Read the entire file.  Process define_cond_exec.
+       (read_md_rtx): Return elements from the queues.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (mark_set_1): Don't update conditional life info
+       if the register is not_dead.
+
+2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
+       (mostlyclean): Also delete fixincl, fixinc.sh, and
+       specs.ready, and make clean in the fixinc subdir.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (gensupport.o): Compile for the host.
+       (host-prefix gensuuprt.o): Remove.
+       (genflags.o): Depend on gensupport.h and OBSTACK_H.
+       (genattrtab.o): Likewise.
+       (gencodes.o): Depend on gensupport.h.
+       (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
+       (genpeep.o, genattr.o, genoutput.o): Likewise.
+
+       * gensupport.c (obstack, rtl_obstack): New.
+       (init_md_reader): Initialize rtl_obstack.
+       * gensupport.h (rtl_obstack): Declare.
+       (message_with_line): Declare.
+
+       * genattr.c: Remove all traces of obstack manipulation.
+       * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
+       * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
+
+       * genattrtab.c (obstack, rtl_obstack): Remove.
+       (main): Don't init rtl_obstack.
+       * genflags.c: Likewise.
+
+       * genrecog.c (message_with_line): Move ...
+       * gensupport.c: ... here.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * c-typeck.c (build_c_cast): Remove dead code.
+
+2000-05-06  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (split_edge): Don't allocate global_live_at_start for
+       the new block unless the old blocks had them as well.
+
+       * flow.c (mark_set_1): Respect not_dead when updating reg_live.
+
+       * ifcvt.c (noce_process_if_block): Don't use an insn_b from
+       test_bb if a or b uses x.
+
+2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.h: Remove conditional #define of __extension__.
+       * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
+       RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
+       (ENABLE_RTL_CHECKING only).
+       * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
+       CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
+       (ENABLE_TREE_CHECKING only).
+       * varray.h: Add __extension__ to VARRAY_CHECK macro
+       (ENABLE_CHECKING only).
+
+2000-05-06  Richard Earnshaw (reanrsha@arm.com)
+
+       Use new tail-calling mechanism on ARM.
+       * arm.md (sibcall, sibcall_value): New expands.
+       (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
+       (tailcalling peepholes): Delete.
+       (push_multi): Simplify.
+       * arm.c (lr_save_eliminated): Delete definition.
+       (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
+       (output_return_instruction): Remove checks on lr_save_eliminated.
+       (output_arm_prologue): Remove old tail-calling code.
+       (arm_output_epilogue): New parameter, really_return.  All callers
+       changed.  Handle tail-calling epilogues.
+       * arm.h (lr_save_eliminated): Delete declaration.
+       (frame_pointer_needed): Delete declaration.
+       * arm-protos.h (arm_output_epilogue): Adjust prototype.
+
+       * arm.md (is_thumb): Examine symbol thumb_code, not expression
+       TARGET_ARM.
+       * arm.c (thumb_code): Define it.
+       (arm_override_options): Set it.
+       * arm.h (thumb_code): Declare it.
+
+2000-05-06  Richard Earnshaw (reanrsha@arm.com)
+
+       * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
+
+2000-05-06  Richard Earnshaw (reanrsha@arm.com)
+
+       * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
+       bogus clobber to insns.
+       (load_multiple_operation, store_mulitple_operation): Don't check
+       for it.
+       * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
+
+       * arm.md (and_scc, ior_scc): Add missing mode.
+
+       * arm.md (call_value_symbol): Remove predicate from op2.
+
+       * arm.h (SPECIAL_MODE_PREDICATES): Define.
+
+Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (get_subtarget): New function.
+       (force_operand, expand_expr, do_store_flag): Use it.
+
+       * toplev.c (compile_file): Don't take strlen of NAME if null.
+
+2000-05-06  David Edelsohn  <edelsohn@gnu.org>
+
+       * xcoffout.c (xcoff_current_include_file,
+       xcoff_current_function_file, xcoff_lastfile): Constify char *.
+       (xcoffout_source_file, xcoffout_source_line): Make filename 'const
+       char *'.
+       (xcoffout_declare_function): Make name 'const char *'.
+       (xcoffout_end_epilogue): Make fname 'const char *'
+       * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
+       xcoffout_declare_function, xcoffout_source_line): Match above.
+
+       * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
+       -maix64 is error.
+       * rs6000.c (print_operand): Fix lossage typo.
+       (output_cbranch): Remove "cr" decoration for now.
+       * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
+
+Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
+       constant count.
+
+2000-05-05  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/genfixes: Improve the matching for make target names
+
+2000-05-05  Catherine Moore  <clm@cygnus.com>
+
+       * c-common.c (decl_attributes):  For TYPE_DECLs attach the
+       attribute to the decl.
+       * c-decl.c (pushdecl): Propagate the USED attribute to the
+       type copy.
+
+2000-05-05  Richard Henderson  <rth@cygnus.com>
+
+       * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
+       same way emit_group_load does.
+
+2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
+
+       * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
+
+       * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
+       (main): Likewise.
+
+2000-05-05 Rodney Brown        <RodneyBrown@mynd.com>
+
+       * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
+
+Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
+
+       * config/openbsd.h (LINK_SPEC): pass correct flags to ld
+       to support -shared, on platforms with dynamic libraries.
+
+Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
+
+       * system.h (S_ISBLK): Provide fallback definition.
+
+2000-05-05  Geoff Berry  <geoffb@bops.com>
+
+       * extend.texi (Extended Asm): Document inability to give asm
+       statements access to condition codes.
+
+2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * varasm.c (asm_emit_uninitialised): Use 0, not NULL
+       as arg 2 of UNIQUE_SECTION.
+
+Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * predict.c: Remove May 4 change.
+       * bb-reorder.c (make_reorder_chain): Do not perform block movement
+       if we have predicted the branch at 50-50 probability.
+
+2000-05-05  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (init_propagate_block_info): Fix merge error
+       in HAVE_conditional_execution code.
+
+Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
+       shift cycle for unknown shift count. Also generates dec + brpl.
+       (ashlqi3_out): Don't generate dec + brpl which now generates by
+       `out_shift_with_cnt'.
+       (ashlhi3_out): Likewise.
+       (ashlsi3_out): Likewise.
+       (ashrqi3_out): Likewise.
+       (ashrhi3_out): Likewise.
+       (ashrsi3_out): Likewise.
+       (lshrqi3_out): Likewise.
+       (lshrhi3_out): Likewise.
+       (lshrsi3_out): Likewise.
+
+2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
+
+       * gcc.c (free_split_directories): Correct typo in explanation
+       of make_relative_prefix.
+
+2000-05-04  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
+       comparison codes to branch_comparison_operator.
+
+2000-05-04  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
+
+2000-05-04  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
+       (DPBIT_FUNCS): Remove _sf_to_usi.
+       (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
+
+       * ifcvt.c (noce_process_if_block): Fail if A or B modified
+       between condition and jump.
+
+       * libgcc2.c (near eh_context_specific): Comment #endif string.
+       * longlong.h: Don't use strings with embedded newlines.
+
+2000-05-04  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000-protos.h: Add output_cbranch.
+       * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
+       (print_operand): Delete %t and %T codes.
+       (output_cbranch): New function.  Support branch prediction.
+       * config/rs6000/rs6000.md: Use output_cbranch for
+       conditional branches and returns.
+
+2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
+
+       * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
+       * stor-layout.c (place_field): Likewise.
+       * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
+       * expr.c (store_expr): Make align unsigned.
+       * explow.c (plus_constant_wide): Make low words unsigned.
+       * expmed.c (choose_multiplier): Likewise.
+       * fold-const.c (fold):  Likewise.
+       * tree.h (build_int_2): Likewise.
+       * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
+       * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
+       (init_emit): Change cast to unsigned char*.
+       * varasm.c (compare_constant_1): Add cast to char*.
+       * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
+       * reload1.c (reload): Likewise.
+
+       * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
+
+Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * predict.c (estimate_probability): If no prediction was found, then
+       predict the successor that is the next physical block (if such a
+       successor exists).
+
+2000-05-04  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
+
+2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
+
+2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
+       attribute macros from here ...
+       (CPP_SPEC): to here.
+       * i386/mingw32.h (CPP_PREDEFINES): Likewise.
+       (CPP_SPEC): Likewise.
+       * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
+
+       * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
+       (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
+
+2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
+
+       * diagnostic (vbuild_message_string, build_message_string,
+       build_location_prefix, output_get_prefix, init_output_buffer,
+       output_notice, vline_wrapper_message_with_location,
+       v_message_with_decl, default_print_error_function): De-constify.
+       (set_real_maximum_length): Prototype.
+
+       * diagnostic.h (struct output_buffer, init_output_buffer,
+       output_get_prefix, output_set_prefix): De-constify.
+
+       * function.c (init_function_start): Constify.
+
+       * gensupport.c (remove_constraints, process_rtx): Prototype.
+
+       * gthr-posix.h: Indent uses of #pragma.
+
+       * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
+       Prototype.
+
+       * predict.c (find_expected_value): Delete prototype.
+       (expected_value_to_br_prob): Initialize variable `ev_reg'.
+
+       * sbitmap.h (debug_sbitmap): Prototype.
+
+       * ssa.c (compute_coalesced_reg_partition): Prototype.
+
+       * stor-layout.c (debug_rli): Prototype.
+
+       * tree.h (round_down): Prototype.
+       (init_function_start): Constify.
+
+2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
+       (overly conservative).  Change extern inline wrappers to
+       static inline, define them always, use PARAMS properly.
+       * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
+       whitespace warnings for \f and \v at the beginning of a line.
+
+Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * haifa-sched.c (schedule_insns): Free the flow edge list when it
+       is no longer needed
+
+2000-05-04  Bruce Korb  <bkorb@gnu.org>
+
+       * fixincl/inclhack.def: added broken_cabs -
+       Remove `extern double cabs' declarations from math.h
+       * fixincl/inclhack.sh: regen
+       * fixincl/fixincl.x: regen
+       * fixincl/fixincl.c: Remove BOGOSITY code
+       * fixincl/mkfixinc.sh: Remove code for installing "shell" version
+
+Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
+       MEM_ALIAS_SET.
+       * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
+       when calling MEM_COPY_ATTRIBUTES.
+       * emit-rtl.c (operand_subword, change_address): Likewise.
+       * explow.c (stabilize): Likewise.
+       * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
+       * integrate.c (copy_rtx_and_substitute): Likewise.
+       * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
+       when calling MEM_COPY_ATTRIBUTES.
+       (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
+       Likewise.
+       * cse.c (gen_lowpart_if_possible): Likewise.
+       * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
+       * optabs.c (gen_move_insn): Likewise.
+       * recog.c (validate_replace_rtx_1): Likewise.
+       * simplify-rtx.c (add_mem_for_addr): Likewise.
+       * stmt.c (expand_anon_union_decl): Likewise.
+       * config/arm/arm.md: Likewise.
+       * config/h8300/h7300.c (fix_bit_operand): Likewise.
+       * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
+       (block_move_no_loop, block_move_sequence): Likewise.
+       * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
+       * config/alpha/alpha.c (get_aligned_mem): Likewise.
+       Clear MEM_ALIAS_SET.
+       * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
+       MEM_COPY_ATTRIBUTES.
+
+2000-05-03  Robert Lipe <robertlipe@usa.net>
+
+       * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
+       to suppress libgcc1.
+       (i[34567]86-*-sco3.2v5*) Likewise.
+       (i[34567]86-*-sco3.2v4*) Likewise.
+       (i[34567]86-*-sco) Likewise.
+       (i[34567]86-*-solaris2) Likewise.
+       (i[34567]86-*-sysv5*) Likewise.
+       (i[34567]86-*-sysv4*) Likewise.
+       (i[34567]86-*-udk*) Likewise.
+       (i[34567]86-*-sysv*) Likewise.
+
+2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.h (U): New define, to correct type of string constants.
+       (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
+       routines, to do casts when passing unsigned strings to libc.
+       * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
+
+       * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
+       * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
+       * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
+       * cpplex.c (parse_ifdef, parse_include, validate_else): Make
+       second argument an U_CHAR *.
+
+       * cppinit.c (builtin_array): Make name and value U_CHAR *, add
+       length field, clean up initializer.
+       (ISTABLE): Add __extension__ to designated-
+       initializers version.
+       * cpplex.c (CHARTAB): Likewise.
+
+       * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
+       case so the file won't be empty.
+
+Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (struct reorder_block_def): Member succ removed.
+       (REORDER_BLOCK_SUCC): Removed.
+       (enum reorder_skip_type): Removed.
+       (skip_insns_between_block): Renamed to skip_insns_after_block.
+       Removed second argument. Removed dead code and cleaned up.
+       (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
+       (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
+       second parameter to skip_insns_after_block.
+
+Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (staticp, case LABEL_DECL): New case.
+
+2000-05-03  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (start.encap): Do not depend on LIBGCC1.
+
+       * mklibgcc1.in: Fix typo last change.
+
+2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
+
+       * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
+       (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
+       (GCC_CFLAGS): Use it.
+       (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
+       * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
+       objc/Make-lang.in: Use it.
+
+2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
+
+       * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
+
+2000-05-03  Richard Henderson  <rth@cygnus.com>
+
+       * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
+       LIBGCC1 empty with libgcc1.null.
+
+Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
+       change.
+
+2000-05-03  Greg McGary  <gkm@gnu.org>
+
+       * tree.h (tree_common): Add bounded_flag member.  Remove
+       inaccurate comment about number of remaining bits.
+       (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
+       BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
+       MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
+       TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
+       TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
+       (TYPE_QUAL_BOUNDED): New constant.
+       (TYPE_QUALS): Handle bounded qualifier.
+       (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
+       (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
+       TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
+       TYPE_AMBIENT_BOUNDEDNESS): New macros.
+       (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
+       (tree_type): Add pointer_depth member.  Remove
+       inaccurate comment about number of remaining bits.
+       (DECL_POINTER_DEPTH): Add macro.
+       (tree_decl): Add pointer_depth member.
+
+Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr-protos.h (test_hard_reg_class): Declared.
+       * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
+       (lshrhi3_out): Likewise.
+       (ashrsi3_out): bugfix in shift by 8.
+       (test_hard_reg_class): New function.
+       * config/avr/avr.md: Bugfix inside conditions in peepholes.
+       (ashlhi3): removed define_expand of this pattern.
+       (*ashlhi3_insn): renamed to ashlhi3.
+       (ashlsi3): removed define_expand of this pattern.
+       (*ashlsi3_insn): renamed to ashlsi3.
+       (ashrqi3): removed define_expand of this pattern.
+       (*ashrqi3_insn): renamed to ashrqi3.
+       (ashrhi3): removed define_expand of this pattern.
+       (*ashrhi3_insn): renamed to ashrhi3.
+       (ashrsi3): removed define_expand of this pattern.
+       (*ashrsi3_insn): renamed to ashrsi3.
+       (lshrhi3): removed define_expand of this pattern.
+       (*lshrhi3_insn): renamed to lshrhi3.
+       (lshrsi3): removed define_expand of this pattern.
+       (*lshrsi3_insn): renamed to lshrsi3.
+
+2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
+
+       * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
+       inclusion of "system.h".
+
+Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.c (ia64_encode_section_info): Add check for
+       TREE_ASM_WRITTEN.
+
+2000-05-03  David Mosberger  <davidm@hpl.hp.com>
+
+       * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
+       if -mauto-pic is on.
+       (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
+       -mconstant-gp is in effect and function-descriptors are being used
+       to make indirect calls.
+       * config/ia64/ia64.h (MASK_CONST_GP): New macro.
+       (MASK_AUTO_PIC): Ditto.
+       (TARGET_CONST_GP): Ditto.
+       (TARGET_AUTO_PIC): Ditto.
+       (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
+       (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
+       -mno-pic is in effect.
+       (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
+       * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
+       -mauto-pic is in effect.
+       (gprel64_offset): New pattern.
+       (load_gprel64): Ditto.
+       (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
+       -mconstant-gp is in effect, no need to preserve gp around direct
+       calls.
+       (call_value): Ditto.
+       * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
+       (FUNCTION_PROFILER): Define.
+       * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
+       @fptr() directive when -mno-pic or -mauto-pic is in effect.
+       (ASM_OUTPUT_DESTRUCTOR): Ditto.
+
+2000-05-03  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
+       (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
+       (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
+       (mklibgcc, libgcc.mk): New targets.
+       (libgcc.a): Use libgcc.mk.
+       (stmp-multilib): Likewise.
+       (stmp-multilib-sub): Remove.
+       (mostlyclean): Don't delete libgcc2 temp files.
+       * configure.in (AC_PROG_CC_C_O): Add.
+       (NO_MINUS_C_MINUS_O): Substitute it.
+       (all_outputs): Add mklibgcc.
+       * mklibgcc.in: New file.
+
+2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
+
+       * cppexp.c (op_t): Make an int.
+
+       * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
+
+       * varasm.c (initializer_constant_valid_p): Fix parenthesis.
+
+       * gensupport.c (process_rtx): Fix macros used.
+
+2000-05-03  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
+       call-clobbered registers of a call.
+
+Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * gensupport.c: New file.
+       * gensupport.h: New file.
+       * Makefile.in (HOST_RTL): Depend on gensupport.
+       (gensupport.o) New rule.
+       * genattr.c: Use gensupport for reading .md files.
+       * genattrtab.c: Ditto.
+       * gencodes.c: Ditto.
+       * genconfig.c: Ditto.
+       * genemit.c: Ditto.
+       * genextract.c: Ditto.
+       * genflags.c: Ditto.
+       * genopinit.c: Ditto.
+       * genoutput.c: Ditto.
+       * genpeep.c: Ditto.
+       * genrecog.c: Ditto.
+       * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
+       * md.texi (Insn Splitting): Document define_insn_and_split.
+
+Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * flow.c (verify_flow_info): Added two more sanity checks. The
+       first checks that the blocks are numbered consecutively. The second
+       checks that n_basic_blocks is actually equal to the number of
+       basic blocks in the insn chain.
+
+2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h: Add accessor macros for token lists.
+       * cpplib.c, cpphash.c, cpplex.c: Use them.
+
+Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
+       memory usage if not in a function.
+       * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
+       return address if static.
+
+Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
+       whether address may trap.
+
+Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder (chain_reorder_blocks): Changed code to test for
+       EDGE_FALLTHRU rather than making erroneous assumption that the
+       first outgoing edge is the fall-through edge.
+
+Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
+
+       * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
+       ABI for varargs, across all MIPS. This is incompatible because the
+       va_list (__builtin_va_list) structure is different, so a compilation
+       unit passing a va_list and a compilation unit being passed one, should
+       both be compiled with the same ABI. (The old structure had two
+       pointers, now it has three.)
+
+Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (struct reorder_block_def): Remove members end,
+       block_begin, and block_end.
+       (REORDER_BLOCK_OLD_END): Delete.
+       (REORDER_BLOCK_BEGIN): Delete.
+       (REORDER_BLOCK_END): Delete.
+       (chain_reorder_blocks): Remove dead code.
+
+Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (remove_scope_notes): Check for both types of scope
+       notes as the end of a basic block before deleting.
+
+2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * final.c (final_start_function): Fix spelling of "necessary".
+
+2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
+
+       * toplev.c (debug_ignore_block): Return int.
+       * dwarf2out.c (dwarf2out_ignore_block): Likewise.
+       * toplev.h, dwarf2out.h: Adjust.
+       * emit-rtl.c (remove_unnecessary_notes): Test return value.
+
+       * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
+       * toplev.c, final.c, rtl.h: Adjust.
+
+2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
+       * configure.in: Look for makeinfo in the unified tree, then
+       for a system makeinfo which is sufficiently new.
+       * Makefile.in: If configure says makeinfo is too old, don't
+       build or install Info documentation.
+
+2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (collect_params): Fix off-by-one error.
+       (dump_hash_helper): Dump all four macro nodetypes.
+
+2000-05-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * cpphash.c (trad_stringify): Adjust p after stringification as
+       well.
+
+2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
+       (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
+
+       * cppfiles.c (file_cleanup): Delete.
+       * cpphash.c (macro_cleanup): Delete.
+       (collect_objlike_expansion, collect_funlike_expansion,
+       macarg, scan_arguments): Remove CPP_POP case.
+
+       * cpplex.c (null_cleanup): Delete.
+       (cpp_pop_buffer): Do the work that was done in the cleanups
+       here.  Call _cpp_unwind_if_stack from here.
+       (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
+       cpp_scan_buffer): Run until we see CPP_EOF and the top of
+       stack is the buffer _below_ the one we stacked.
+       (cpp_get_token): Always pop an exhausted buffer.  Return
+       CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
+       * cpplib.c (skip_if_group): Don't call cpp_get_token to
+       increment the line number.
+       (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
+
+       * fix-header.c (read_scan_file) [parsing getchar()]: Run until
+       we see CPP_EOF and the top of stack is the buffer _below_ the
+       one we stacked.
+       * scan-decls.c: Likewise.
+
+2000-05-02  Andrew Haley  <aph@cygnus.com>
+
+       * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
+       where this function is called for the second time on a decl that
+       has had its section info changed in such a way as to move it out
+       of small data/bss.
+       * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
+
+2000-05-01  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
+       the sequence we're moving, not to merge_bb->head.
+
+2000-05-01  Richard Henderson  <rth@cygnus.com>
+
+       * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
+       reference to alpha/t-linux.
+       (alpha*-*-linux-gnu*): Likewise.
+       * configure: Rebuild.
+
+       * calls.c (expand_call): Don't emit reg notes for a sibcall.
+
+       * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
+       if not in SSA form.
+
+       * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
+
+2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
+
+       * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
+       TREE_THIS_VOLATILE.
+
+2000-05-01  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (noce_emit_cmove): Conditionally compile call to
+       emit_conditional_move.
+
+2000-05-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
+       as the dynamic linker.
+
+2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (open_include_file): Open file in blocking mode.
+       (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
+       Only exclude block devices and directories.
+
+       * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
+       static.  Allocate the hashnode and its string in the same
+       block of memory.
+       (del_HASHNODE): Don't free h->name.
+       (_cpp_lookup): If there is no entry for this string, create
+       one, of type T_VOID.
+       (_cpp_lookup_slot): Delete.
+       * cpphash.h: Update prototypes.
+
+       * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
+       not hp == NULL.
+       * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
+       do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
+       node here, just fill in the value field properly.  "Delete"
+       entries by setting the value field to T_VOID.  Check for
+       hp->type == T_VOID, not hp == NULL.
+
+       * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
+       * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
+       hashtab.h.
+
+2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.c (print_operand_address): Do not add
+       zero to SP.
+
+       * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
+       adjusted by less than 256 bytes, use ret regardless of having any
+       callee-saved register to restore.
+
+2000-05-01 Laurynas Biveinis <lauras@softhome.net>
+
+       * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
+
+2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
+
+       * config/i386/djgpp.h (INT_ASM_OP): Define.
+       (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
+       (ASM_WEAKEN_LABEL): Define.
+       (MASK_BNU210): Define.
+       (SUBTARGET_SWITCHES): Define.
+       (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
+       (MAKE_DECL_ONE_ONLY): Define.
+       (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
+
+2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * i386/cygwin.h (INT_ASM_OP): Define.
+
+Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (address_cost): renamed to avr_address_cost.
+       * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
+
+Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
+       __tmp_reg__ and __zero_reg__ initialization.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
+
+       * ifcvt.c (noce_process_if_block): Fail the conversion if X is
+       referenced bewteen the condition and the jump.  Don't delete
+       anything but the jump.
+
+Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (scope_def): New struct.
+       (scope_forest_info): New struct.
+       (struct reorder_block_def): New member "scope".
+       (REORDER_BLOCK_SCOPE): New macro.
+       (relate_bbs_with_scopes): New function and prototype.
+       (make_new_scope): Likewise.
+       (build_scope_forest): Likewise.
+       (remove_scope_notes): Likewise.
+       (insert_intra_1): Likewise.
+       (insert_intra_bb_scope_notes): Likewise.
+       (insert_inter_bb_scope_notes): Likewise.
+       (rebuild_scope_notes): Likewise.
+       (free_scope_forest_1): Likewise.
+       (free_scope_forest): Likewise.
+       (dump_scope_forest): Likewise.
+       (dump_scope_forest_1): Likewise.
+       (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
+       Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
+       block.
+       (reorder_basic_blocks): Added calls to build_scope_scope_forest
+       and remove_scope_notes before reordering is done. Added calls to
+       rebuild_scope_notes, free_scope_forest, and reorder_blocks after
+       after reordering is done.
+
+2000-40-30  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/inclhack.def:  Added definitions needed by OSR5,
+       removed two stale entries (defined away with OLD_CPP).
+       * fixinc/inclhack.sh: regen
+       * fixinc/fixincl.x: regen
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
+       from the last insn in the sequence.
+
+2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (cpp_idcmp): New function.
+       * cpplib.h: Prototype it.
+       * scan_decls.c (scan_decls): Use it to inspect token names.
+       * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
+       the file being run through the preprocessor.
+       (check_macro_names): Provide length of token to cpp_defined.
+
+       * Makefile.in: Remove stale warning message.
+
+       * cppfiles.c (redundant_include_p): Provide length of token to
+       cpp_defined.
+       * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
+       values are unsigned int.
+       (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
+       (_cpp_lookup_slot): Do not calculate the hash, either.
+       * cpphash.h: Update prototypes.
+       * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
+       Hashes are unsigned int.  Calculate hash here, pass by value
+       to _cpp_lookup_slot.
+
+2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * simplify-rtx.c (check_value_useless): Delete function.
+       (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
+       by hand.
+       (cselib_invalidate_regno): Likewise.
+       (cselib_invalidate_mem_1): Likewise.
+       (references_value_p): Recognize useless values by the fact that they
+       have no locations.
+       (discard_useless_values): Likewise.
+       (cselib_record_set): This may turn a useless value
+       into a useful one.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * config/d30v: New port.
+
+       * configure.in (d30v-*): Set fp format.
+       * configure: Rebuild.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * ifcvt.c: New file.
+       * Makefile.in (OBJS): Add it.
+       (ifcvt.o): New target.
+       * jump.c (jump_optimize_1): Remove all code related to if-conversion,
+       and conditional arithmetic.
+       (find_insert_position): Remove.
+       * timevar.def (TV_IFCVT, TV_IFCVT2): New.
+       * toplev.c (DFI_ce, DFI_ce2): New.
+       (dump_file): Add ce and ce2 dumps.
+       (rest_of_compilation): Run if_convert a couple o times.  Set
+       cse_not_expected after cse2.  Don't set no_new_pseudos until
+       after sched1 or recompute_reg_usage.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
+       (crtend.o, crtbeginS.o, crtendS.o): Likewise.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (struct reg_cond_life_info): New.
+       (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
+       (init_propagate_block_info): Initialize them.
+       (free_propagate_block_info): Destruct them.
+       (mark_set_1): Consider conditional life before killing a register.
+       (mark_regno_cond_dead): New.
+       (free_reg_cond_life_info): New.
+       (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
+       (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
+       (mark_used_reg): Record conditional life.
+
+       * haifa-sched.c (schedule_insns): Disable death counting
+       sanity check for HAVE_conditional_execution.
+
+2000-04-30  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (TIMEVAR_H): New.
+       (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
+       (timevar.h): Remove rule.
+
+2000-04-29  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/crtend.asm: Use C comments instead of #.
+       * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
+
+       * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
+
+2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.h (enum node_type: Take out T_MCONST.
+       (union hashval): Move into struct hashnode.
+       (struct hashnode): Pack tighter.  Remove file, line, col
+       members.
+       * cpphash.c: Constify most of the macro-definition structures.
+       (struct definition): Replace by struct object_defn
+       and struct funct_defn.  Put file, line, column information
+       here.  All users updated to match.
+       (_cpp_create_definition, _cpp_macroexpand): Remove special
+       case for #define WORD OTHERWORD.
+       * cpplib.c (do_undef): Remove T_MCONST case.
+
+       * cpphash.h: Move struct reflist, struct definition, and the
+       DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
+       union hashval.  _cpp_free_definition takes a HASHNODE pointer.
+       * cpphash.c (_cpp_free_definition): Free data pointed to by
+       MCONST, XCONST, MACRO, and FMACRO nodes properly.
+       (_cpp_create_definition, del_HASHNODE): Just call
+       _cpp_free_definition to clear out a hashnode.
+       * cpplib.c (do_pragma_poison): Likewise.
+
+Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
+       LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
+       FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
+       (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
+       (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
+       REGNO_AM33_P): Redefine in terms of the new macros.
+       (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
+       (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
+       STRUCT_VALUE): Likewise.
+       (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
+       ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
+
+Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * regmove.c (struct record_stack_memrefs_data): New.
+       (record_stack_memrefs): New function.
+       (combine_stack_adjustments_for_block): Use it.
+
+Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (calls_function_1):  Properly handle TREE_LIST expressions;
+       use special_function_p to detect alloca.
+
+Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
+
+       * gcc.texi: Fixes for makeinfo 4.0 --html.
+
+2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * pcp.h: Delete file.
+
+2000-04-28  Kazu Hirata  <kazu@hxi.com>
+
+       * h8300.c (function_epilogue): Clean up flags when the last insn
+       in a function is a barrier.
+
+2000-04-28  Chris Demetriou  <cgd@sibyte.com>
+
+       * configure.in (sparc-hal-solaris2*): protect [] glob from
+       my expansion.
+       (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
+       rather than hard-coded constants in target_cpu_default2.
+       * configure: Regenerate.
+
+2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
+
+       * tree.c (get_callee_fndecl): Extract the initial value from
+       a readonly decl.
+
+2000-04-28  Richard Henderson  <rth@cygnus.com>
+
+       * varasm.c (record_constant_1): Record the CODE_LABEL when
+       taking the address of a LABEL_REF.
+
+2000-04-28  Richard Henderson  <rth@cygnus.com>
+           Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (combine_pending_stack_adjustment_and_call): Return the
+       adjustment; don't do the stack adjust.
+       (expand_call): Call compute_argument_block_size right before
+       allocating the block; update comment; don't do alignment sanity
+       checking for sibling call; use args_size instead of
+       unadjusted_args_size before args_size is adjusted.  Use
+       combine_pending_stack_adjustment_and_call to compute stack adjust
+       for must_preallocate case.
+
+       * expr.c (push_block): Remove shadow `temp' in inner scope.
+
+2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
+
+       * toplev.c (rest_of_compilation): Call
+       note_deferral_of_defined_inline_function even if the function
+       can't be inlined.
+
+2000-04-28  Scott Bambrough  <scottb@netwinder.org>
+
+       * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
+
+2000-04-28  Richard Henderson  <rth@cygnus.com>
+
+       * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
+
+2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * timevar.c (init_timevar): DeANSIfy function definition.
+
+2000-04-27  Alex Samuel  <samuel@codesourcery.com>
+
+       * Makefile.in (timevar.o): Depend on flags.h.
+       * timevar.c (unused_stack_instances): New variable.
+       (timevar_push): Take a timevar_stack_def from
+       unused_stack_instances if available.
+       (timevar_pop): Push the popped timevar_stack_def onto
+       unused_stack_instances.
+       (TIMEVAR_ENABLE): New macro.
+       (timevar_def): Make standalone a 1-bit field.  Add field used.
+       (get_time): Rename parameter to now.  Return after clearing it if
+       not TIMEVAR_ENABLE.
+       (init_timevar): Do nothing if not TIMEVAR_ENABLE.
+       (timevar_pop): Likewise.
+       (timevar_stop): Likewise.
+       (timevar_push): Likewise.  Mark the timing variable as used.
+       (timevar_start): Likewise.
+       (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
+       timevars that were never used.
+
+2000-04-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
+       always TREE_READONLY.
+
+2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
+
+       * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
+       for call instruction with mode QImode.
+
+2000-04-27  Alex Samuel  <samuel@codesourcery.com>
+
+       * Makefile.in (OBJS): Add timevar.o.
+       (toplev.o): Depend on timevar.h.
+       (ggc-simple.o): Likewise.
+       (ggc-page.o): Likewise.
+       (timevar.o): New rule.
+       (timevar.h): New rule.
+
+       * timevar.h: New file.
+       * timevar.c: Likewise.
+       * timevar.def: Likewise.
+
+       * toplev.h (gc_time, parse_time, varconst_time): Remove.
+       * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
+       throughout.
+       (TIMEVAR): Remove macro.
+       (gc_time, parse_time, varconst_time, integration_time, jump_time,
+       cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
+       flow_time, combine_time, regmove_time, sched_time,
+       local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
+       sched2_time, dbr_sched_time, reorder_blocks_time,
+       rename_registers_time, shorten_branch_time, stack_reg_time,
+       to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
+       all_time): Remove.
+       (compile_file): Don't initialize time variables.  Call
+       init_timevar and start TV_TOTAL timer.  Call timevar_print instead
+       of many calls to print_time.
+       (rest_of_compilation): Add timing for reload_cse_regs.
+       (get_run_time): Removed to timevar.c.
+       (print_time): Likewise.
+       (get_run_time): Implement using TV_TOTAL time variable.
+       (print_time): Get total run time from get_run_time.
+       * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
+       computing elapsed time explicitly.
+       * ggc-simple.c (ggc_collect): Likewise.
+       (gc_time): Remove declaration.
+
+2000-04-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * calls.c (combine_pending_stack_adjustment_and_call): New function.
+       (expand_call): Use it.
+
+2000-04-27  Jan Hubicka  <jh@suse.cz>
+
+       * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
+       fields.
+
+Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
+       registers.
+
+Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (epilogue_done): Pass whole insn to record_insns.
+
+Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * cse.c (CSE_ADDRESS_COST): Remove.
+       (find_best_addr): Add new parameter "MODE", use address_cost instead
+       of CSE_ADDRESS_COST
+       (address_cost): New.
+       (fold_rtx): Update call of find_best_addr.
+       * rtl.h (address_cost): Declare.
+       * loop.c (general_induction_var): Add new parameter "MODE", use
+       address_cost instead of ADDRESS_COST
+       (init_loop): Use address_cost instead of ADDRESS_COST.
+       (check_insn_for_givs): Update call of general_induction_var.
+       (find_mem_givs): Likewise.
+       (consec_sets_giv): Likewise.
+       * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
+       * i386.c (ix86_address_cost): New.
+       * i386-protos.h (ix86_address_cost): Declare.
+
+Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
+       registers.
+
+Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * expr.c (store_expr): Use clear_storage instead of direct memset
+       libcall.
+
+Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.c (mn10300_address_cost): Test
+       ASHIFT, AND and LABEL_REF.
+
+Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * invoke.texi (-foptimize-sibling-calls): Fix.
+
+Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (load_mems)  Don't use hard registers for the hoisting.
+
+       * unroll.c (unroll_loop): Avoid overflow in the n_iterations
+       calculation; rename const_equiv array in the preconditioning code
+       from loop_unroll to loop_unroll_precondition
+
+2000-04-27  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (struct propagate_block_info): Remove new_dead, new_live;
+       add new_set.
+       (propagate_one_insn): Clear it.  Don't update reg_live here.
+       (init_propagate_block_info): Update for pbi member changes.
+       (free_propagate_block_info): Likewise.
+       (mark_set_1): Know that zero_extract, sign_extract, and
+       strict_low_part don't kill their argument.  Alter hard subregs.
+       Update new_set for non-CLOBBER sets.  Update reg_live.
+       (find_auto_inc): Update reg_live, not new_dead.
+       (mark_used_reg): Update reg_live, not new_live.  Examine new_set
+       to determine if the reg in question was set this insn.  Only update
+       reg info with PROP_REG_INFO.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (allocate_reg_life_data): Set max_regno here ...
+       (life_analysis): ... not here.
+
+       * flow.c (calculate_global_regs_live): Force stack pointer
+       live at end.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
+       commit change group changes.
+       (invert_exp_1): Similarly.
+       (redirect_exp, invert_exp): Use them.
+       (redirect_jump_1): New.
+       (invert_jump_1): New.
+       (jump_optimize_1): Remove code subsumed by condexec.c.
+       * rtl.h (invert_jump_1, redirect_jump_1): Declare.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
+
+       * genconfig.c (main): Set all HAVE_foo to 1.
+
+       * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
+
+2000-04-26  Alex Samuel  <samuel@codesourcery.com>
+
+       * invoke.texi: Document -fssa flag.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (count_reg_sets_1): Remove.
+       (count_reg_sets, count_reg_references): Remove.
+       (recompute_reg_usage): Implement with update_life_info.
+       Reallocate life data.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (update_life_info): Consider blocks null to mean the
+       universal set.
+       (calculate_global_regs_live): Likewise.
+       (life_analysis): Do that instead of collecting all_blocks.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
+       a still-valid conditional jump.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
+
+       * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
+       * flow.c (calculate_loop_depth): Remove.
+       * output.h (calculate_loop_depth): Don't declare.
+       * toplev.c (rest_of_compilation): Expand calculate_loop_depth
+       inline; run estimate_probability at the same time.
+
+2000-04-26  Neil Booth  <NeilB@earthling.net>
+
+       * cpplib.h: "~=" is not a single pp-token.
+       * cpplex.c: Correct commentary.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (mark_set_1): New arguments code and flags; update all
+       callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
+       test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
+       loop_depth when optimizing for size.  Do new_dead update after
+       emitting REG_UNUSED notes.  Merge mark_set_reg code.
+       (mark_set_reg): Remove.
+       (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
+       arrange to not emit REG_UNUSED notes.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
+       * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (propagate_one_insn): Break out from propagate_block.
+       (init_propagate_block_info): Likewise.
+       (free_propagate_block_info): Likewise.
+       (propagate_block): Use them.  Export.
+       * basic-block.h: Declare them all.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * basic-block.h (life_analysis): Declare here ...
+       * output.h: ... not here.
+       * flow.c (life_analysis): Remove nregs parameter; replace
+       remove_dead_code with flags.  Remove ssa dead code check.
+       Only init alias analysis if we'll use it.
+       * reg-stack.c (reg_to_stack): Update life_analysis arguments.
+       * ssa.c (convert_to_ssa): Likewise.
+       (convert_from_ssa): Likewise.
+       * toplev.c (rest_of_compilation): Likewise.
+
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (flow_delete_block): Rename from delete_block.  Export.
+       * basic-block.h (flow_delete_block): Declare.
+
+2000-04-26  David S. Miller  <davem@redhat.com>
+
+       * optabs.c (emit_libcall_block): Verify insns with INSN_P before
+       taking a PATTERN of it.
+
+2000-04-26  <NeilB@earthling.net>
+
+       * cpplex.c (spell_other, spell_char): Remove.
+       (SPELL_CHAR): New.
+       (token_spelling, trigraph_map): Use unsigned chars.
+       (_cpp_lex_line): Tidy up the switch statement.
+       * cpplib.h: Implement spell_char with spell_string.
+       (C): New.
+
+2000-04-26  <RodneyBrown@pmsc.com>
+
+       * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
+       * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
+
+2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
+       reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
+       dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
+       dwarf2out_return_save, dwarf2out_return_reg,
+       dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
+       add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
+       gen_compile_unit_die, dwarf2out_init): Constify a char*.
+
+       * dwarf2out.h (dwarf2out_init): Likewise.
+
+       * dwarfout.c (filename_entry, primary_filename, last_filename,
+       type_tag, output_compile_unit_die, dwarfout_init): Likewise.
+
+       * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
+       dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
+       dwarf2out_return_reg): Likewise.
+
+2000-04-26  Andreas Jaeger  <aj@suse.de>
+
+       * extend.texi (Function Attributes): Fix description of pure
+       attribute.
+
+2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
+
+       * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
+       before calling rest_of_compilation.
+
+2000-04-26  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
+       last patch.
+
+2000-04-25  Richard Henderson  <rth@cygnus.com>
+
+       * cse.c (cse_insn): Emit barrier after unconditional jump.
+
+       * calls.c (expand_call): Disable tail call generation once
+       rtx_equal_function_value_matters is false.
+
+       * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
+       like EDGE_EH edges.
+
+2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
+
+       * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
+
+       * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
+       is the primary DIE for a member function.
+       (gen_decl_die): Call set_decl_origin_self here.
+       * dwarfout.c (output_decl): And here.
+       * integrate.c (output_inline_function): Not here.
+       Don't clear DECL_INLINE until after calling rest_of_compilation.
+       (set_decl_origin_self): No longer static.
+       * tree.h: Add prototype.
+       * toplev.c (note_deferral_of_defined_inline_function): Only write
+       out abstract instance for actual inlines.
+
+2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
+       EXTENDED_REGS only if TARGET_AM33.
+       * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
+       SP_REGS to register allocation and reloading unless absolutely
+       necessary.
+       (movsi3): Remove special-case of adding non-constants to SP.
+
+2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
+       INCLUDES to search and does not provide any of its own.  Also it
+       now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
+       parameters.  Also it does not call AC_DEFINE.
+       (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
+       AC_DEFINE and provides for automatic entries for autoheader.
+       (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
+
+       * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
+       so we can pass -I flags and include gansidecl.h/system.h in this
+       test.
+
+       * acconfig.h: Delete all NEED_DECLARATION_* entries.
+
+2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
+       ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
+       ENABLE_GC_ALWAYS_COLLECT): Delete entries.
+
+       * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
+       ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
+       ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
+       for these macros.  Clean up spacing and linewraps.
+
+2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
+
+       * calls.c (expand_call): Use get_callee_fndecl.
+
+       * print-tree.c (print_node): Print the chain of an _EXPR.
+
+Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
+                         Jim Wilson  <wilson@cygnus.com>
+                         Andrew Haley  <aph@cygnus.com>
+
+       * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
+       and gp save/restore problems.
+       * config/ia64/crtend.asm: Add IA-64 unwind support.
+       * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
+       in fr_pad_size calculation.
+       (save_restore_insns): Move PR save area.  Correct uses of
+       RTX_FRAME_RELATED_P.
+       (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
+       (ia64_expand_epilogue): Add eh_epilogue support.
+       (ia64_function_prologue): Emit .prologue directive.
+       (ia64_init_machine_status, ia64_mark_machine_status): New functions.
+       (ia64_override_options): Set init_machine_status and
+       mark_machine_status.
+       (rtx_needs_barrier): Handle bsp reads and writes.
+       (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
+       New static variables.
+       (process_set, process_for_unwind_directive): New functions.
+       * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
+       ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
+       ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
+       macros.
+       (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
+       (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
+       (struct machine_function): Define.
+       * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
+
+2000-04-25  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/Makefile.in: make the removal of old programs more
+       robust
+       * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
+       install-bin and install-sh
+
+2000-04-25  Nick Clifton  <nickc@cygnus.com>
+
+       * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
+       defined, define to return zero.
+       (function_cannot_inline_p): If a function has any target
+       specific attributes, then use the macro
+       FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
+       whether it can be inlined.  If it cannot, issue a suitable
+       explanation.
+
+       * tm.texi: Add a new node 'Inlining' to document the new macro
+       FUNCTION_ATTRIBUTE_INLINABLE_P.
+
+2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
+       commentary.
+
+2000-04-25  Neil Booth  <NeilB@earthling.net>
+
+       Restore previous patch, plus the following fixes:
+
+       * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
+       flags, not CPP_OPEN_PAREN.
+       * cpplex.c (expand_token_space, init_token_list,
+       cpp_free_token_list): Put the dummy token at list->tokens[-1].
+       (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
+
+Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/i386/freebsd.h (INT_ASM_OP): Define.
+
+Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (strength_reduce): Fix typo in the last checkin.
+
+Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (finalize_record_size): Simplify to use existing
+       functions.
+       (compute_record_mode): No longer static.
+       * tree.h (compute_record_mode): New declaration.
+
+2000-04-25  Neil Booth  <NeilB@earthling.net>
+
+       * Revert my patch below until cause of build failures
+       determined.
+
+2000-04-25  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (combine_instructions): Add missing argument
+       to try_combine.
+
+       * toplev.c (rest_of_compilation): Delay sibcall optimization
+       until after emit_eh_context.
+
+2000-04-24  Nick Clifton  <nickc@redhat.com>
+
+       * combine.c (combine_instructions): Do not try to combine a
+       sequence of insns when the second insn has been replaced by a
+       note.
+
+Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * gcc.c (load_specs): New static function.
+       (read_specs): Use it.
+
+       * gcc.c (lookup_compiler): Make multiple passes for case
+       insensitive filesystems.
+
+2000-04-24  Neil Booth  <NeilB@earthling.net>
+
+       * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
+       * cpphash.h (_cpp_check_directive): new.
+       * cpplex.c (handle_newline, cpp_free_token_list,
+       init_trigraph_map, trigraph_ok, trigraph_replace,
+       backslash_start, skip_block_comment, skip_line_comment,
+       skip_whitespace, parse_name, parse_number, parse_string,
+       copy_comment, _cpp_lex_line, spell_char, spell_string,
+       spell_comment, spell_name, spell_other, _cpp_lex_file,
+       _cpp_output_list): new.
+       (expand_name_space): take length argument.
+       (init_token_list): add comment list initialisation.
+       (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
+       instead of HSPACE_BEFORE.
+
+       * cpplib.c (_cpp_check_directive): new
+       * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
+       DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
+       (HSPACE_BEFORE): delete.
+       (TTYPE_TABLE): rearrange.
+       (struct cpp_toklist): update.
+
+2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
+       gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
+       argument form of AC_DEFINE.
+
+       * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
+       HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
+       WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
+       HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
+       HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
+
+       * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
+
+2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
+       deduced.h): Use -isystem, not -I, for including system headers.
+
+2000-04-24  Nick Clifton  <nickc@cygnus.com>
+
+       * config/fr30/fr30.md (addsi3): Do not use small add instruction if
+       the source register is the frame pointer or arg pointer.
+       (addsi3_small_int): Disallow if source register is the frame
+       pointer or arg pointer.
+
+2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
+       call to AC_MSG_RESULT.
+
+2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * invoke.texi: Correct grammatical errors, document
+       -fno-gnu-keywords as identical to -fno-asm for C++.
+
+2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
+       GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
+       GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
+       AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
+       EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
+
+       * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
+       GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
+       GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
+       GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
+       new macros names.
+
+2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
+       (pop_alignment): Likewise.
+       (handle_pragma_token): Likewise.
+
+2000-04-24  Robert Lipe <robertlipe@usa.net>
+
+       * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
+
+2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
+
+       * combine.c (try_combine): Update reg_nonzero_bits of
+       newi2pat before newpat.
+
+Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (strength_reduce): Simplify test to INSN_P.
+       (record_giv): Attempt to simplify the add value, use CONSTANT_P
+       expressions instead of CONST_INT.
+       (express_from_1): Likewise.
+
+2000-04-24  Mark Mitchell  <mark@codesourcery.com>
+
+       * regs.h (reg_n_max): Don't declare.
+       * flow.c (reg_n_max): Don't define.
+       * regclass.c (renumber): Don't initialize to zero.
+       (regno_allocated): Likewise.
+       (reg_n_max): Define.
+       (allocate_reg_info): Don't initialize unnecessarily.
+
+Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
+       and blockage_p in the newly allocated attribute.
+
+Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.md (addsi): `inc4' on address
+       registers does not modify cc, but `inc' on an extended
+       register does.
+
+Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * reload.c (find_equiv_reg): Checks all valueno regs
+       as a reload_reg_p regs.
+
+2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (collect_objlike_expansion): Add sanity check.
+       (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
+       the buffer is the empty string, return.  Mark __DATE__ and
+       __TIME__ as XCONST nodes, not MCONST.
+       (_cpp_macroexpand): Avoid pushing an empty buffer.
+       (funlike_macroexpand): Don't pop token_buffer here.
+
+Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
+       (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
+       (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
+       (REGNO_OK_FOR_BASE_P): Define in terms of them.
+       (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
+       (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
+       (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
+
+Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (simplify_giv_expr):  Be more agressive on simplifying
+       constant MULT givs.
+
+2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.h (struct definition): Move file, line, col members...
+       (struct hashnode): ... here.  Also add 'disabled' flag.
+       (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
+       T_IDENTITY.  Remove T_DISABLED.
+       Update prototypes.
+
+       * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
+       (collect_expansion): Split into collect_objlike_expansion and
+       collect_funlike_expansion.
+       (_cpp_macroexpand): Split out scan_arguments, stringify, and
+       funlike_macroexpand.
+       (_cpp_compare_defs): Rename compare_defs, make static.
+       (_cpp_make_hashnode): Initialize hp->disabled.
+       (macro_cleanup): Adjust for new token types.  Clear
+       m->disabled.
+       (_cpp_create_definition): Move code here to determine what
+       sort of macro it is, and code to check for redefinitions, from
+       do_define.  Implement a few simple cases without creating a
+       full DEFINITION.
+       (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
+       Handle the simple cases.
+       (push_macro_expansion): Set buf->has_escapes and hp->disabled
+       here.
+
+       * cppinit.c (builtin_array): Change MCONST to XCONST
+       everywhere.
+       * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
+       fix check for disabled and function-like macros.
+       * cpplib.c (do_define): Move most logic to
+       _cpp_create_definition.
+       (do_undef): Handle new special token types.
+
+Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
+       of CONSTANT_P for mult_val; always use validate_change to update insn.
+
+2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (trad_stringify, add_pat): New functions.
+       (collect_expansion): Restore support for -traditional syntax.
+       Use trad_stringify and add_pat.
+       (_cpp_macroexpand): Restore support for -traditional semantics.
+       * cpplex.c (_cpp_scan_line): Don't change space_before if we
+       get a COMMENT token.
+       (_cpp_lex_token): Provide COMMENT tokens to caller if
+       traditional and parsing_define_directive.
+       (skip_comment): Warn about // comments if -Wtraditional.
+       * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
+       proper node type.
+       (do_undef): Don't warn about undefining EMPTY nodes.
+
+Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (strength_reduce): Fix biv removal code.
+
+2000-04-22  Richard Henderson  <rth@cygnus.com>
+
+       * predict.c (estimate_probability): Examine both sides of
+       a branch for no exits.  Use 90% not 50% for predict taken.
+       Reorg for one copy of note generation code.
+
+2000-04-22  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
+
+2000-04-22  Richard Henderson  <rth@cygnus.com>
+
+       * diagnostic.c (init_output_buffer): Don't initialize format_args.
+       (output_clear): Likewise.
+       (output_printf): Use va_copy.
+       (vline_wrapper_message_with_location): Likewise.
+       (v_message_with_decl): Likewise.
+       (line_wrapper_printf): VA_START infor buffer.format_args directly.
+       * system.h (va_copy): Provide default implementation.
+
+2000-04-22  Richard Henderson  <rth@cygnus.com>
+
+       * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
+       the collected condition is not a constant.
+
+2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * diagnostic.h: New file.
+
+       * Makefile.in (diagnostic.o): Depends on diagnostic.h
+
+       * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
+       various function prototypes.
+       (diagnostic.h): #include.
+       (struct output_buffer): Move into diagnostic.h.
+       (get_output_prefix): Rename to output_get_prefix.  Export.
+       (init_output_buffer): Export. Break out.  Adjust initialization.
+       (output_space_left, output_append): Export.
+       (output_newline): Rename to output_add_newline.  Export.
+       (output_clear): Nullify additional output_buffer fields.
+       (output_puts): Rename to output_add_string.  Export.
+       (dump_output): Rename to output_flush_on.  Export.
+       (build_location_prefix): Constify return-type.
+       (emit_output_prefix): Rename to output_emit_prefix. Export.
+       (set_real_maximum_length): New function.
+       (output_set_maximum_length): Ditto
+       (output_clear): Ditto.
+       (output_add_character): Ditto.
+       (output_add_integer): Ditto.
+       (output_add_space): Ditto.
+       (output_format): Ditto.
+       (output_printf): Adjust buffer initialization.
+       (vline_wrapper_message_with_location): Ditto.
+       (v_message_with_decl): Ditto.  Adjust call to output_puts
+       and get_output_prefix.
+       (default_print_error_function): Adjust buffer initialization.
+
+Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
+       of VOID_TYPE.
+
+Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
+       of explicit 0.
+
+Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
+       accurate data about SP moves.
+
+Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
+       aliases to AM33 registers.
+
+Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
+       to all EXTENDED bitmaps.
+
+Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
+       * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
+       * config/mn10300/mn10300.c (mn10300_address_cost): New function.
+
+Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
+
+       * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
+       the operand is not constant.
+
+Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
+
+       * reload.c (find_equiv_reg): Checks all valueno and regno regs
+       as a call-clobbered regs.
+
+Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
+       * rtl.h: Likewise.
+       * rtl.def: Update comment.
+       * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
+       * integrate.c (expand_inline_function): Likewise.
+       * profile.c (branch_prob): Likewise.
+       * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
+       * print-rtl.c (print_rtx): Likewise.
+       * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
+       (reemit_notes): Likewise; also use enum insn_note.
+
+       * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
+       (place_field): Properly compute know and actual alignment.
+
+       * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
+       in proper format.
+
+       * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
+       note for REG1.
+
+2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (struct arg, struct arglist): Const-ify strings.
+       (warn_trad_stringify, duplicate_arg_p): New helper functions.
+       (collect_expansion): Rewrite to scan over a token list.
+       Remove -traditional support.
+       (collect_formal_parameters): Rename to collect_params; rewrite
+       to scan over a token list.
+       (_cpp_create_definition): Adjust to scan a token list.
+       (_cpp_macroexpand): Remove -traditional support.
+       (_cpp_compare_defs): Whitespace is now canonicalized.
+       (comp_def_part): Delete function.
+
+       * cpphash.h: Update prototypes.
+       * cpplex.c (init_token_list): Don't set lineno if there is no
+       buffer.
+       (pedantic_whitespace): New function.
+       (_cpp_scan_line): Mark tokens that had hspace before.  Don't
+       consume a newline.  Use pedantic_whitespace.
+       (_cpp_lex_token): Remove support for -traditional macros.
+       (_cpp_get_define_token): Delete.
+       (_cpp_get_directive_token): Do the real work here.  Use
+       pedantic_whitespace.
+       (_cpp_init_input_buffer): Initialize pfile->directbuf.
+
+       * cpplib.c (get_macro_name): Delete.
+       (do_define): Read the entire line into pfile->directbuf, then
+       feed the token list to _cpp_create_definition.
+       * cpplib.h (HSPACE_BEFORE): new define.
+       (struct cpp_reader): Add a toklist member, "directbuf".
+
+       * predict.c (estimate_probability): New heuristic: if a jump
+       branches around a block with no successors, predict it taken.
+       Disentangle control flow.
+
+2000-04-20  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (emit_iv_add_mult): Revert last change.
+
+2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (enum cpp_ttype): Add token types for all
+       punctuators.  Distinguish pp-numbers from valid C numbers.
+       Give some tokens better names.  Initialize from macro.
+       (struct cpp_name, cpp_token, cpp_toklist): New data
+       structures.
+       Update prototypes.
+       * cpplex.c (bump_column, expand_name_space,
+       expand_token_space, init_token_list, cpp_output_list,
+       _cpp_scan_line):  New functions.
+       (output_line_command): Add third argument, new line number.
+       * cpphash.h: Update prototypes.
+       * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
+       token names.
+
+2000-04-20  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
+
+2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
+       object pointed to.
+
+Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (emit_iv_add_mult):  Simplify it's input and emit
+       REG_EQUAL note explaining the calculated value.
+
+       * calls.c (expand_call): Avoid unnecesary precalculation
+       and outgoing parameters space guarding for sibling calls.
+       (store_one_arg): Likewise.
+
+Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
+       (rest_of_compilation): Write sibling dump file and account
+       for time as jump time.
+       * invoke.texi: Update documentation on dump flags.
+
+2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
+
+2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (special_symbol): Represent an empty macro with
+       "\r \r " not just "\r ".
+       (_cpp_macroexpand): Correct condition for the foo ( ) special
+       case.
+       (unsafe_chars): Handle EOF as second argument.
+       (push_macro_expansion): Simplify test for removing escape at
+       end.  Do not trim both escapes if there is no text in between.
+
+2000-04-19  Jim Blandy  <jimb@redhat.com>
+
+       * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
+       of PTR_SIZE, when appropriate.
+
+2000-04-19  Mark Mitchell  <mark@codesourcery.com>
+
+       * system.h (ONLY_INT_FIELDS): Make sure it is defined.
+       (USE_ENUM_BITFIELDS): Fix typo.
+
+Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (place_field): Set rli->offset_align properly.
+
+2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
+       INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
+       PARM_BOUNDARY): Remove unnecessary casts.
+
+Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (precompute_arguments): Remove must_preallocate and
+       args_size calls.
+       (expand_call): Update call of precompute_arguments.
+
+       * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
+       check_insn_for_givs): Break out from ...
+       (strength_reduce) ... here; use for_every_insn_in_loop to call
+       check_insn_for_givs.
+       * loop.h (for_every_insn_in_loop): Declare.
+       (loop_insn_callback): New type.
+
+2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_pragma_poison):  Strings in the token buffer are
+       not nul-terminated.
+
+Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
+       flag_pic and RELOC.
+
+2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
+
+       * configure.in: Delete --disable-cpplib option and all
+       references to cpp_main.
+       * configure: Regenerate.
+       * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
+       @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
+       cccp.o, cccp, or cppmain.  Link cppmain.o straight to
+       cpp$(exeext).  Add --no-headers to makeinfo command line when
+       generating INSTALL.  Install and uninstall cpp.1 manpage, not
+       cccp.1.
+       * install.texi: Delete all references to cexp.y/cexp.c.
+       Delete ancient instructions for compiling GCC on 3b1.
+       * INSTALL: Regenerate.
+
+       * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
+       mips/t-elf, mips/t-r3900: Remove references to cccp.c.
+       * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
+       cexp.c/cexp.y.
+       * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
+       which is no longer tested anywhere.
+
+       * cppinit.c (handle_option): Don't run error message through
+       gettext twice.
+
+Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
+       * cpperror.c (hashtab.h): Now include.
+       * cppexp.c (hashtab.h): Likewise.
+       * cpplex.c (hashtab.h): Likewise.
+       * cppfiles.c (hashtab.h): Likewise.
+       (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
+       to htab_find_slot_with_hash.
+       * cpphash.c (hashtab.h): Now include.
+       (_cpp_lookup_slot): INSERT is now enum insert_option.
+       * cpphash.h (_cpp_lookup_slot): Likewise.
+       * cppinit.c (hashtab.h): Include earlier.
+       (initialize_builtins): Pass enum to htab_find_slot.
+       * cpplib.c (hashtab.h): Now include.
+       (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
+       (do_pragma_poison, do_assert): Likewise.
+       * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
+       htab_find_slot_with_hash.
+       * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
+       * tree.c (type_hash_add): Likewise.
+       (build1): Minor cleanup.
+
+       * ggc-common.c: Add missing blanks.
+       * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
+       * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
+
+       * stmt.c (mark_case_node): New function.
+       (mark_case_nesting): Call it.
+
+       * expmed.c (emit_store_flag): If comparing two-word integer
+       with zero, can optimize NE, EQ, GE, and LT.
+
+       * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
+       * conflict.c: Minor cleanups.
+       * optabs.c: Add blank line
+       * simplify-rtx.c: Minor cleanups.
+
+2000-04-18  Stan Cox  <scox@cygnus.com>
+
+       * gengenrtl.c (genlegend): Fix misspelling.
+
+2000-04-18  Robert Lipe  <robertlipe@usa.net>
+
+       * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
+       bitfields of the host compiler are not signed quantities.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * system.h (USE_ENUM_BITFIELDS): Added.
+       (ENUM_BITFIELDS): Added.
+       * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
+       (SHORT_ENUM_BUG): Deleted.
+       * tree.h (tree_common): Members `code', `mode', `built_in_class',
+       now ENUM_BITFIELD.
+       * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
+       (CODE_FIELD_BUG): Likewise.
+       * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
+       (OLD_CC): Likewise.
+       * config/m68k/x-ccur (X_CFLAGS): Likewise.
+
+2000-04-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
+       mark is active.
+
+2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c (lex): Don't assume tokens are NUL terminated.
+       * cpplib.c (do_include, do_import, do_include_next,
+       read_line_number, detect_if_not_defined): Likewise.
+       * cpphash.c (collect_expansion): Likewise.
+       (special_symbol, _cpp_macroexpand): Check return from
+       cpp_file_buffer.
+       * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
+       macros.  Delete all uses.
+
+       * gcc.dg/cpp-mi.c: Add two more test cases.
+       * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
+       (reorder_basic_blocks): If no epilogue in rtl, force last block last.
+
+2000-04-17  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (expand_function_start): Use hard_function_value to
+       compute the RTL to use for DECL_RESULT.
+
+Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
+       (x86_integer_DFmode_moves, x86_partial_reg_dependency,
+        x86_memory_mismatch_stall): New global variables.
+       (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
+       alloved; fix load penalties for Athlon.
+       * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
+       x86_memory_mismatch_stall): Declare.
+       (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
+        TARGET_MEMORY_MISMATCH_STALL): New.
+       * i386.md (athlon scheduling parameters): Fix latencies according to
+       Athlon Optimization Manual.
+       (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
+       vector.
+       (fsqrt instruction patterns): Set athlon_decode to direct.
+       (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
+       PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
+       (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
+       and TARGET_PARTIAL_REGISTER_STALL machines.
+       (pushdf_nointeger): New pattern.
+       (pushdf_integer): Rename from pushdf.
+       (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
+       (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (canonicalize_condition): Add WANT_REG argument.
+       Stop the search if we match it.
+       * expr.h (canonicalize_condition): Update decl.
+       * predict.c (expected_value_to_br_prob): Use it.  Track last
+       expected value note.
+       (find_expected_value): Remove.
+
+       * reorg.c (mostly_true_jump): Always use BR_PROB if present.
+
+2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
+       (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
+       a plain file.
+       * configure.in: Call AC_FUNC_MMAP_FILE.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+       * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
+       * fixinc/fixincl.c: Likewise.
+
+2000-04-17  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_builtin_expect): New.
+       (expand_builtin): Call it.
+       * builtins.def (BUILT_IN_EXPECT): New.
+       * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
+       * extend.texi: Document it.
+
+       * predict.c (expected_value_to_br_prob): New.
+       (find_expected_value): New.
+       * basic-block.h (expected_value_to_br_prob): Declare.
+       * toplev.c (rest_of_compilation): Invoke it.
+
+       * rtl.h (NOTE_EXPECTED_VALUE): New.
+       (NOTE_INSN_EXPECTED_VALUE): New.
+       * rtl.c (note_insn_name): Update.
+       * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
+       cases; handle NOTE_INSN_EXPECTED_VALUE.
+
+2000-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
+       leaf sibcall delay slot if flag_pic.
+       (output_sibcall): Always emit call for leaf sibcall if flag_pic.
+
+2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
+
+       * fixproto: If fix-header fails, exit with an error.
+
+Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * cse.c (struct check_dependence_data): New.
+       (check_dependence): New function.
+       (invalidate): Use check_depdenence.
+
+2000-04-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
+       UNITS_PER_WORD is unsigned.
+
+       * tree.h (struct tree_common): Remove misleading comment.
+
+2000-04-16  Dave Pitts  <dpitts@cozx.com>
+
+       * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
+       message in quotes. Otherwise, IBM's make program treats the '#' as the
+       start of a comment and ignores the remainder of the line.
+
+       * c-lex.c (yylex): Change for EBCDIC, lower case characters precede
+       upper case.
+       * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
+       * cexp.y (initialize_random_junk): Likewise.
+       * cppfiles.c (find_include_file): Cast alloca return value.
+       * cppinit.c (initialize_standard_includes): Likewise.
+       * cpplib.c (cpp_define, cpp_undef): Likewise.
+       * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
+       * final.c (output_asm_insn): Allow for holes in EBCDIC.
+       * fold-const.c (CHARMASK): New.
+       (real_hex_to_f): Use it.
+       * real.c (CHARMASK): New.
+       (etoasc, asctoeg): Use it.
+       (asctoeg): EBCDIC lower case characters precede upper case.
+
+       * i370.c (mvs_add_label): Change spacing for coding conventions.
+       * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
+       outputting case vectors.
+       (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
+       (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
+       since vector in in the data CSECT.
+       (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
+       * i370.md (Many patterns): Put the length in the XL directives.
+       (movdi): Put back STM and MVC in definition.
+       (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
+       pattern using the TCA.
+       * oe.h (CPP_SPEC): Added to allow trigraphs.
+       * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
+       not support the "long long" type.
+
+2000-04-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/mips/mips-protos.h (mips_legitimate_address_p): New
+       function.
+       (mips_reg_mode_ok_for_base_p): Likewise.
+       * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
+       (REG_OK_FOR_INDEX_P): Define unconditionally.
+       (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
+       (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
+       * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
+       that GET_MODE_SIZE is unsigned.
+       (mips_reg_mode_ok_for_base_p): Define.
+       (mips_legitimate_address_p): Likewise.  Adjust now
+       that GET_MODE_SIZE is unsigned.
+       (block_move_loop): Make the number of bytes unsigned.
+       (expand_block_move): Likewise.
+       (function_arg): Make the loop counter unsigned to match the
+       boundary condition.
+
+2000-04-16  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.h (enum insn_note): New enumeration.  Subsume
+       NOTE_INSN_DELETED and friends.
+       (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
+       * rtl.c (note_insn_name): Tweak string order.
+
+2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
+       to offset * 2.
+
+       * cpplex.c (output_line_command): Remove debugging prints.
+       (cpp_output_tokens): Don't write out a zero-length buffer or
+       try to see if it has a newline in it.
+       (_cpp_expand_to_buffer): Copy the source buffer before pushing.
+       (_cpp_read_and_prescan): Move shift-down of pushback bytes to
+       the end of the loop.  Use memmove.  Don't read past the end of
+       the buffer.  Remove trailing newlines from error messages.
+
+2004-04-16  Neil Booth  <NeilB@earthling.net>
+
+       * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
+       * cpplib.c: Add new syntax flags to directive table, and
+       supporting macros.
+
+2000-04-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
+       using ret $N.
+
+2000-04-15  David Edelsohn  <edelsohn@gnu.org>
+
+       * toplev.c (display_help): Prefix "f" to "sched-verbose=".
+       * haifa-sched.c: Update -fsched-verbose comments to use "=".
+
+Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Makefile.in (ggc-page.o): Now includes toplev.h.
+       * ggc-page.c (toplev.h): Now included.
+       (gc_time): Remove declaration.
+       (ggc_collect): TIME now long.
+       * toplev.c (parse_time, varasm_time, gc_time): Still global; all
+       others static.
+       * toplev.h (gc_time, parse_time, gc_time): New declarations.
+
+       * toplev.c: Make *_time variable long to reduce chance of overflow.
+       (TIMEVAR): Likewise for `otime'.
+       (print_time): Arg is now long; compute percentage in FP and round.
+       * toplev.h (print_time): Arg is long.
+
+       * tree.c: Minor whitespace changes.
+
+       * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
+       * configure: Rebuilt.
+       * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
+       (__fixunsxfDI): Renamed from __fixunsxfdi.
+       (__fixunsdfDI): Renamed from __fixunsdfdi.
+       (__fixunssfDI): Renamed from __fixunssfdi.
+       (__floatdisf): Use proper type in REP_BIT macro.
+       (__fixunsxfSI): Renamed from __fixunsxfsi.
+       (__fixunsdfSI): Renamed from __fixunsdfsi.
+       (__fixunssfSI): Renamed from __fixunssfsi.
+       * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
+       Change location of macros and upper-case some names as above.
+       * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
+       * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
+
+       * varasm.c (assemble_variable): Add cast to remove warning.
+       (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
+
+       * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
+       * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
+       region number to -1.
+
+2000-04-15  Richard Earnshaw (rearnsah@arm.com)
+
+       * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
+       call unshare_all_rtl.
+
+       * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
+
+Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
+       Use .s1 not .s0 for all FP instructions.
+
+2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
+       interfaces.
+       (safe_fwrite, output_line_command): New static functions.
+       (cpp_expand_to_buffer): Now private to cpplib.
+       (cpp_scan_buffer): Take a printer.
+
+       * cpphash.h: Update prototypes.
+       * cpplib.h: Update prototypes.
+       (cpp_printer): New.
+       (cpp_buffer): Remove last_nominal_fname.
+       (cpp_reader): Remove lineno.
+
+       * cppmain.c: Use a cpp_printer.
+       * fix-header.c: No need to inhibit line commands.  Call
+       cpp_start_read with no printer.
+
+       * cpperror.c (cpp_notice_from_errno): Provide default name.
+       * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
+       (find_include_file, cpp_read_file): Use make_IHASH.
+       (file_cleanup): Set control_macro and clear
+       input_stack_listing_current here.
+       (_cpp_execute_include): Don't output entering-file marker.
+       * cpphash.c (special_symbol): Look for the line number in the
+       buffer, not the reader.
+       (_cpp_macroexpand): No need to disable line commands.
+       (_cpp_dump_definition): No need to generate line commands.
+       (dump_hash_helper): Remove excess newline from output.
+       * cppinit.c (dump_special_to_buffer): No need to generate line
+       commands.
+       (cpp_printer_init): New.
+       (cpp_start_read): Take a printer, and start it up if it's not
+       NULL.  No need to generate line commands.
+       (cpp_finish): Expect no buffers stacked at all.  Take a
+       printer argument, and flush the output buffer if it's not
+       NULL.
+       * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
+       Don't put two hashes at the beginning of an assertion.
+       (cpp_get_token): Don't increment pfile->lineno or emit line
+       commands here.  Return EOF if there's no buffer when we get
+       EOF.
+       * cpplib.c (do_define, skip_if_group):
+       No need to disable line commands.
+       (_cpp_output_line_command): Delete function.
+       (do_line): Don't emit line commands here, but set things up so
+       they will be emitted if necessary.  Use _cpp_fake_ihash to
+       make unique nominal_fnames if necessary.
+       (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
+       with 0 for column, not -1.
+       (_cpp_handle_eof): Don't set the control macro here.  Don't
+       clear input_stack_listing_current here.  Don't emit line
+       commands.
+
+2000-04-14  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
+       always, use the default SVR4 start address.
+
+       * config/rs6000/linux.h (LINK_SPEC): Don't define.
+       (LINK_SHLIB_SPEC): Define.
+       (LINK_START_DEFAULT_SPEC): Define.
+       (LINK_OS_DEFAULT_SPEC): Define.
+
+       * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
+
+       * config/rs6000/eabi.asm (__eabi): Call __init rather than
+       __do_global_ctors to handle constructors.
+       * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
+       (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
+       (STARTFILE_MVME_SPEC): Likewise.
+       (STARTFILE_SIM_SPEC): Likewise.
+       (ENDFILE_ADS_SPEC): Use crtend.
+       (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
+       (ENDFILE_MVME_SPEC): Likewise.
+       (ENDFILE_SIM_SPEC): Likewise.
+       (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
+       (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
+       (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
+       (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
+       * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
+       (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
+       (CRTSTUFF_T_CFLAGS_S): Define.
+       * config/rs6000/eabi-ctors.c: Delete.
+
+       * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
+       boundary.
+       (__fini): Likewise.
+       * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
+       boundary.
+       (__fini): Likewise.
+
+Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
+       plus mask size is smaller or equal to the mode size.
+
+Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
+       not yet set.
+
+       * expr.c (reload.h): Now included.
+       (emit_block_move): Set volatile_ok when checking for movstr.
+       (emit_move_1): Check for replacements in addresses in multi-word case.
+       * Makefile.in (expr.o): Now includes reload.h.
+
+       * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
+       Never have a LIBCALL end a basic block.
+       (find_basic_blocks_1): Likewise.
+       Reorganize CALL_INSN cases.
+
+       * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
+
+Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
+       completers from mov.ret instruction.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+       * fold-const.c (extract_muldiv): Don't distribute and widen
+       multiply across plus for non-sizetype unsigned types.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_auto_inc): Don't autoinc eliminable registers.
+       If the original source is dead in the incr insn, it's dead now.
+
+Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
+       see if DECL_BIT_FIELD needs to still be set.
+
+       * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
+
+       * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
+       print_int_cst_octal with something that's not an INTEGER_CST.
+
+       * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
+       and not a SUBREG to a FLOAT rtl.
+
+Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * emit-rtl.c (try_split): Avoid infinite loop if the split
+       results in a sequence that contains the original insn.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/mips.c (expand_block_move): Pass alignment
+       argument to move_by_pieces in bits, not bytes.
+
+       * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
+       __pic__ for little endian.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/i386/i386-protos.h: Add prototype for
+       uno_comparison_operator.
+
+Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
+       * calls.c (ECF_PURE): New flag.
+       (emit_call_1): Handle ECF_PURE calls.
+       (initialize_argument_information): Unset ECF_PURE flag too.
+       (precompute_arguments): Precompute for ECF_PURE too.
+       (expand_call): Handle ECF_PURE calls too.
+       (emit_library_call_value_1): Rename no_queue argument to fn_type,
+       accept value of 2 as pure function.
+       (emit_library_call_value, emit_library_call): Rename no_queue argument
+       to fn_type.
+       * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
+
+       * tree.h (DECL_IS_PURE): New macro.
+       (struct tree_decl): Add pure_flag.
+       * c-common.c (enum attrs): Add attribute "pure".
+       (init_attributes): Initialize attribute "pure"
+       (decl_attributes): Handle attribute "pure".
+       * extend.texi (Attribute "pure"): Document.
+       * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
+       in pure function.
+       (flags_from_decl_or_type): Support attribute "pure".
+
+2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
+
+       * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
+       the token except for numbers and identifiers.
+
+Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
+
+       * i386.c (ix86_expand_binary_operator,
+       ix86_expand_unary_operator): Check no_new_pseudos
+       instead of reload_in_progress and reload_completed.
+       (ix86_split_ashldi, ix86_split_ashrdi,
+       ix86_split_lshrdi): Check no_new_pseudos instead
+       of reload_completed.
+
+2000-04-12  Jeffrey A Law  (law@cygnus.com)
+
+       * function.c (purge_addressof): Unshare any shared rtl created by
+       purge_addressof and its children.
+
+2000-04-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (aggregate_value_p): VOID_TYPE nodes are never
+       aggregates.
+
+2000-04-05  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
+       not compiling PIC code, add flags for mabi=64.
+       (SUBTARGET_CPP_SIZE_SPEC): New.
+       (SUBTARGET_CPP_SPEC): New.
+       (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
+       for MIPS/Linux and lots of code needs these defines.
+
+Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * reorg.c (fill_slots_from_thread): Check side_effects_p when
+       trying the "opposite arithmetic" approach.
+
+Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
+       (struct sh_args): Add new field force_mem.
+       (INIT_CUMULATIVE_ARGS): Initialize it.
+       (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
+
+Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (expand_call): Do not reverse args in "equal from" field.
+       (emit_library_call_value_1): Emit_libcall_block for const and pure
+       function.
+
+Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload1.c (reload_combine): Don't enable optimization for fixed
+       registers when encountering a BARRIER.
+
+Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.c (expand_builtin_memcmp): Do expansion even with
+       !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
+
+       * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
+       stack is properly aligned; add sanity checking for aligned
+       stack pointer.
+       (expand_library_call_value_1): Add sanity checking for aligned
+       stack pointer.
+
+Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
+
+       * calls.c (emit_library_call_value_1): Change 3rd arg to
+       locate_and_pad_parm to disregard the setting of partial.
+
+Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
+
+       * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
+       CALL_INSN from the normal case.
+
+Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
+       New global variables.
+       (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
+       adjustment.
+       * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
+       Declare,
+       (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
+        TARGET_ADD_ESP_8): New macros.
+       * i386.md: Add peep2s to convert esp adjustments to push and pop
+       instructions.
+       (pushsi_prologue, popsi_epilogue): New patterns.
+
+2000-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * real.c (toe64): Remove stale #endif from the last change.
+
+2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
+
+       * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
+       * real.c (toe64): Revert previous change.
+
+2000-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * objc/objc-act.c: Include ggc.h.
+       (objc_tree_index, objc_global_trees): Convert most of the
+       static tree variables into a static array with previous names
+       as defines.
+       (objc_ellipsis_node): New variable.
+       (lang_init): Call objc_act_parse_init and c_parse_init.
+       Create objc_ellipsis_node.
+       (build_selector_translation_table): Use objc_ellipsis_node instead
+       of (tree)1.
+       (hack_method_prototype): Likewise.
+       (get_arg_type_list): Likewise.
+       (start_method_def): Likewise.
+       (continue_method_def): Likewise.
+       (gen_method_decl): Likewise.
+       (ggc_mark_imp_list): New function.
+       (ggc_mark_hash_table): New function.
+       (objc_act_parse_init): New function.
+       * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
+       * c-parse.in (c_parse_init): For objc add roots of objc specific
+       local tree variables.
+       * objc/objc-parse.y: Rebuilt.
+       * objc/objc-parse.c: Rebuilt.
+       (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
+
+Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
+
+       * cse.c (delete_trivially_dead_insns): Also delete insns
+       that copy a register to itself where the destination is
+       a strict_low_part.
+
+2000-04-11  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (struct propagate_block_info): Add new_dead, new_live.
+       (propagate_block): Initialize them.  Use them in parallel instead
+       of one tmp variable, ie revert much of the 0408 and 0407 functional
+       changes, but keep the structural changes.
+       (mark_set_regs): Take new_dead from propagate_block_info instead.
+       (mark_set_1, mark_set_reg): Likewise.
+       (mark_used_regs): Likewise with new_live.
+       (mark_used_reg): Likewise.  Revert 0408 change.
+
+2000-04-11  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
+       restriction.
+       (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
+
+2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
+       const section to output a CONSTRUCTOR based on the same conditions
+       used for VAR_DECLs.
+
+Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
+       * pa/pa-protos.h (output_call): Add additional argument indicating
+       if the call is a sibling/tail call.
+       (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
+       (compute_64bit_ior, cmpib_comparison_operator): Likewise.
+       (function_arg, function_arg_partial_nregs): Likewise
+       * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
+       (emit_move_sequence): Zero extend certain constants as needed
+       for TARGET_64BIT.
+       (compute_zdepdi_operands, output_64bit_and): New functions.
+       (output_64bit_ior, function_arg): Likewise.
+       (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
+       (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
+       (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
+       (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
+       (output_bvb): Likewise.
+       (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
+       (output_call): New argument 'sibcall'.  Generate sibcall sequences
+       as needed.
+       (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
+       (ouput_arg_descriptor): Do not emit argument descriptors for
+       TARGET_64BIT.
+       * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
+       defined.
+       (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
+       (FUNCTION_OK_FOR_SIBALL): Define.
+       (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
+       (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
+       (CPP_SPEC): Use new spec infrastructure.
+       (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
+       (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
+       (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
+       (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
+       (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
+       (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
+       (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
+       (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
+       (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
+       (FUNCTION_ARG); Call out to C code.
+       (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
+       (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
+       (MIN_UNITS_PER_WORD): Likewise.
+       * pa/pa.md (cmpdi): New expander.
+       (scc patterns, movstrsi): Not available for TARGET_64BIT.
+       (64bit conditional arithmetic): New patterns.
+       (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
+       (movsicc): Not available if modes on all the operands to not match.
+       (movdicc): New expander and associated patterns.
+       (64bit branches): New patterns.
+       (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
+       (pre_ldd, post_std): New patterns.
+       (64bit addil, load low part): New patterns.
+       (special movsf constant): Not available for TARGET_64BIT.
+       (movsf, movdf expanders): Force constants into memory.
+       (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
+       (64bit movdf/movdi patterns): New patterns.
+       (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
+       for TARGET_64BIT.
+       (extendqidi2, extendhidi2, extendsidi2): Similarly.
+       (adddi3 expander): Allow "arith_operand" for second input.
+       (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
+       (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
+       (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
+       (muldi3): New expander for TARGET_64BIT.
+       (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
+       for TARGET_64BIT.
+       (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
+       patterns for TARGET_64BIT.
+       (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
+       patterns for TARGET_64BIT.
+       (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
+       (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
+       (sibcall_epilogue): New expander.
+       (casesi): Tweak for TARGET_64BIT.
+       (call expanders): Set & use the outgoing argument pointer.  Use the
+       64bit call patterns as needed. Add additional arg to output_call.
+       (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
+       (sibcall, sibcall_internal_symref): New expanders.
+       (sibcall_value, sibcall_value_internal_symref
+       (interspace_jump): Turn into an expander + matching patterns.
+       (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
+       * pa/pa64-regs.h: Eliminate trigraph sequences.
+       * pa/pa64-start.h (TARGET_PA_20): Fix typo.
+
+2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
+       cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
+       cpp_token with cpp_ttype everywhere.
+       * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
+       Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
+       CPP_BUF_COL.  Line and column numbers are unsigned int, not
+       long.
+       * cpplex.c (cpp_buf_line_and_col): Delete.
+       * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
+       'long lineno' to 'unsigned int lineno'.
+       (CPP_BUF_LINE, CPP_BUF_COL): New macros.
+
+2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * extend.texi: ISO C99 is not a draft anymore.
+       * invoke.texi: ISO C++ is not a draft anymore.
+       * cpp.texi: __cplusplus is required by the ISO standard.
+
+       * extend.texi (-fthis-is-variable): Undocument.
+       * flags.h (warn_template_debugging): Remove declaration.
+       * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
+       -Wenum-clash, -Wtemplate-debugging): Undocument.
+
+2000-04-10  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
+       integer.
+       (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
+       integer.
+       (ARM_SIGN_EXTEND): Use HOST_UINT.
+       (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
+       (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
+       (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
+       (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
+
+       * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
+       (arm_gen_constant): Use HOST_UINT.
+       (arm_canonicalize_constant): Use HOST_UINT.
+       (arm_reload_in_hi): Use HOST_UINT.
+       (arm_reload_out_hi): Use HOST_UINT.
+       (output_multi_immediate): Use HOST_UINT.
+       (int_log2): Use HOST_UINT.
+       (arm_poke_function_name): Use HOST_UINT.
+       (arm_output_epilogue): Use arm_volatile_func().
+       (output_thumb_prologue): Use arm_strip_name_encoding().
+
+Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
+       of sequence point problems.
+
+2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
+       Recomment.
+       * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
+
+Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * sbitmap.h: Whitespace changes and use upper-case macro args.
+       (struct simple_bitmap_def): All sizes now unsigned.
+       (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
+       * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
+       (sbitmap_vector_alloc): Parms and local vars now unsigned.
+       (sbitmap_zero): Cast bzero arg to PTR.
+       (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
+       (sbitmap_union_of_diffs): Change loop index to unsigned and rework
+       loop to make structure clearer.
+       (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
+       (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
+       (sbitmap_a_and_b_or_c): Likewise.
+       (sbitmap_intersection_of_succs): Minor cleanups.
+       (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
+       (sbitmap_union_of_preds): Likewise.
+       (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
+       (debug_sbitmap): New function.
+
+       * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
+       * c-typeck.c (convert_for_assignment): Likewise.
+
+       * expmed.c (init_expmed): Don't free objects we make.
+       * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
+
+       * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
+       (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
+
+       * gcse.c (expr_hash_table_size): Now unsigned.
+       (compute_ae_gen): Local variable `i' now unsigned.
+       (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
+       (compute_transout, hoist_code): Likewise.
+       (compute_local_properties): Likewise, also hash_table_size.
+       (alloc_expr_hash_table): N_INSNS now unsigned.
+       (delete_null_pointer_checks): Mark arg F as unused.
+
+       * regrename.c: Minor cleanups, including chang some variables
+       to unsigned int.
+
+2000-04-10  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (skip_block_comment): Use pointer arithmetic rather
+       than GETC ().
+       * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
+
+2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
+       __classof__, and __headof__ from the list of gnu keywords.
+       (-ansi): Remove -foperator-names from list of implied options.
+       Do not call it ANSI C++.
+       (-foperator-names): Document as -fno-operator-names.
+
+2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (timestamp): Delete.
+       (del_HASHNODE): If type is T_MCONST, free value.cpval.
+       (special_symbol): Remove unnecessary braces.  Remove
+       T_VERSION.  Treat T_STDC like T_CONST unless
+       STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
+       when one is encountered, then convert them into T_MCONST
+       nodes.
+       * cppinit.c (builtin_array): version_string is T_MCONST.
+       __STDC__ has a "1" in its cpval.  Don't have a terminator
+       entry.  Clean up which entries are dumped.
+       (initialize_builtins): Only __STDC__ gets the special
+       -traditional treatment.  Count the length of builtin_array.
+       Render version_string here.
+       * cpphash.h: Remove T_VERSION.  Add T_MCONST.
+       * cpplib.h (struct cpp_reader): Remove timebuf.
+
+2000-04-09  Richard Henderson  <rth@cygnus.com>
+
+       * genrecog.c (pred): Update comparison_operator for the unordered
+       operators.
+
+       * config/i386/i386.c (no_comparison_operator): Disallow unordered
+       operators.
+       (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
+       (uno_comparison_operator): New.
+       (put_condition_code): Handle UNORDERED/ORDERED.
+       (unsigned_comparison): Likewise.
+       (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
+       (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
+       (ix86_expand_fp_compare): Use them.  Take scratch as argument,
+       update all callers.  Handle all 8 unordered operators.
+       (ix86_expand_setcc): Lose the unordered argument, update all callers.
+       (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
+       * config/i386/i386.h (PREDICATE_CODES): Update.
+       * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
+       (ix86_expand_branch, ix86_expand_setcc): Update.
+       * config/i386/i386.md (sunordered, sordered): New.
+       (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
+       (bunordered, bordered): New.
+       (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
+       (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
+       (*fp_jcc_5, *fp_jcc_6, and splitters): New.
+
+2000-04-09  Philip Blundell  <philb@gnu.org>
+
+       * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
+
+Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
+
+       * i386.md (fix_truncsfhi2, fix_truncdfhi2,
+       fix_truncxfhi2): New patterns.
+       * i386.c (output_fix_trunc): Handle converting to HImode.
+
+2000-04-08  Alex Samuel  <samuel@codesourcery.com>
+
+       * ssa.c (convert_to_ssa): Eliminate dead code when calling
+       life_analysis.
+       (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
+       (for_each_successor_phi): Change parameter to basic_block.
+       (coalesce_regs_in_successor_phi_nodes): Likewise.
+       (coalesce_regs_in_copies): Likewise.
+       (compute_coalesced_reg_partition): Use basic_block instead of index.
+       * rtl.h (convert_to_ssa): Delete.
+       (convert_from_ssa): Likewise.
+       (successor_phi_fn): Likewise.
+       (for_each_successor_phi): Likewise.
+       (in_ssa_form): Likewise.
+       * basic-block.h (convert_to_ssa): Moved from rtl.h.
+       (convert_from_ssa): Likewise.
+       (successor_phi_fn): Likewise.
+       (in_ssa_form): Likewise.
+       (for_each_successor_phi): Likewise.  Change parameter to basic_block.
+       * flow.c (calculate_global_regs_live): Pass a basic_block to
+       for_each_successor_phi.
+
+2000-04-08  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (mark_used_reg): Use reg_set_p to determine if a register
+       was modified in the current insn.
+
+2000-04-08  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm/thumb.md: Delete.
+       * arm/thumb-protos.h: Delete.
+
+2000-04-08  Richard Earnshaw (rearnsha@arm.com)
+
+       Merge changes from merged-arm-thumb-backend-branch onto trunk.
+
+       2000-04-08  Richard Earnshaw (rearnsha@arm.com)
+
+       * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
+       into branch.
+
+       * arm.md (nop): Use the standard RTL expression.  Don't code as a
+       define_expand.
+       (*arm_nop, *thumb_nop): Delete.
+
+       * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
+       constants.  Use casts instead.
+       (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
+       output_multi_immediate, arm_poke_function_name): Likewise.
+       * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
+       MASK_RETURN_ADDDR): Likewise.
+
+       2000-03-31  Richard Earnshaw (rearnsha@arm.com)
+
+       * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
+       into branch.
+
+       * arm.md (eh_epilogue): New function.
+       * arm.h (struct machine_function): Move to here ...
+       * arm.c: ... from here.
+       (arm_output_epilogue): Support epilogues for __builtin_eh_return.
+       (thumb_exit): Extra parameter eh_ofs.  All callers changed.
+       Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
+
+       2000-03-30  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/semi.h (ASM_SPEC): Restore definition.
+       (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
+
+       * config/arm/elf.h (ASM_SPEC): Restore definition.
+       (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
+
+       * config/arm/arm.h (ASM_SPEC): Remove definition.
+       (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
+
+       2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
+
+       * config/arm/arm.c: Disable -fschedule-insns for Thumb.
+
+       2000-03-24  Nick Clifton  <nickc@cygnus.com>
+
+       Various formating tidyups, elimination of compile time
+       warnings and synchronisation with internal sources:
+
+       * config/arm/arm-protos.h (assemble_align): Add prototype.
+       (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
+       (gen_comapre_reg): Rename to arm_gen_compare_reg.
+       (arm_return_addr_rtx): Rename to arm_return_addr.
+
+       * config/arm/arm.c: Include except.h.
+       Define shorter typenames for strict minipool_node and struct
+       minipool_fix.
+       (arm_return_in_memory): For WinCE return all structures <= 32 bits
+       in memory.
+       (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
+       (gen_comapre_reg): Rename to arm_gen_compare_reg.
+
+       * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
+       already defined.
+       (ASM_SPEC): Define if not already defined.
+       (ASM_OUTPUT_DEF_FROM_DECLS): Define.
+
+       * config/arm/arm.md: Rename references to gen_rotated_half_load to
+       arm_gen_rotated_half_load, and references to gen_comapre_reg to
+       arm_gen_compare_reg.
+       (indirect_jump):  Only accept register operands.
+       (load_indirect_jump): Keep this pattern since combine can generate
+       it.
 
-       * varasm.c (output_constant_def): Merge get_or_assign_label and
-       delete it.  Ensure that ENCODE_SEGMENT_INFO is evaluated before
-       SELECT_SECTION.
+       * config/arm/coff.h: Include aout.h.
+       (MULTILIB_DEFAULTS): Only define if not already defined.
 
-Thu Jul 18 19:57:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
+       into arm.h (so that COFF ports can support thumb based aliases).
+       (ASM_SPEC): Move definition into arm.h
 
-       * expr.h (MUST_PASS_IN_STACK_BAD_PADDING): Definitions were backwards.
+       * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
+       redundant apcs spec.
+       (ASM_SPEC): Move definition to arm.h
 
-Thu Jul 18 17:52:46 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+       * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
 
-       * unroll.c: Fix typos in comments.
-       (splittable_regs_updates): New static global variable.
-       Indicates the number of instructions that modify a split biv
-       remaining during the last iteration of a loop, so that the last one
-       can be handled specially.
-       (unroll_loop): Allocate and clear it.
-       (copy_loop_body): Use it to determine how to rewrite an insn
-       modifying a split iv.
-       (find_splittable_regs): When a splittable biv is identified, set it
-       equal to the number of insn modifying the biv.
-       (find_splittable_givs): When a splittable giv is identified, set
-       it to one if this giv is a reg.
-       
-       * unroll.c (copy_loop_body): Instead of trying to special case
-       insns that use start_label, use the label_map to map the start
-       label to the appropriate label for all insns except those that
-       must be inverted and redirected.  The former code did not handle
-       tablejumps that used the start_label correctly.
+       * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
+       for entries in the .bss section
 
-       * integrate.c (copy_rtx_and_substitute): Don't legitimize an
-       address inside of an ADDRESS rtx.  This fails, because this need
-       not be a validate address, but it is always valid in the context
-       it appears in.
+       2000-03-23  Nick Clifton  <nickc@cygnus.com>
 
-Thu Jul 18 08:13:56 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
+       to thumb_far_jump_used_p.
 
-       * toplev.c (set_target_switch): Support TARGET_OPTIONS for command
-       options with values.
+       * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
+       single integer parameter.
 
-       * varasm.c (output_constant_def): Set flags with
-       ENCODE_SEGMENT_INFO for strings and constructors.
-       * tm-mips.h (ENCODE_SEGMENT_INFO): Must be a VAR_DECL.
+       * config/arm/arm.c (struct machine_function): Add two new
+       fields, 'far_jump_used' and 'arg_pointer_live'.
+       (thumb_far_jump_used_p): Once the decision has been made that
+       far jumps might be used, always return true.
+       If being called from the initial elimination offset macro then
+       do not bother to perform the test if the arg pointer is not
+       being used.
+       (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
+       (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
 
-       * out-m88k.c, tm-m88k.h, m88k.md: Implement a global pool approach
-       to short addressing.
+       2000-03-23  Richard Earnshaw (rearnsha@arm.com)
 
-       * m88k.md (extendsfdf2, truncdfsf2): Use fsub rather than fadd.
-       This conforms to IEEE 754 in all rounding modes except round to
-       negative infinity whereas fadd conforms only in that mode.
+       * arm.c (output_return_instruction): Handle more cases where we can
+       return from a function with an ldr instruction.
+       (arm_output_epilogue): Likewise.
 
-Thu Jul 18 01:01:37 1991  Eric Youngdale (youngdale at v6550c.nrl.navy.mil)
+       * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
+       if we need to push a large stack frame and there are no callee-saved
+       registers.
+
+       * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
+       in ARM code if the frame pointer has been eliminated.
+
+       * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
+       unspec_volatile arguments to avoid duplicates.
+       (consttable_1, consttable_2): Fixes for big-endian mode.
+
+       * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
+       as appropriate.
+
+       Re-write constant pool code.
+       * arm.c (minipool_node, minipool_fix): New types.
+       (minifix): Delete type.
+       (arm_add_minipool_constant): Delete.
+       (arm_compute_minipool_offsets, arm_find_barrier,
+       arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
+       (get_jump_table_size): Now returns HOST_WIDE_INT.
+       (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
+       functions.
+       (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
+       (assign_minipool_offsets, arm_print_value): Likewise.
+       (dump_minipool): Rewrite.
+       (arm_barrier_cost): New function.
+       (create_fix_barrier): New function.
+       (push_minipool_barrier): New function.
+       (push_minipool_fix): Record additional information about the fixup
+       required.
+       (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
+       check the mode of what needs fixing.
+       (arm_reorg): Rewrite.
+
+       2000-03-08  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.md (indirect_jump): Force constant addresses into
+       a register.
+
+       2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
+
+       * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
+
+       2000-02-24  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
+       adjust is word aligned.
+       (thumb_expand_epilogue): Make sure that stack adjust is word
+       aligned.
+
+       * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
+
+       2000-02-24  Bernd Schmidt <bernds@cygnus.com>
+
+       * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
+       pointer relative addresses.
+
+       2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (find_barrier): Find the last barrier within the allowed
+       range.
+
+       2000-02-09  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm-protos.h: Replace PROTO with PARAMS.
+
+       2000-02-09  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
+       ARM_FUNCTION_PROFILER.
+
+       * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
+       ARM_FUNCTION_PROFILER.
+
+       * config/arm/linux-oldld.h: Imported from mainline sources.
+
+       2000-02-07  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/lib1funcs.asm: Merge in thumb functions from
+       lib1thumb.asm.
+
+       * config/arm/lib1thumb.asm: Delete.
+
+       2000-02-04  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c: Sychronised with current Red hat local
+       sources.
+       * config/arm/arm.h: Ditto.
+       * config/arm/arm-protos.h: Ditto.
+
+       2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
+
+       * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
+       byte stores.
+
+       2000-02-02  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
+
+       * config/arm/arm.md (epilogue): Fix rtl checking abort because
+       (return) was emited using an emit_insn() call.
+
+       2000-01-31  Nick Clifton  <nickc@cygnus.com>
 
-       * make-cc1.com: Add command line to compile reg-stack.c, and add
-       reg-stack.obj to the list of files passed to the VMS linker.
+       * config/arm/arm.c (output_thumb_prologue): Fix bug generating
+       thumb stack frame.
+       (thumb_exit): Move frame pointer back into hard frame pointer
+       register if backtracing is being used.
 
-Thu Jul 18 00:11:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       2000-01-13  Richard Earnshaw (rearnsha@arm.com)
 
-       * Makefile.in (enquire.o): Need not depend on gnulib.
-       (gnulib2): Renamed from gnulib2.portable.
-       Don't do ranlib.
-       (gnulib2.portable): Just refers to gnulib2.
-       (gnulib1.portable): Don't do ranlib.
+       * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
+       into branch.
 
-Wed Jul 17 11:19:09 1991  Michael Meissner  (meissner at geech.gnu.ai.mit.edu)
+       1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * Makefile.in (gcc): Do a -dumpspecs after building gcc so that -B./
-       will override any installed specs in /usr/local/lib.
-       (mostlyclean): Delete *.cpp files which are left if you use
-       -save-temps.
+       * config/arm/arm.md (neg_pool_offset): Provide default for new
+       attribute.
+       (arm_movsi_insn): Add neg_pool_offset attribute.
+       * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
+       rtx for the insn that starts the scan and an unsigned long for its
+       address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
+       Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
+       instructions in *PINSERTED.
+       (struct minipool_fixup): Add MIN_ADDRESS elt.
+       (sort_fixups): Compute it.
+       (arm_reorg): Changes to support inserting pools before the insn to be
+       fixed up.
 
-Wed Jul 17 06:08:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * combine.c (try_combine): When putting I2 and/or I1 into NEWPAT,
-       check for a PARALLEL; if so, just put in the relevant SET instead
-       of making a PARALLEL containing a PARALLEL.
+       * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
+       * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
+       * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
 
-Tue Jul 16 18:58:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
 
-       * combine.c (record_value_for_reg): Show we haven't seen the death
-       of a register once we have seen it modified.
+       * config/arm/semi.h (TARGET_VERSION): Do not define if already
+       defined.
+       (TARGET_DEFAULT): Do not define if already defined.
 
-       * reload1.c (reload): If we decide to put a pseudo which used to have
-       a MEM equiv onto the stack, set SOMETHING_CHANGED and reprocess all
-       eliminations and pseudos without scanning the insns.
+       Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
 
-Tue Jul 16 13:17:14 1991  Michael Meissner  (meissner at wookumz.gnu.ai.mit.edu)
+       * config/arm/arm.md (anddi3): Allow disjoint source operands.
+       (iordi3): Allow disjoint source operands.
+       (xordi3): Allow disjoint source operands.
+       (negdi2): Permit construction for ARM and Thumb.
+       (arm_negdi2): Renamed version of old negdi2 pattern.
+       (thumb_negdi2): New pattern: Only permit non-overlapping
+       source and destination.
 
-       * cplus-decl.c (sigsegv): Make signal handler void for full
-       prototyping systems.
+       Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
 
-Tue Jul 16 12:25:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
+       scratch low register so that it will not be deleted.
 
-       * dbxout.c (dbxout_symbol): Ignore types with no names of any kind.
+       Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
 
-Tue Jul 16 07:12:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/arm/pe.h (ARM_PE): Define.
 
-       * stmt.c (pushcase, pushcase_range): Return label in *DUPLICATE,
-       not integer value.
+       * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
+       interfacearm attribute if this is a PE toolchain.
+       (output_return_instruction): Do not emit anything if the function
+       has the naked attribute set.
+       (is_called_in_ARM_mode): If the function has the interfacearm
+       attribute then return true.
+       (thumb_expand_prologue): Do not generate a prologue for naked
+       functions.
+       (thumb_expand_epilogue): Do not generate an epilogie for a naked
+       function.
+       (output_thumb_prologue): Do not bother if the function is naked.
+       Strip PE encoding from function name before emitting.
 
-       * rtlanal.c (reg_referenced_p, reg_overlap_mentioned_p): Allow X to
-       be (cc0) or (pc).
+       Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
 
-       * combine.c (subst, case SET): Delete code to remove "unnecessary"
-       SUBREG; code was incorrect and this is done (corrected below) in
-       simplify_comparison.
-       (simplify_comparison): Can only remove SUBREG for equality comparisons.
+       * arm.md (pic_load_addr): Fix constraints.
 
-       * expr.c (expand_expr, case COND_EXPR): If condition has side effects,
-       ensure we evaluate it before evaluating an arm of the COND_EXPR.
+       * arm.md (casesi_insn): Fix mis-applied patch.
 
-Mon Jul 15 21:59:36 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * arm.md ("core" function unit): Add rules for single- and
+       multi-cycle insns.
+       (All TARGET_THUMB patterns): Add "type" attribute information
+       where needed.
+       * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
+       the following insn is a CALL.
 
-       * rtl.h (FUNCTION_FLAGS_RETURNS_STRUCT): Fix typo in value.
+       * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
+       pointer.
+       * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
+       ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
+       (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
+
+       Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/linux-gas.h: oops - this file was missed out when the
+       branch was created...
+
+       Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
+
+       * thumb.c: Deleted.  Move contents to ...
+       * arm.c: ... here.
+       * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
+       rule for thumb.o
+       * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
+       * configure: Regen.
+
+       * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
+       declare a prototype for asm_output_align();
+
+       * arm.c (thumb_condition_code): Delete.
+       (arm_print_operand): Always use arm_condition_code array.
+
+       * arm.c (thumb_return_addr_rtx): Delete.
+       (arm_save_machine_status, arm_restore_machine_status): Delete.
+       (arm_init_machine_status, arm_mark_machine_status): New functions.
+       (arm_init_expanders): Update accordingly.
+       (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
+       (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
+       * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
+
+       Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * configure.in : Fix arm-*-aout target to use new t-arm-aout
+       script.
+       * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
+       targets.
+
+       Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
+       stack backtrace structure.
+
+       * config/arm/arm-protos.h: Add prototypes for functions defined in
+       arm/pe.h.
+
+       * config/arm/arm.c (arm_override_options): Fix selection of
+       attributes of default processor.
+
+       * config/arm/coff.h: Delete needless #include.
+
+       * config/arm/pe.c: Delete unused code.
+
+       * config/arm/pe.h (CPP_DEFINES): Delete
+       (SUBTARGET_CPP_SPEC): Define.
+       (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
+
+       * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
+
+       Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
+       updated.
+       (CAN_DEBUG_WITHOUT_FP): Define.
+       (FIXED_REGISTERS): Make r11 call-saved.
+       (CALL_USED_REGISTERS): Likewise.
+       (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
+       (FRAME_POINTER_REQUIRED): Correct logic for determining when a
+       frame-pointer is required.
+       (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
+       * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
+       if the target normally needs a stack frame in non-leaf functions.
+       (use_return_insn): Correct logic for determining when a return
+       instruction can be used.
+       (output_return_instruction): Handle the frame-pointer register as
+       a normal register when not TARGET_APCS_FRAME.
+       (arm_output_prologue): Likewise.
+       (arm_output_epilogue): Likewise.
+       (output_func_epilogue): Likewise.
+       (arm_expand_prologue): Likewise.
+       * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
+
+       * arm.c (use_return_insn): No need to check floating point regs if
+       TARGET_SOFT_FLOAT.
+       (arm_find_minipool_constant): Correct typo; use GET_CODE to get
+       the code of value stored in the minipool array.
+       (arm_add_minipool_constant): Likewise.
+
+2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * basic-block.h (conflict_graph_enum_fn): K&R fix.
+
+2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * tree.c (tree_expr_nonnegative_p): New function.
+
+       * tree.h (tree_expr_nonnegative_p): Declare.
 
-Mon Jul 15 22:18:40 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
+       elide some sign_compare warnings.
+       (build_conditional_expr): Likewise.
 
-       * cccp.c (main): Ignore CPATH if -nostdinc.
+Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
 
-Mon Jul 15 22:00:02 1991  Michael Meissner  (meissner at churchy.gnu.ai.mit.edu)
+       * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
 
-       * reload.c (find_reloads): Fix typo (reg_sets_p instead of
-       reg_set_p).
+       * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
+       * i386.c (print_operand): Use the proper suffix for a 387 HImode
+       operand.  Abort if a 387 operand has an unsupported size.
 
-Mon Jul 15 21:49:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-04-08  Neil Booth  <NeilB@earthling.net>
 
-       * c-parse.y (stmt): Emit the nop for the start of a loop
-       only after the line number.
+       * cppexp.c (parse_charconst): Null does not end character
+       constants.
+       * cppinit.c (ISTABLE): Null character handled as whitespace.
+       * cpplex.c (null_warning):  new function.
+       (skip_string): Emit warning if nulls encountered.
+       (_cpp_skip_hspace): Emit warning if nulls encountered.
+       (_cpp_lex_token): Emit warning if nulls encountered.  Drop
+       them.
+       * cpp.texi: Update.
 
-Mon Jul 15 16:50:51 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edn)
+2000-04-07  Richard Henderson  <rth@cygnus.com>
 
-       * rtlanal.c (reg_set_p): If we are passed an insn, only pass the
-       pattern to note_stores.
+       * flow.c (loop_depth): Remove.
+       (reg_next_use, cc0_live, mem_set_list): Replace with ...
+       (struct propagate_block_info): New.
+       (life_analysis): Don't allocate reg_next_use.
+       (propagate_block_delete_insn): Break out of propagate_block.
+       Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
+       (propagate_block_delete_libcall): Likewise.
+       (propagate_block): Create a propagate_block_info struct to pass
+       to subroutines.  Allocate one not two temporary regsets.  Don't
+       clobber memory for const calls.  Look for clobbers in
+       CALL_INSN_FUNCTION_USAGE.
+       (mark_set_regs): Recognize COND_EXEC.
+       (mark_set_reg): Break out of mark_set_1.
+       (mark_used_reg): Break out of mark_used_regs.
+       (mark_used_regs): Recognize COND_EXEC.
+       (insn_dead_p): Use propagate_block_info struct.
+       (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
+       (find_auto_inc, try_pre_increment_1): Likewise.
+       (print_rtl_with_bb): Dump regs live at end too.
+       (count_reg_sets_1): Pass in loop_depth.
+       (count_reg_sets, count_reg_references): Likewise.
+       (recompute_reg_usage): Provide it.
 
-       * local-alloc.c (validate_equiv_mem): A CALL_INSN invalidates all
+2000-04-07  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
+       not the raw files.
+
+2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_elif): Skip the rest of the line if we're
+       not going to bother evaluating it.
+       (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
+       to avoid pointless calls to the lexer.
+
+Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
+
+2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
+
+       * calls.c (expand_call): emit_queue if we're trying a sibcall.
+
+2000-04-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
+
+2000-04-06  Geoff Keating  <geoffk@cygnus.com>
+
+       * Makefile.in: Build crtbeginS and crtendS like crtbegin and
+       crtend so they can be multilibbed.
+       (STAGESTUFF): Remove s-crt and s-crtS.
+
+2000-04-07  Richard Henderson  <rth@cygnus.com>
+
+       * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
+       if we discover we need a pseudo and no_new_pseudos is true.
+       * config/alpha/alpha.md (ne:DI insn): New.
+       (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
+
+2000-04-07  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.def (COND_EXEC): New.
+       * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
+       * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
+
+       * genconfig.c (have_cond_arith_flag): Remove.
+       (have_cond_exec_flag): New.
+       (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
+       (main): Print HAVE_conditional_execution.
+
+       * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
+       (sched_analyze_insn, print_pattern): Likewise.
+       * reload.c (find_equiv_reg): Likewise.
+       * rtlanal.c (reg_referenced_p): Likewise.
+       (note_stores, dead_or_set_regno_p): Likewise.
+       (reg_overlap_mentioned_p): Rewrite to use a switch.
+
+       * ggc.h (struct rtx_def): Forward declare.
+
+       * print-rtl.c (debug_rtx_range): New.
+       * rtl.h (debug_rtx_range): Declare.
+
+       * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
+
+       * gcse.c (gcse_main): Don't rebuild the CFG here.
+       (delete_null_pointer_checks): Likewise.
+       * ssa.c (convert_to_ssa): Likewise.
+       * toplev.c (rest_of_compilation): Do it here instead.  Combine
+       sequential calls to TIMEVAR.  Consistently use `insns' instead of
+       `get_insns()'.  Always split insns after reload when optimizing.
+
+       * basic-block.h (merge_blocks_nomove): Declare.
+       (tidy_fallthru_edge): Declare.
+       * flow.c (merge_blocks_nomove): Document as merging into previous
+       blocks.  Remove cruft from between blocks; remove all edges out of A.
+       (tidy_fallthru_edge): Export.
+
+2000-04-06  Alex Samuel  <samuel@codesourcery.com>
+
+       * ssa.c (compute_conservative_reg_partition): Declare with
+       void arguments.
+       * toplev.c (clean_dump_file): Remove previously-deleted function
+       inadvertantly merged back in.
+       * conflict.c (conflict_graph_add): Use a single call to
+       htab_find_slot to look up and insert.
+
+2000-04-06  Richard Henderson  <rth@cygnus.com>
+
+       * genrecog.c (*): Rename _last_insn to last_insn.
+       (make_insn_sequence): Set the position of the peephole2 C test
+       to be at the last insn.
+
+2000-04-06  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (compute_flow_dominators): Free worklist.
+
+2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
+
+       * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
+
+2000-04-06  Alex Samuel  <samuel@codesourcery.com>
+
+       * rtl.h (INSN_P): New macro.
+       (successor_phi_fn): New typedef.
+       (for_each_successor_phi): New prototype.
+       (in_ssa_form): New variable.
+       (PHI_NODE_P): Likewise.
+       * flow.c (calculate_global_regs_live): Add to new_live_at_end from
+       phi nodes in successors.
+       (mark_used_regs): Add PHI case.
+       (set_phi_alternative_reg): New function.
+       (life_analysis): Assert that dead code elimination is not selected
+       when in SSA form.
+       * toplev.c (to_ssa_time): New variable.
+       (from_ssa_time): Likewise.
+       (compile_file): Zero to_ssa_time and from_ssa_time.
+       Print time to convert to and from SSA.
+       (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
+       (print_time): Compute percent fraction as integer.
+       * ssa.c (PHI_NODE_P): Moved to rtl.h.
+       (convert_to_ssa): Check if we're already in SSA.
+       Don't eliminate dead code in life_analysis.
+       Rerun flow and life analysis at bottom.
+       (eliminate_phi): Use canonical regnos when adding nodes.
+       (mark_reg_in_phi): New function.
+       (mark_phi_and_copy_regs): Likewise.
+       (convert_from_ssa): Rerun life analysis at top.
+       Use coalesced partition.
+       Check for removing a phi node at the end of the block.
+       (compute_coalesced_reg_partition): New function.
+       (coalesce_regs_in_copies): Likewise.
+       (coalesce_reg_in_phi): Likewise.
+       (coalesce_regs_in_successor_phi_nodes): Likewise.
+       (for_each_successor_phi): Likewise.
+       (rename_context): New struct.
+       (rename_block): Use a rename_context with rename_insn_1.  When
+       renaming sets of a subreg, emit a copy of the entire reg first.
+       (rename_insn_1): Treat data as a rename_context *.  Save current
+       insn in set_data.
+       (rename_set_data): Add field set_insn.
+       * Makefile.in (HASHTAB_H): Move up in file.
+       (OBSTACK_H): New macro.
+       (collect2.o): Use OBSTACK_H in dependencies.
+       (sdbout.o): Likewise.
+       (emit-rtl.o): Likewise.
+       (simplify-rtx.o): Likewise.
+       (fix-header.o): Likewise.
+       (OBJS): Add conflict.o.
+       (conflict.o): New rule.
+       * basic-block.h: Include partition.h.
+       (conflict_graph): New typedef.
+       (conflict_graph_enum_fn): Likewise.
+       (conflict_graph_new): New prototype.
+       (conflict_graph_delete): Likewise.
+       (conflict_graph_add): Likewise.
+       (conflict_graph_conflict_p): Likewise.
+       (conflict_graph_enum): Likewise.
+       (conflict_graph_merge_regs): Likewise.
+       (conflict_graph_print): Likewise.
+       (conflict_graph_compute): Likewise.
+       * conflict.c: New file.
+
+2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * tlink.c (read_repo_files): Don't look for .rpo info for
+       linker flags.
+
+Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
+
+Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * config/sh/lib1funcs.asm (___udivsi3_i4):
+       ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
+       only depends on FMOVD_WORKS.
+
+Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
+       make double constant 8-byte aligned.
+
+2000-04-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
+       movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
+       movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
+       (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
+       Accept storing GENERAL_REGS into offsetable memory.
+       * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
+       building a TFmode constant other than 0.0L into GENERAL_REGS.
+
+2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
+
+2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
+       (macro_cleanup): No need to cast pbuf->macro.
+       (collect_expansion): Use _cpp_get_define_token.  Goto done if
+       it returns VSPACE.  Remove check for trailing space after
+       CPP_COMMENT.
+       (_cpp_create_definition): Don't diddle flags here.  Return
+       directly on error.
+       (unsafe_chars): Handle c1 being EOF.
+       (push_macro_expansion): Use unsafe_chars for both accidental-paste
+       checks.  Don't push the buffer till after we're done with
+       them.
+       * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
+       (PEEKN, FORWARD, GETC, PEEKC): Use them.
+       (cpp_push_buffer): Don't set new->alimit.  Set new->mark
+       appropriately.
+       (_cpp_parse_assertion): Don't NUL terminate.
+       (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
+       hspace before calling _cpp_parse_assertion.  Remove all sets
+       of only_seen_white. Treat '\f' as hspace.  Don't do anything
+       special with '\n' here.
+       (maybe_macroexpand): Handle T_EMPTY hash entries without
+       pushing a buffer at all.
+       (cpp_get_token): Handle clearing only_seen_white here.  Handle
+       incrementing the line number here.  Clear
+       potential_control_macro as well as only_seen_white, if
+       appropriate.
+       (cpp_get_non_space_token): Don't eat CPP_POP tokens.
+       (_cpp_get_define_token): New function, basically like
+       _cpp_get_directive_token was but doesn't eat horizontal space.
+       Don't do anything with only_seen_white here.
+       (_cpp_get_directive_token): Just call _cpp_get_define_token
+       repeatedly till it returns non-hspace.
+
+       * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
+       (conditional_skip, skip_if_group): Return int.
+       (DIRECTIVE_TABLE): Change origin of all conditional directives
+       to "COND".
+       (TRAD_DIRECT_P): New macro.
+       (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
+       an error for a bogus directive, unless -lang-asm.  Use
+       TRAD_DIRECT_P. Loop calling handler functions till one returns
+       zero.
+       (get_macro_name): Don't diddle flags here.
+       (do_define): Diddle flags here.  Use _cpp_get_directive_token.
+       Create T_EMPTY nodes for #define macro /* nothing */.
+       (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
+       Use hp->name when calling pass_thru_directive.
+       (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
+       Return the result of conditional_skip and/or skip_if_group.
+       Don't call _cpp_output_line_command.
+       (consider_directive_while_skipping): Use _cpp_get_directive_token.
+       Issue -Wtraditional warnings as appropriate.  Don't complain
+       about unrecognized directives.  If we are to stop skipping,
+       return the number of the directive that ended the skip.
+       (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
+       expansion and line commands while skipping.  Return the result
+       of consider_directive_while_skipping, if nonzero.
+       (do_endif): Just set potential_control_macro here.
+       (validate_else): Use _cpp_get_directive_token.
+       (do_assert, do_unassert): Don't save pointers into the
+       token_buffer across calls to the lexer.  Use
+       _cpp_get_directive_token.
+
+       * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
+       pointer, not an offset.  Replace 'data', which was a generic
+       pointer, with 'macro', which points to a struct hashnode.
+       (cpp_reader): Add 'potential_control_macro' pointer.
+       * cpphash.h (T_UNUSED): Replace with T_EMPTY.
+       (CPP_BUF_GET, CPP_FORWARD): Delete.
+       (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
+       (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
+       ACTIVE_MARK_P): Update.
+       (_cpp_get_define_token): New internal function.
+       * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
+
+2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
+
+       * configure.in: And here.
+       * configure: Regenerate.
+       * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
+       --enable-libstdcxx-v3 is passed at configure time.
+       * config.h.in: Regenerate.
+
+2000-04-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * final.c (final): Use xcalloc to allocate line_note_exists.
+       * function.c (free_after_compilation): Free the temp_slots.
+       (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
+       (combine_temp_slot): Free temp_slots when they get combined.
+       (purge_addressof): Fix typo in comment.
+       * stmt.c (mark_goto_fixup): Mark the fixup itself.
+       (expand_fixup): Allocate the fixup with ggc_alloc_obj.
+
+       * ggc.h: Include varray.h.
+       (ggc_pending_trees): Declare.
+       (ggc_mark_tree_children): Remove declaration.
+       (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
+       * ggc-common.c (ggc_pending_trees): New variable.
+       (ggc_mark_roots): Call ggc_mark_trees.
+       (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
+       the ggc_pending_trees.
+       * Makefile.in (GGC_H): New variable.  Use it throughout in place
+       of ggc.h.
+
+Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accommodate an unsigned
+       GET_MODE_SIZE.
+
+Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.c (sh_insn_length_adjustment): New function.
+       * sh-protos.h (sh_insn_length_adjustment): Declare.
+       * sh.h (ADJUST_INSN_LENGTH): Use it.
+
+Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
+       from the insn where REG_RETVAL is added.
+       (emit_no_conflict_block): Ditto.
+
+       * md.texi (Standard Names): Clarify when movX is needed.
+
+       * combine.c (simplify_comparison) [MINUS]: Do not replace
+       all (op (minus A B) 0) with (op A B).
+
+Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
+                         J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (block_lump_real_i4): Add missing clobber of T_REG
+       (block_lump_real): Likewise.
+
+2000-04-05  Chris Demetriou  <cgd@netbsd.org>
+
+       * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
+       remaining nonzero debugging masks.
+
+Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * basic-block.h (verify_flow_info): Declare.
+       (flow_loop_outside_edge_p): Declare.
+       * flow.c (verify_flow_info): Remove declaration.
+       (clear_log_links, flow_loop_outside_edge_p): Likewise.
+
+Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
+
+       * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
+       not C++ comments.
+
+2000-04-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
+       snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
+       seqdi_zero_trunc+1): Allow splits only if registers are
+       different.
+
+2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
+
+       * acconfig.h: Add HAVE_GAS_HIDDEN.
+       * config.in: Regenerated.
+       * configure.in: Add test for .hidden pseudo-op in gas.
+       * configure: Regenerated.
+       * crtstuff.c: Include auto-host.h.
+       Emit additional .hidden pseudo-op for __dso_handle if the
+       assembler knows about it.
+
+2000-04-04  Philippe De Muyter  <phdm@macqel.be>
+
+       * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
+       before freeing argnames.
+       * cpplib.c (do_ifndef): Cast return value of xstrdup.
+
+2000-04-05  Michael Meissner  <meissner@redhat.com>
+
+       * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
+       Walton <jonboy@gordian.com> to make memory references with update
+       work wtih -mregnames.
+
+2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
+       (regrename_optimize): Rename variables `def_uses' and
+       `ext_basic_blocks' to avoid conflicts with similarly named
+       typedefs in traditional C.
+
+       * calls.c (initialize_argument_information): Fix typo in previous
+       change.
+
+2000-04-04  Richard Henderson  <rth@cygnus.com>
+
+       * regrename.c (consider_available): Test fixed_regs not
+       PIC_OFFSET_TABLE_REGNUM.
+
+2000-04-04  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
+       crtend.
+       (CRTSTUFF_T_CFLAGS_S): Delete definition.
+       * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
+       (ENDFILE_LINUX_SPEC): Always use crtend.
+       * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
+       (powerpc-*-linux-gnu): Likewise.
+       * configure: Regenerate.
+
+       * config/rs6000/eabi.h: Don't include sysv4.h.
+       (MULTILIB_DEFAULTS): Don't define.
+       * config/rs6000/eabiaix.h: Don't include eabi.h.
+       * config/rs6000/eabile.h: Delete.
+       * config/rs6000/eabilesim.h: Delete.
+       * config/rs6000/eabisim.h: Don't include eabi.h.
+       * config/rs6000/linux.h: Don't include sysv4.h.
+       (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
+       (MULTILIB_DEFAULTS): Don't redefine.
+       * config/rs6000/rtems.h: Don't include eabi.h.
+       * config/rs6000/sol2.h: Don't include sysv4le.h.
+       * config/rs6000/sysv4le.h: Don't include sysv4.h.
+       * config/rs6000/t-ppc: Delete.
+       * config/rs6000/t-ppcgas: Correct comment.
+       * config/rs6000/t-ppcos: Correct comment.  Don't build
+       multilibs for -fPIC, rather use -fPIC -mstrict-align
+       as default.
+       * config/rs6000/t-ppc: Delete.
+       * config/rs6000/vxppc.h: Don't include sysv4.h.
+       * config/rs6000/vxppcle.h: Delete.
+       * configure.in: Use multiple header files for p2pc ELF targets
+       powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
+       powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
+       powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
+       powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
+       always available for these platforms.
+
+2000-04-04  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
+
+2000-04-04  Stan Cox  <scox@cygnus.com>
+
+       * Makefile.in: Add rules for regrename.o
+       * regrename.c: New file.
+       * rtl.h (regrename_optimize): Add prototype.
+       * toplev.c (rename_registers_dump, flag_rename_registers): New variables
+       (compile_file, decode_d_option): Add support for -frename-registers.
+       (rest_of_compilation): Call regrename_optimize.
+       * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
+       New macros.
+
+2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * Makefile (gccbug): New target.
+       (doc): Depend on it.
+       * gcc.texi (Bugs): Link subnodes.
+       (gccbug): New node.
+       * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
+       Document severities, priorities, and classes in bug form.
+
+2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (trigraph_map, speccase): Combine into single
+       table, chartab.
+       (NORMAL, NONTRI): New macros.
+       (_cpp_read_and_prescan): Change to use unified table.  Use
+       is_hspace to test for whitespace.
+
+       * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
+       definition that doesn't provoke the "empty body in an
+       if-statement" warning.
+
+2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * builtins.c (expand_builtin_strlen): Force the source to
+       be a memory address.
+
+2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
+
+Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
+        ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
+       (ECF_IS_CONST): Rename to ECF_CONST.
+       (special_function_p): Make static, change interface.
+       (flags_from_decl_or_type, try_to_integrate): Break out from ...
+       (expand_call) ... here; convert number of variables to flags.
+       (emit_library_call_vlue_1): Likewise.
+       (setjmp_call_p): New function.
+       (initialize_argument_information): Accepts flags as argument;
+       return flags.
+       (precompute_arguments): Likewise.
+       * tree.h (special_function_p): Remove.
+       (setjmp_call_p): Add prototype.
+
+2000-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
+       so that addresses are offsetable by up to 16 bytes.
+       (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
+       non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
+       offsetable.
+
+       * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
+       (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
+       (movsf): Don't force any constant to memory if target is integer
+       hard register.
+       Move fp_zero_operand check below the const0_rtx check.
+       (movtf): Likewise. Also allow fp_zero_operand for stores into
        memory.
+       (movdf): Likewise. Also allow fp_zero_operand for stores into
+       memory and into integer hard registers.
+       (clear_df, clear_dfp, movdf_const_intreg_sp32,
+       movdf_const_intreg_sp64): Remove.
+       (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
+       conditions.
+       (movdf_no_e_insn_v9_sp32): New pattern.
+       (movdf_insn_v9only): Remove.
+       (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
+       (movdf_insn_sp64): Remove.
+       (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
+       (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
+       (following splits): Rewrite conditions. Add two new splits
+       for storing 0.0 into memory and registers.
+       (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
+       (movtf_insn_sp32): Redo constraints and conditions.
+       (movtf_insn_vis_sp32): New pattern.
+       (movtf_no_e_insn_sp32): Redo constraints and conditions.
+       (movtf_insn_hq_sp64): Likewise.
+       (movtf_insn_hq_vis_sp64): New pattern.
+       (movtf_insn_sp64): Redo constraints and conditions.
+       (movtf_insn_vis_sp64): New pattern.
+       (movtf_no_e_insn_sp64): Redo constraints and conditions.
+       (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
+       or memory.
+       * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
+       -mvis or -m64 to take down the number of various reload patterns.
+
+Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * pa/pa-64.h: New file.
+       * pa/pa64-regs.h: New file.
+       * pa/pa64-start.h: New file.
+       * pa/t-pa64: New file.
+       * pa/xm-pa64hpux.h: New file.
+
+2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * sparc.c (output_restore_regs): Prototype.
+       (sparc_emit_float_lib_cmp): Constification.
+
+       * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
+
+       * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
+       Prototype.
+
+       * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
+       (get_value_hash, hash_rtx): Likewise.
+
+       * ssa.c (compute_conservative_reg_partition): Prototype.
+
+       * tree.c (mark_hash_entry): Prototype.
 
-Sun Jul 14 06:34:47 1991  Richard Kenner  (kenner at vlsi1.ultra.hyu.edu)
+2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cse.c (last_jump_equiv_class): New variable.
-       (record_jump_equiv): Set it.
-       (cse_insn): Clear it.
-       (cse_around_loop): Invalidate all entries in last_jump_equiv_class.
-       (cse_set_around_loop): Ensure our replacement is cheaper.
+       * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
+       * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
+       * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
 
-Sat Jul 13 17:15:30 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
+       * objc/lang-specs.h: Likewise.
 
-       * cplus-decl.c (finish_enum): Fix typo in arguments for finish_decl.
-       * cplus-class.c (finish_struct): Likewise.
+2000-04-03  Neil Booth  <NeilB@earthling.net>
 
-Fri Jul 12 16:45:02 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
+       and SYNTAX_ERROR2. Replace `' in messages with ''.
+       (op_to_str): Make re-entrant.
+       (_cpp_parse_expr): Implement new error macros. Use | rather
+       than || to logically or 2 boolean integers.  Simply expression
+       checking we have a left operand iff needed.
 
-       * dbxout.c (dbxout_symbol): Don't crash when DECL_NAME is 0.
+2000-04-03  Nick Clifton  <nickc@cygnus.com>
 
-Fri Jul 12 15:38:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * Makefile.in (diagnostic.o): Depend upon diagnostic.c
 
-       * expr.c (do_tablejump): Don't write BARRIER between jump and table
-       if they must remain adjacent.
+2000-04-03  Philip Blundell  <philb@gnu.org>
 
-       * varasm.c (make_decl_rtl): Set REG_USERVAR_P when register name
-       is specified.
-       * integrate.c (subst_constants): Don't substitute for a user
-       variable assigned to a hard register.
+       * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
 
-       * reload.c (find_reloads): Add new vars no_{input,output}_reloads to
-       indicate when the corresponding reload type is not permitted; reject
-       an alternative that would try such a reload.
-       * rs6000.md (decrement-and-branch): No longer need kludges to
-       avoid output reloads.
-       Use '0' instead of 'c' for input 1 in alternative 0.
-       Allow operand 0 to be in non-general register.
-       
-Fri Jul 12 10:54:39 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+2000-04-03  Felix Lee  <flee@cygnus.com>
 
-       * c-decl.c (finish_struct, finish_enum): Fix typo in arguments for
-       finish_decl.
+       * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
+       (run_shell): Use it.
 
-       * i386.md (bit test patterns): Delete bit tests using implicitly
-       masked bit number operand: the hardware doesn't work like that.
+2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
-Fri Jul 12 09:50:43 1991  Michael Meissner  (meissner at spiff.gnu.ai.mit.edu)
+       * Makefile.in (stmp-int-hdrs): Make include subdir here...
+       (stmp-fixproto): ...rather than here.
 
-       * tm-hp9k2bsd.h (toplevel): Remove RCS HISTORY log.
+Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
 
-Thu Jul 11 00:46:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * pa.c (print_operand): Compute 'base' only inside the code paths
+       that use it.
 
-       * c-parse.y (yylex): Do try signed int for ANSI nondecimal constants.
+2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
 
-       * c-typeck.c (record_format_info): The first time, use xmalloc.
+       * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
+       CEIL_DIV_EXPR.
 
-Wed Jul 10 18:54:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-04-03  Philipp Thomas  <pthomas@suse.de>
 
-       * jump.c (jump_optimize): Fix typo in "if (...) x = a; else x = b;"
-       case: had temp3 instead of temp4.
+       * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
 
-       * cplus-lex.c (lineno, end_of_file): Move definition to before
-       first use.
-       (reinit_parse_for_block): Variable `c' must be int to ensure EOF fits.
-       * cplus-input.c (getch): Remove extraneous declaration of end_of_file.
+Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
 
-       * reload1.c: Include insn-flags.h.
-       (emit_reload_insns): Handle the case where we reload an entire
-       address; use "reload_load_address" pattern, if it exists.
-       Remove explicit SImode reference; should have been Pmode, but
-       IN can be used instead of rebuilding it.
-       * Makefile.in (reload1.o): Includes insn-flags.h.
+       * Makefile.in (alias.o): Depend on $(TREE_H).
 
-       * reload.c (find_reloads): If replacing an output REG with a MEM,
-       write a CLOBBER for the REG after the insn.
-       * reload1.c (eliminate_regs): Add new arg INSN; if nonzero, add a
-       CLOBBER when replacing a REG in SET_DEST with a MEM.
-       (reload, eliminate_regs_in_insn): Add new arg to eliminate_regs.
-       * dwarfout.c (output_bound_representation, location_attribute):
+2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppinit.c (cpp_start_read): Turn off -Wtraditional if
+       processing C++.
+       * cpplib.c (_cpp_handle_directive): Improve warnings for
+       traditional C and indented directives.
+
+       * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
+       fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
+       fixinc/inclhack.def: Indent the # of #include_next one space.
+       * cp/rtti.c: Un-indent #if and #endif.
+
+       * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
+       syntax error, but an error has already been printed.
+       * cpplex.c (_cpp_parse_assertion): Give a more specific error
+       message when called with nothing remaining on the line.
+       (_cpp_lex_token): If _cpp_parse_assertion fails, return an
+       OTHER token, not an ASSERTION.
+       * cpplib.c (do_assert): When we create a 'base' node, clear
+       its aschain pointer.
+
+2000-04-02  Neil Booth <NeilB@earthling.net>
+
+       * cppexp.c:  New typedef op_t.  struct operation and struct
+       token updated to use it.
+       (op_to_str): New function.
+       (_cpp_parse_expr): Error messages modified to use op_to_str.
+
+2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
+       before checking MUST_PASS_IN_STACK.
+
+2000-04-02  Neil Booth <NeilB@earthling.net>
+
+       * cppexp.c:  New FINISHED dummy token.  Combine operator initial
+       flags and initial priority into a single constant.  New
+       EQUALITY macro.  New operator flag SHORT_CIRCUIT.
+       (_parse_cpp_expr): Implement new constants.  Take left operand
+       checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
+       parse indicated by reducing FINISHED token.  Remove new lines
+       from cpp_error messages.
+
+2000-04-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
+       permanent obstack.
+
+2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c: Include symcat.h.  Add 'origin' field to struct
+       directive.  Add origin values to DIRECTIVE_TABLE.  Generate
+       the strings and function names on the fly.  Take the #sccs
+       entry out of the table if SCCS_DIRECTIVE is not defined.
+       (_cpp_handle_directive): Decide if the # was at the beginning
+       of the line here.  Issue -pedantic warnings for extended
+       directives here.  Warn about K+R directives with the #
+       indented, and C89/extended directives with the # not indented,
+       here.
+       (do_import, do_include_next, do_warning, do_ident, do_sccs,
+       do_assert, do_unassert): Don't issue pedantic warning here.
+
+       * cpphash.h: Add CPP_WTRADITIONAL macro.
+       * cpplib.h (struct cpp_options): Rename warn_stringify to
+       warn_traditional; update comments.
+       * cppinit.c (handle_option): Set warn_traditional not
+       warn_stringify.
+       * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
+       CPP_WTRADITIONAL (pfile).
+       * cpplex.c (_cpp_lex_token): Don't decide if directives should
+       be ignored in -traditional mode here.
+
+       * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
+       to initialize speccase[] and trigraph_map[].  Delete all
+       references to pfile->input_speccase.  Always treat '?' as a
+       special character.  Remove table-initialization code from
+       _cpp_init_input_buffer.
+
+       * cpplib.h (struct cpp_reader): Remove input_speccase field.
+       * cppinit.c (cpp_cleanup): Don't free input_speccase.
+
+2000-04-01  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
+       (mostlyclean): Likewise.
+
+       * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
+       (struct dump_file_info, enum dump_file_index, dump_file): New.
+       (open_dump_file): Take a dump_file_index not a suffix, and a decl
+       not a string.  Clean out file if we haven't yet done so.  Do nothing
+       if the dump isn't enabled.
+       (close_dump_file): Do nothing if the dump isn't open.  Dump
+       graph data if requested.
+       (dump_rtl, clean_dump_file): Remove.
+       (compile_file): Don't clean the dump files.  Only finalize .bp dump
+       if flag_test_coverage or flag_branch_probabilities.  Only finalize
+       .combine dump if optimizing.  Iterate over dump_file to finalize the
+       graph dumps.
+       (rest_of_compilation): Update for open_dump_file/close_dump_file.
+       Convert all uses of dump_rtl.
+       (decode_d_option): Iterate over dump_file to implement 'a' and to
+       locate pass-specific dumps.
+
+2000-04-01  Neil Booth <NeilB@earthling.net>
+
+       * cppexp.c: Redefine priority constants.
+       (_cpp_parse_expr): Replace left and right priority scheme with
+       single priority logic.  Move LOGICAL to same place as COMPARE.
+       Remove bogus check for multiple unary +/- operators.
+
+2000-04-01  Neil Booth <NeilB@earthling.net>
+
+       * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
+       within the switch statement.  Binary operations break out of
+       the switch naturally.  '(' tokens handled by forcing
+       immediate shift.  ')' handled by forcing immediate reduce to
+       the previous '('.  New error messages.
+
+2000-03-31  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
+       part', it's already in use.  Use %K instead.  Add a return at the
+       end of what is now %K.
+       * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
+
+Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.c  (expand_builtin_apply):  Pass proper parameters to
+       allocate_dynamic_stack_space.
+       * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
+       update stack_pointer_delta; do not update arg_size_so_far.
+       (compute_argument_block_size): Use stack_delta instead of
+       stack_pointer_pending and arg_size_so_far.
+       (expand_call): Add sanity checking for stack_pointer_delta;
+       save and restore stack_pointer_delta for SIB, use
+       stack_pointer_delta for alignment; do not update arg_space_so_far.
+       (emit_library_call_value): Use stack_pointer_delta for alignment.
+       (store_one_arg): Do not update arg_space_so_far.
+       * explow.c (adjust_stack, anti_adjust_stack): Update
+       stack_pointer_delta.
+       (allocate_dynamic_stack_space): Add sanity checking for
+       stack_pointer_delta.
+       * expr.c (init_expr, clear_pending_stack_adjust): Clear
+       stack_pointer_delta.
+       (emit_push_insn): Update stack_pointer_delta.
+       * function.h (struct expr_status): Add x_stack_pointer_delta;
+       remove x_arg_space_so_far.
+       (arg_space_so_far): Remove.
+       (stack_pointer_delta): New macro.
+
+2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h: Merge struct cpp_options into struct cpp_reader.
+       Reorder struct cpp_options and struct cpp_reader for better
+       packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
+       takes two args.  Change all 'char' flags to 'unsigned char'.
+       Move show_column flag into struct cpp_options.  Don't
+       prototype cpp_options_init.
+       * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
+       cppinit.c, cpplex.c, cpplib.c:
+       Replace CPP_OPTIONS (pfile)->whatever with
+       CPP_OPTION (pfile, whatever), and likewise for
+       opts = CPP_OPTIONS (pfile); ... opts->whatever;
+
+       * cppinit.c (merge_include_chains): Take a cpp_reader *.
+       Extract CPP_OPTION (pfile, pending) and work with that
+       directly.
+       (cpp_options_init): Delete.
+       (cpp_reader_init): Turn on on-by-default options here.
+       Allocate the pending structure here.
+       (cl_options, enum opt_code): Define these from the same table,
+       kept in a large macro.  Add -fshow-column and -fno-show-column
+       options.
+
+       * cpperror.c (v_message): If show_column is off, don't print
+       the column number.
+
+       * cppmain.c: Update for new interface.
+       * fix-header.c: Likewise.
+
+2000-03-30  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
+       definition.
+       * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
+       are passed to any invocation of AR_FOR_TARGET.
+       (AR_CREATE_FOR_TARGET): New macro.
+       (AR_EXTRACT_FOR_TARGET): New macro.
+       (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
+       AR_EXTRACT_FOR_TARGET.
+       (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
+       in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
+       `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
+       AR_EXTRACT_FOR_TARGET to sub-makes.
+
+2000-03-31  Neil Booth <NeilB@earthling.net>
+
+       * cppexp.c: Delete SKIP_OPERAND.  Correct priority
+       PAREN_INNER_PRIO.
+       (_cpp_parse_expr): Check for multiple unary +/- operators.
+       Correct priorities of ':' and '?'.  Treat ')' as having a
+       value.  Ensure conditional expression is not void.
+
+2000-03-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * alias.c (canon_rtx): Make it global.
+       (rtx_equal_for_memref_p): CONST_INT equality is now pointer
+       equality.
+       * cse.c (struct table_elt): Add canon_exp.
+       (insert): Clear it.
+       (invalidate): Canonicalize expressions only once.
+       * rtl.h (canon_rtx): Declare.
+
+2000-03-30  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
+       * alias.c (reg_known_value): Add comments.
+       (init_alias_analysis): Likewise.
+       * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
+       address.
+       (cse_basic_block): Fix typo in comment.
+       * emit-rtl.c: Include hashtab.h.
+       (const_int_htab): New variable.
+       (const_int_htab_hash): New function.
+       (const_int_htab_eq): Likewise.
+       (rtx_htab_mark_1): Likewise.
+       (rtx_htab_mark): Likewise.
+       (gen_rtx_CONST_INT): Cache all CONST_INTs.
+       (unshare_all_rtx): Fix formatting.
+       (init_emit_once): Initialize const_int_htab.
+       * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
+       address.
+       * rtl.texi: Document the fact that all CONST_INTs with the same
+       value are shared.
+
+2000-03-30  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
+
+2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * configure.in: Comment out --enable-c-cpplib stanza.
+       * configure: Regenerate.
+
+Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (store_constructor): Properly compute displacement and
+       alignment when offset is variable.
+
+       * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
+       cases of alignment in bytes.
+
+Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
+       since it is used to generate c-parse.y.
+       * objc-parse.c, objc-parse.y: Regenerated.
+
+       * function.c (expand_function_end): Pass alignment argument to
+       emit_block_move in bits, not bytes.
+
+Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (move_by_pieces_ninsns): Fix one more missing align
+       correction.
+
+       * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
+
+       * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
+       * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
+       * function.c (assign_parms): Likewise.
+       * integrate.c (expand_inline_function): Likewise.
+       * stmt.c (expand_decl): Likewise.
+       (copy_rtx_and_substitute): Likewise.
+       * expr.c (expand_expr, expand_expr_unaligned): Likewise.
+       (clear_by_pieces): Fix error in last change.
+       * emit-rtl.c (init_emit): Set known registers alignment in bits.
+       * function.h (regno_pointer_align): Now unsigned.
+       * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
+       is in bits.
+       * config/i386/i386.c (aligned_operand): Likewise.
+       * config/sparc/sparc.c (mem_min_alignment): Likewise.
+       * config/alpha/alpha.c (aligned_memory_operand): Likewise.
+       (unaligned_memory_operand): Likewise.
+       (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
+       Also make alignments and sizes unsigned and some whitespace cleanup.
+       (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
+
+       * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
+       (expand_builtin_apply): Pass alignment to emit_block_move in bits.
+       (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
+       (expand_builtin_memset): Likewise, but to clear_storage.
+       * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
+       (restore_fixed_argument_area): Likewise.
+       (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
+       (load_register_parameters): Likewise, to emit_group_load.
+       (expand_call): Likewise, to emit_group_store and emit_block_move.
+       (emit_library_call_value_1): Likewise, to emit_block_move.
+       (store_one_arg): Likewise, and to emit_push_insn.
+       * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
+       (extract_fixed_bit_field, extract_split_bit_field): Likewise.
+       * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
+       (emit_block_move, emit_group_load, emit_group_store): Likewise.
+       (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
+       (expand_assigment, store_expr, store_constructor_field): Likewise.
+       (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
+       (store_constructor, store_field, get_inner_reference): Likewise.
+       Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
+       (expand_expr, case COMPONENT_REF): Likewise.
+       (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
+       and positions; reindent code.
+       * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
+       * function.c (purge_addressof_1): Pass bit align to store_bit_field.
+       (assign_parms): Likewise to emit_group_store.
+       * optabs.c (prepare_cmp_insn): Alignment is in bits.
+       (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
+       * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
+       (expand_return): Likewise to {extract,store}_bit_field.
+       * stor-layout.c (get_mode_alignment): Minor cleanup.
+       * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
+       * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
+
+2000-03-29  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.h: Undo effects of previous delta:
+       (ASM_SPEC): Do not define.
+       (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
+
+       * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
+       typo.
+
+2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppinit.c (cpp_start_read): Call initialize_dependency_output
+       only after reading in the primary source file.
+
+2000-03-29  Geoff Keating  <geoffk@cygnus.com>
+
+       * c-common.c (c_common_nodes_and_builtins): The first parameter to
+       __builtin_va_start and __builtin_va_copy is now either a 'va_list'
+       or a reference to a va_list.
+       * builtins.c (stabilize_va_list): Simplify now we don't have to
+       work around C array address decay.
+       * c-typeck.c (convert_for_assignment): Handle assignment to
+       a reference parameter by taking the address of the RHS.
+       * ginclude/stdarg.h (va_start): Don't take address of first parameter.
+       (va_copy): Likewise.
+       (__va_copy): Likewise.
+       * ginclude/varargs.h (va_start): Likewise.
+       (__va_copy): Likewise.
+
+Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * i386/djgpp.h: Remove extraneous "+".
+
+       * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
+
+       * calls.c (expand_call): Fix typo in last change.
+
+2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
+
+       * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
+       been expanded.
+
+Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
+       (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
+       (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
+       * tree.c (bit_position, byte_position): Likewise.
+       * tree.h: Declare new functions.
+
+2000-03-29  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c: Minor formatting changes/
+       * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
+       already defined.
+       (ASM_SPEC): Define if not already defined.
+
+2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (cpp_read_file): Don't pass zero-length string to
+       _cpp_calc_hash.
+
+2000-03-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
+       value, don't output it as unsigned.
+
+Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
+
+2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (c_common_nodes_and_builtins): Don't special case
+       cplus_mode when declaring builtin bzero/bcmp, always avoid
+       prototype arguments.
+
+2000-03-29  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
+       to a non-file
+
+Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       Convert ACCUMULATE_OUTGOING_ARGS to an expression.
+       * calls.c (PUSH_ARGS_REVERSED) Change to expression.
+       (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
+       (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
+       (save_fixed_argument_area, restore_fixed_argument_area):
+       conditionize by #ifdef REG_PARM_STACK_SPACE only.
+       (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
+       to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
+       (precompute_register_parameters): Avoid #ifdefs on
+       ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
+       (stire_one_args): Likewise.
+       (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
+       (emit_library_call_value_1): Likewise.
+       (compute_argument_block_size): Align to STACK_BOUNDARY only for
+       ACCUMULATE_OUTGOING_ARGS.
+       * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
+       value.
+       (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
+       (use_crosses_set_p): Likewise.
+       * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
+       #define ACCUMULATE_OUTGOING_ARGS 1.
+       * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
+       frames.
+       * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
+       constants.
+       (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
+       (TARGET_SWITCHES): Add push-args, no-push-args,
+       accumulate-outgoing-args and no-accumulate-outgoing-args.
+       (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
+       * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
+       (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
+       and PUSH_ROUNDING.
+       (emit_push_insn): Likewise.
+       * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
+       (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
+       * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
+       (STACK_DYNAMIC_OFFSET): Define correctly for both
+       ACCUMULATE_OUTGOING_ARGS and normal mode.
+       * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
+       * tm.texi (PUSH_ARGS): Document.
+       (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
+
+Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * flags.h (flag_optimize_sibling_calls): Declare.
+       * calls.c (expand_call): Fail sibcall when
+       !flag_optimize_sibling_calls
+       * invoke.texi (flag_optimize_sibling_calls): Document.
+       * toplev.c (flag_optimize_sibling_calls): New global variable.
+       (f_options): Add flag_optimize_sibling_calls.
+       (rest_of_compilation): Conditionize
+       optimize_sibling_and_tail_recursive_calls by
+       flag_optimize_sibling_calls.
+       (main): Set flag_optimize_sibling_calls for -O2.
+       * stmt.c (expand_return): Conditionize tail recursion by
+       flag_optimize_sibling_calls.
+
+2000-03-29  Richard Henderson  <rth@cygnus.com>
+
+       * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
+       (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
+
+2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * except.c (add_eh_table_entry): Mark type_info's as referenced.
+
+2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
+       is given.
+       * config/rs6000/aix43.h (CPP_SPEC): Likewise.
+       * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
+       * config/rs6000/aix.h: then modified likewise.
+
+2000-03-28  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.h: Redistribute enum reg_note documentation.
+       Kill trailing whitespace.
+       * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
+       Kill trailing whitespace.
+
+2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (hash_IHASH): Just return i->hash.
+       (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
+       htab_find_with_hash.
+       (cpp_read_file): Likewise.
+       (find_include_file): Likewise.  Properly initialize
+       ih->nshort.  Share ih->name and ih->nshort if possible.
+       * cpphash.c (_cpp_calc_hash): New function.
+       (hash_HASHNODE): Just return h->hash.
+       (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
+       htab_find_with_hash.
+       * cpphash.h: Prototype _cpp_calc_hash.
+       * cppinit.c (initialize_builtins): Provide a valid hash
+       to _cpp_make_hashnode, using _cpp_calc_hash.
+
+       * cpphash.c (collect_expansion): # is not a special character
+       in object-like macros.  In -traditional mode, /**/ is not
+       token paste at the beginning or end of the line.
+       * cpplib.c (do_include, do_import, do_include_next): If
+       parse_include fails, return immediately.
+
+2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
+
+       * config/arm/arm.md (return peepholes): Update to reflect the new
+       call insn patterns.
+       * config/arm/arm.c (arm_volatile_func): Also check
+       current_function_nothrow.
+       (output_return_instruction, output_func_prologue): Use it.
+       (arm_output_epilogue, arm_expand_prologue): Likewise.
+
+2000-03-27  Tom Tromey  <tromey@cygnus.com>
+
+       * gcc.c (handle_braces): In {x*...} case, break out of loop if
+       switch is found.
+
+Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (store_constructor): SIZE now signed.
+       For EXPR_SIZE, don't evaluate size; just needed if constant.
+       * fold-const.c (fold): Fix a number of cases when folded tree is
+       wrong type.
+       * function.c (flush_addressof): Reenable.
+       * tree.h (flush_addressof): Likewise.
+       * toplev.c (independent_decode_option): Look at strings_processed.
+       * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
+
+Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
+
+       * sibcall.c (identify_call_return_value): Find last call in the chain;
+       Allow stack adjustment after function call.
+
+       * regmove.c (struct csa_memlist): Make mem field rtx *.
+       (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
+       (try_apply_stack_adjustment): Replace whole MEM rtx.
+       (combine_stack_adjustments_for_block): Update calls
+       to record_one_stack_ref.
+
+2000-03-28  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
+       '\\' rather than a null character, so nulls are not special.  Fix
+       "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
+       speed trigraph conversion.
+       (_cpp_init_input_buffer): Initialize trigraph map.
+
+2000-03-27  Alan Modra  <alan@linuxcare.com.au>
+
+       * config/i386/i386.c (output_387_binary_op): Correct intel
+       mode assembly output, and add spaces after commas in AT&T
+       output.  Correct Unixware assembler comment.  Document input
+       constraints.  Comment fp operations.  Reduce profligate buffer
+       size.  Remove extraneous abort.  Localize temp var.
+       (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
+       (output_fix_trunc): Add spaces after commas in assembly output.
+
+2000-03-27  Richard Henderson  <rth@cygnus.com>
+
+       * i386-protos.h (ix86_match_ccmode): Declare.
+       * i386.c (ix86_match_ccmode): New.
+       (ix86_expand_fp_compare): Update for pattern renames.
+       (ix86_expand_strlensi_unroll_1): Likewise.
+       * i386.h (EXTRA_CC_MODES): Add CCZ.
+       (SELECT_CC_MODE): Use it for EQ/NE zero.
+       * i386.md (cmpsi_ccz_1): New.
+       (cmpqi_ccz_1): New.
+       (*testsi_ccz_1): New.
+       (testqi_ccz_1): New.
+       (cmpsi_ccno_1): Rename from cmpsi_0.
+       (testsi_ccno_1): Rename from testsi_1.
+       (testqi_ccno_1): Rename from testqi_1.
+       (*testqi_ext_ccz_0): Rename from testqi_ext_0.
+       (testqi_ext_ccno_0): Rename from *testqi_ext_1.
+       (*cmphi_0): Use ix86_match_ccmode.
+       (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
+       (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
+       (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
+       (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
+       (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
+       (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
+       (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
+       (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
+       (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
+       (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
+       (appropriate peepholes): Likewise.
+       (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
+       (*subsi_3, *subhi_3, *subqi_3): Remove.
+       (*negdi2_1+1 splitter): Use CCZ for neg patterns.
+       (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
+       (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
+       (*neghi2_cmpz, *negqi2_cmpz): Similarly.
+       (x86_shift_adj_1): Use CCZ.
+       (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
+
+2000-03-27  Stan Cox  <scox@cygnus.com>
+
+       * resource.h (mark_resource_type): New.
+       * resource.c (find_dead_or_set_registers, mark_target_live_regs,
+       find_free_register): Use mark_resource_type.
+       (mark_set_resources): Change include_delayed_effects
+       to mark_resource_type.
+       * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
+       redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
+       Use mark_resource_type.
+
+2000-03-27  Richard Henderson  <rth@cygnus.com>
+
+       * i386.md (call_pop_0, call_value_pop_0): New.
+       (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
+       (call_value_pop_1): Likewise.
+       (call_0, call_value_0): New.
+       (call_1, call_value_1): Remove constraint from unused arg.
+
+2000-03-27  Nick Clifton  <nickc@cygnus.com>
+
+       * invoke.texi (Spec Files): Document new spec % command created by
+       Tom Tromey's recent patch.
+
+2000-03-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
+       if not defined.
+
+Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_assignment): Fix typo in last change.
+
+       * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
+
+Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-convert.c (convert): Return if output or input type is ERROR_MARK.
+       * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
+       and DECL_INLINE if FUNCTION_DECL.
+       (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
+       (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
+       Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
+       (combine_parm_decls): Likewise.
+       * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
+       * print-tree.c (print_node): Likewise.
+       Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
+       DECL_TRANSPARENT_UNION on proper decl types.
+       Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
+       * stor-layout.c (layout_decl): Only check DECL_PACKED and
+       DECL_BIT_FIELD of FIELD_DECL.
+       * tree.h (DECL_RESULT_FLD): New macro.
+
+       * expr.c (expand_assignment): Add code to handle variable-sized
+       BLKmode case.
+
+2000-03-26  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c (expand_call): Pass parms not original exp to
+       optimize_tail_recursion.  Mind return value instead of looking
+       for a barrier.
+       * stmt.c (optimize_tail_recursion): Take parameter list, not entire
+       call_expr.  Move checks for call_expr and current_function_decl ...
+       (expand_return): ... here.
+
+2000-03-26  Tom Tromey  <tromey@cygnus.com>
+
+       * gcc.c (handle_braces): Recognize `%{<S}' construct.
+       (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
+       defines.
+       (process_command): Use them.
+       (check_live_switch): Likewise.
+       (give_switch): Skip ignored switches.
+
+2000-03-26  Jan Hubicka  <jh@suse.cz>
+
+       * jump.c (jump_optimize_1): Fix typo in elide optimizations
+       for minimal jump pass test.
+
+2000-03-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * integrate.c (function_cannot_inline_p): Do inline functions that
+       return `void'.
+
+Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (layout_type, set_sizetype): early_type_list is
+       now a list of TREE_LIST entries, not types.
+       * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
+
+       * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
+       * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
+       int_bit_position.
+       * config/mips/mips.c (function_arg): Likewise; also remove cast
+       and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
+       (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
+       * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
+       * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
+       (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
+       (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
+       (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
+       (struct mips_arg): arg_number, arg_words, fp_arg_words, and
+       num_adjusts now unsigned.
+       (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
+       * config/sparc/sparc.c (struct function_arg_record_value_parms):
+       NREGS now unsigned.
+       (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
+       as is BITPOS variable; use host_integerp and int_bit_position.
+       (function_arg_record_value_2): Likewise.
+       (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
+       Variable REGNO now unsigned.
+       (function_arg_record_value): NREGS now unsigned.
+
+2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
+
+Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Rework fields used to describe positions of bitfields and
+       modify sizes to be unsigned and use HOST_WIDE_INT.
+       * alias.c (reg_known_value_size): Now unsigned.
+       * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
+       (really_start_incremental_init): Use bitsize_zero_node.
+       (push_init_level, pop_init_level, output_init_element): Likewise.
+       Use bitsize_unit_node and bitsize_one_node.
+       (output_pending_init_elements, process_init_element): Likewise.
+       * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
+       (make_extraction): Position and length HOST_WIDE_INT and unsigned
+       HOST_WIDE_INT, respectively.
+       (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
+       (num_sign_bit_copies): Returns unsigned.
+       BITWIDTH now unsigned; rework arithmetic.
+       Remove recursive call from arg to MAX.
+       (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
+       (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
+       REGNO now unsigned.
+       (set_nonzero_bit_and_sign_copies): NUM now unsigned.
+       (find_split_point, expand_compound_operation, make_extraction): LEN
+       now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
+       (make_field_assignment): Likewise.
+       (combine_simplify_rtx): Add cast.
+       (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
+       (force_to_mode): WIDTH now unsigned; add cast.
+       (if_then_else_cond): SIZE now unsigned.
+       (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
+       (extended_count): Now returns unsigned.
+       (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
+       Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
+       (simplify_comparison): MODE_WIDTH now unsigned.
+       (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
+       (mark_used_regs_combine): Likewise; rework arithmetic.
+       (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
+       (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
+       (record_promoted_value): REGNO now unsigned.
+       (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
+       (get_last_value): REGNO now unsigned.
+       (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
+       (reg_dead_regno, reg_dead_endregno): Now unsigned.
+       (remove_death): Arg REGNO now unsigned.
+       (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
+       (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
+       now unsigned.
+       * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
+       * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
+       (struct cse_reg_info): REGNO now unsigned.
+       (cached_regno): Now unsigned.
+       (REGNO_QTY_VALID_P): Add cast.
+       (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
+       (remove_invalid_regs): Likewise.
+       (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
+       as are variables END and I.
+       (get_cse_reg_info, insert): Likewise.
+       (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
+       (canon_hash): Likewise.
+       (insert_regs, lookup_for_remove): REGNO now unsigned.
+       (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
+       New variable RN.
+       * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
+       * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
+       * emit-rtl.c (subreg_realpart_p): Add cast.
+       (operand_subword): Arg I is now unsigned as is var PARTWORDS.
+       (operand_subword_force): Arg I is now unsigned.
+       * except.c (eh_regs): Variable I is now unsigned.
+       * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
+       * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
+       length is unsigned HOST_WIDE_INT; likewise for internal variables.
+       (store_split_bit_field, extract_fixed_bit_field): Likewise.
+       (extract_split_bit_field, store_bit_field, extract_bit_field):
        Likewise.
-       
-       * reload1.c (reload): If a reg_equiv_memory_loc isn't strictly valid
-       and isn't sufficiently simple, use a stack slot instead.
-       (alter_regs): Don't delete reg_equiv_init insns here.
-       (reload_as_needed): Do it here.
+       * expr.c (store_constructor_fields, store_constructor, store_field):
+       Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
+       (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
+       (do_jump): Likewise.
+       (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
+       MAX_SIZE is now unsigned.
+       (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
+       (emit_group_store): Likewise.
+       (emit_move_insn): I now unsigned.
+       (store_constructor): Use host_integerp, tree_low_cst, and
+       bitsize_unit_node.
+       (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
+       Rework all calculations to use trees and new fields.
+       * expr.h (promoted_input_arg): Regno now unsigned.
+       (store_bit_field, extract_bit_field): Adjust types of pos and size.
+       (mark_seen_cases): Arg is HOST_WIDE_INT.
+       * flow.c (verify_wide_reg_1): REGNO now unsigned.
+       * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
+       precisions and alignments are unsigned.
+       (optimize_bit_field_compare, fold_truthop): Likewise.
+       (int_const_binop): Adjust threshold for size_int_type_wide call.
+       (fold_convert): Likewise.
+       (size_int_type_wide): Make table larger and fix thinko that only
+       had half of table used.
+       (all_ones_mask_p, fold): Precisions are unsigned.
+       * function.c (put_reg_info_stack): REGNO is unsigned.
+       (instantiate_decl): Size is HOST_WIDE_INT.
+       (instantiate_virtual_regs): I is unsigned.
+       (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
+       (promoted_input_arg): REGNO is unsigned.
+       * function.h (struct function): x_max_parm_reg is now unsigned.
+       * gcse.c (max_gcse_regno): Now unsigned.
+       (struct null_pointer_info): min_reg and max_reg now unsigned.
+       (lookup_set, next_set): REGNO arg now unsigned.
+       (compute_hash_table): REGNO and I now unsigned.
+       (handle_avail_expr): regnum_for_replacing now unsigned.
+       (cprop_insn): REGNO now unsigned.
+       (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
+       * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
+       * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
+       * hard-reg-set.h (reg_class_size): Now unsigned.
+       * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
+       * jump.c (mark_modified_reg): I now unsigned; add cast.
+       (rtx_equal_for_thread_p): Add cast.
+       * loop.c (max_reg_before_loop): Now unsigned.
+       (struct_movable): REGNO now unsigned.
+       (try_copy_prop): REGNO arg unsigned.
+       (regs_match_p): XN and YN now unsigned.
+       (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
+       (strength_reduce): Likewise; NREGS also unsigned.
+       (first_increment_giv, last_increment_giv unsigned): Now unsigned.
+       * loop.h (struct iv_class): REGNO now unsigned.
+       (max_reg_before_loop, first_increment_giv, last_increment_giv):
+       Now unsigned.
+       * machmode.h (mode_size, mode_unit_size): Now unsigned.
+       (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
+       * optabs.c (expand_binop): I and NWORDS now unsigned.
+       (expand_unop): I now unsigned.
+       * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
+       print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
+       * real.c (significand_size): Now returns unsigned.
+       * real.h (significand_size): Likewise.
+       * regclass.c (reg_class_size): Now unsigned.
+       (choose_hard_reg_mode): Both operands now unsigned.
+       (record_reg_classes): REGNO and NR now unsigned.
+       (reg_scan): NREGS now unsigned.
+       (reg_scan_update): old_max_regno now unsigned.
+       (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
+       * reload.c (find_valid_class): BEST_SIZE now unsigned.
+       (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
+       (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
+       Likewise for variable R.
+       (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
+       as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
+       (find_equiv_reg): Add casts.
+       (regno_clobbered_p): Arg REGNO now unsigned.
+       * reload.h (struct reload): NREGS now unsigned.
+       (refers_to_regno_for_reload_p): Regno args are unsigned.
+       (regno_clobbered_p): Likewise.
+       * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
+       (compute_use_by_pseudos): REGNO now unsigned.
+       (find_reg): I and J now unsigned, new variable K, and change loop
+       variables accordingly; THIS_NREGS now unsigned.
+       (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
+       (spill_hard_reg): REGNO arg now unsigned; add casts.
+       (forget_old_reloads_1): REGNO, NR, and I now unsigned.
+       (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
+       (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
+       END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
+       (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
+       (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
+       (emit_reload_insns): REGNO now unsigned.
+       (reload_cse_move2add): Add cast.
+       (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
+       and rework loop.
+       * resource.c (mark_referenced_resources, mark_set_resources): New
+       variable R; REGNO and LAST_REGNO now unsigned.
+       (mark_target_live_regs): J and REGNO now unsigned.
+       * rtl.c (mode_size, mode_unit_size): Now unsigned.
+       * rtl.h (union rtunion_def): New field rtuint.
+       (XCUINT): New macro.
+       (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
+       (operand_subword, operand_subword_force): Word number is unsigned.
+       (choose_hard_reg_mode): Operands are unsigned.
+       (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
+       (find_regno_note, find_regno_fusage, replace_regs): Likewise.
+       (regno_use_in, combine_instructions, remove_death): Likewise.
+       (reg_scan, reg_scan_update): Likewise.
+       (extended_count): Return is unsigned.
+       * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
+       INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
+       (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
+       (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
+       (reg_reg_last_1): FIRS and LAST now unsigned.
+       (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
+       (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
+       now unsigned.
+       (find_regno_note, regno_use_in): Arg REGNO now unsigned.
+       (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
+       (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
+       (replace_regs): Arg NREGS now unsigned.
+       * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
+       * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
+       (simplify_binary_operation): Likewise.
+       (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
+       THIS_LAST now unsigned.
+       (cselib_record_set): Add cast.
+       * ssa.c (ssa_max_reg_num): Now unsigned.
+       (rename_block): REGNO now unsigned.
+       * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
+       sizes now unsigned.
+       (all_cases_count): Just return -1 not -2.
+       COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
+       Rework tests to use trees whenever possible.
+       Use host_integerp and tree_low_cst.
+       (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
+       Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
+       (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
+       * stor-layout.c (mode_for_size): SIZE arg now unsigned.
+       (smallest_mode_for_size): Likewise.
+       (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
+       KNOWN_ALIGN is now an alignment, so simplify code.
+       Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
+       (start_record_layout): Renamed from new_record_layout_info.
+       Update to new fields.
+       (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
+       New functions.
+       (place_union_field): Renamed from layout_union_field.
+       Update to use new fields in rli.
+       (place_field): Renamed from layout_field.
+       Major rewrite to use new fields in rli; pass alignment to layout_decl.
+       (finalize_record_size): Rework to use new fields in rli and handle
+       union.
+       (compute_record_mode): Rework to simplify and to use new DECL fields.
+       (finalize_type_size): Make rounding more consistent.
+       (finish_union_layout): Deleted.
+       (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
+       (layout_type, case RECORD_TYPE): Call new function names.
+       (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
+       (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
+       (get_best_mode): UNIT is now unsigned; remove casts.
+       * tree.c (bit_position): Compute from new fields.
+       (byte_position, int_byte_position): New functions.
+       (print_type_hash_statistics): Cast to remove warning.
+       (build_range_type): Use host_integerp and tree_low_cst to try to hash.
+       (build_index_type): Likewise; make subtype of sizetype.
+       (build_index_2_type): Pass sizetype to build_range_type.
+       (build_common_tree_nodes): Use size_int and bitsize_int to
+       initialize nodes; add bitsize_{zero,one,unit}_node.
+       * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
+       (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
+       (DECL_PACKED, DECL_BIT_FIELD): Likewise.
+       (DECL_FIELD_BITPOS): Deleted.
+       (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
+       (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
+       (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
+       (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
+       (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
+       (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
+       (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
+       (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
+       (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
+       (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
+       (DECL_ALIGN): Adjust to new field in union.
+       (DECL_OFFSET_ALIGN): New field.
+       (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
+       (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
+       (union tree_decl): Add struct for both aligns.
+       (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
+       (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
+       (struct record_layout_info): Rework fields to have offset
+       alignment and byte and bit position.
+       (start_record_layout, place_field): Renamed from old names.
+       (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
+       (byte_position, int_byte_position): Likewise.
+       (get_inner_reference): Change types of position and length.
+       * unroll.c (unroll_loop): New variable R; use for some loops.
+       MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
+       (calculate_giv_inc): Arg REGNO now unsigned.
+       (copy_loop_body): REGNO and SRC_REGNO now unsigned.
+       * varasm.c (assemble_variable): Clean up handling of size using
+       host_integerp and tree_low_cst.
+       (decode_addr_const): Use byte, not bit, position.
+       (output_constructor): bitpos and offsets are HOST_WIDE_INT;
+       use tree_low_cst and int_bit_position.
+       * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
+
+Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
+       (reorder_block_def): New members eff_head and eff_end.
+       (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
+       (verify_insn_chain): New function.
+       (skip_insns_between_block): Add code to skip deleted insns.
+       Check for note before using.
+       (chain_reorder_blocks): Replace calls to skip_insns_between_block
+       with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
+       Check for note before using.
+       (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
+       (fixup_reorder_chain): Restructure, clean up, defect removal.
+       (reorder_basic_blocks): Remove last_insn and references to it.
+       Moved insn chain verification code into a new function (see above).
+       Delete defective code that sets last insn.
+       Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
+       all blocks.
+
+2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
+
+2000-03-24  Richard Henderson  <rth@cygnus.com>
+
+       * tree.c (lang_safe_for_unsave): Remove.
+       (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
+       allowing for two levels of unsafeness.  Remove lang hook.
+       * tree.h: Update declarations.
+       * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
+       Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
+       Always fail sibcalls when there are pending cleanups.
+
+2000-03-24  Geoff Keating  <geoffk@cygnus.com>
+
+       * flow.c (propagate_block): When we delete an ADDR_VEC,
+       also delete the BARRIER following it if there is one.
+
+2000-03-24  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_builtin_bzero): Convert `length' argument
+       to sizetype.
+
+2000-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
+       comparison if regno's are equal.
+       * calls.c (initialize_argument_informat): Add ecf_flags argument.
+       Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
+       (expand_call): Update caller.
+       Avoid making a sibling call if argument size of the callee is larger
+       than argument size of the caller.
+       Call hard_function_value with outgoing set if in sibcall pass.
+       Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
+
+       * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
+       Change LEAF_REGISTERS from an array initializer to actual array
+       identifier. Move static global variable into the function.
+       (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
+       sequences for leaf functions.
+       * global.c (global_alloc): Likewise.
+       * tm.texi (LEAF_REGISTERS): Update documentation.
+
+       * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
+       TARGET_FLAT leaf disabling hack.
+       (LEAF_REGISTERS): Changed from an array initializer to actual array
+       identifier to avoid duplication and remove the above hack.
+       (FUNCTION_OK_FOR_SIBCALL): Define.
+       * config/sparc/sparc.md (sibcall): New attr type. Use it almost
+       always like call attribute.
+       (eligible_for_sibcall_delay): New attribute.
+       (sibcall): New delay type.
+       (sibcall, sibcall_value, sibcall_epilogue): New expands.
+       (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
+       sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
+       * config/sparc/sparc.c (sparc_leaf_regs): New array.
+       (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
+       New functions.
+       (output_function_epilogue): Move part of the code into
+       output_restore_regs.
+       (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
+       TYPE_SIBCALL.
+       * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
+       prototypes.
 
-       * stor-layout.c (get_best_mode): Correct test for alignment.
+       * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
+       until infrastructure is finished.
 
-       * loop.c (move_movables): Don't get confused by NOTE insns in gnulib
-       call sequence.
+Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
 
-Wed Jul 10 18:40:32 1991  Matthew Self  (mself at geech.gnu.ai.mit.edu)
+       * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
+       (save_parm_insns): Not here.
 
-       * cccp.c (enum node_type):  Added T_WARNING.
+2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * cccp.c (directive_table):  Added #warning.
+       * builtins.c (expand_builtin_bzero): New function.
+       (expand_builtin): Handle bzero.
 
-       * cccp.c (do_warning):  Print warning message and continue.
+       * builtins.def: Add BUILT_IN_BZERO.
 
-Wed Jul 10 18:38:28 1991  Matthew Self  (mself at geech.gnu.ai.mit.edu)
+       * c-common.c (c_common_nodes_and_builtins): Provide builtin
+       prototype & function for bzero.
 
-       * c-parse.y, objc-parse.y (attrib):  Pass "format" attribute
-       through.  Takes one identifier and two constants as args.
-       identifier must be either printf or scanf.
+2000-03-23  Michael Meissner  <meissner@redhat.com>
 
-       * c-common.c (decl_attributes):  Process "format" attributes.
-       Call new routine record_format_info().
+       * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
+       change adding TARGET_FP to the TF floating point insns, except for
+       trunctfsf2, which generates direct calls to truncdfsf2.
 
-       * c-typeck.c (struct function_info):  Changed function_ident field;
-       store identifier node rather than char * to speed lookup.
-       Renamed arg_num field to format_num.  Replaced is_varargs field
-       with new first_arg_num field.
+2000-03-23  Geoff Keating  <geoffk@cygnus.com>
 
-       * c-typeck.c (check_format):  Modified to use new arg_num and
-       first_arg_num fields.
+       * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
+       try to protect against middle-end changes that break binary
+       compatibility.
+       (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
 
-       * c-typeck.c (record_format_info):  New routine.  Replaces static
-       table of functions to check.
+2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * cplus-typeck.c (record_format_info):  New stub routine so c++
-       will link.  Someone should implement format checking for c++.
+       * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
 
-       * c-typeck.c (init_format_info_table):  New routine to add
-       entries for ANSI functions to table.
+Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * c-decl.c (init_decl_processing):  Call init_format_info_table().
+       * calls.c (expand_call): If TARGET is passed by reference and
+       is readonly, write a CLOBBER.
 
-       * c-typeck.c (build_function_call):  Modified to use dynamic table
-       rather than static one.  Compare identifier nodes rather than
-       using strcmp().
+2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * gcc.texinfo ():  Document "format" attribute.
+       * builtins.c (expand_builtin): Handle bcmp.
 
-       * c-typeck.c (check_format):  Call warning() directly rather than
-       returning the warning string.  This way we can give multiple warnings
-       by continuing.  Several changes to make continuing safe.
+       * builtins.def: Add BUILT_IN_BCMP.
 
-       * c-typeck.c (build_function_call):  Incorporated changed return
-       value of check_format().
+       * c-common.c (c_common_nodes_and_builtins): Provide builtin
+       prototype & function for bcmp.
 
-       * c-typeck.c (check_format):  Check for NULL format string.
+Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
 
-Wed Jul 10 16:40:54 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
+       (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
+       * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
 
-       * sdbout.c (sdbout_tags): Delete this and use the TYPE_DECL
-       representation of tagged types.  Types are now output in their
-       original lexical order.
-       (sdbout_symbol): Return early (only using sdbout_one_type) when a
-       tagged type is encountered.
-       (sdbout_block, sdbout_symbol): Don't use sdbout_tags.
-       * toplev.c (compile_file): Don't use sdbout_tags.
-       * varasm.c (assemble_function): Don't use sdbout_tags.
+Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
 
-Wed Jul 10 15:13:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
+       alternative when using -fp64 -gp32.
 
-       * dbxout.c (dbxout_tags): Function deleted.  Calls deleted too.
-       (dbxout_tagged_type): New function.
-       (dbxout_symbol): Call that.
-       * toplev.c (compile_file): Call to dbxout_tags deleted.
+2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
 
-       * c-parse.y (yylex): Simplify choice of type for integers.
-       When traditional, all integers are signed unless explicitly unsigned.
+       * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
+       * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
+       * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
 
-Wed Jul 10 13:35:27 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * frame.h (frame_state): Revert last change.
+       * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
+       * libgcc2.c (throw_helper): Revert last change.
 
-       * configure (m88k-svr4): Needs make-m88ksvr4.
-       * make-m88ksvr4: New file.
+2000-03-22  Richard Henderson  <rth@cygnus.com>
 
-Wed Jul 10 13:18:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * stmt.c (expand_asm_operands): Don't promote the temporary.
 
-       * c-decl.c (duplicate_decls): Warn if `inline' is not consistent.
+2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
 
-       * cccp.c (hack_vms_include_specification): Fix typos.
+       * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
+       * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
+         c_get_alias_set): Likewise.
+       * c-decl.c (duplicate_decls): Likewise.
+       * c-typeck.c (default_conversion,build_unary_op): Likewise.
+       * calls.c (initialize_argument_information): Likewise.
+       * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
+       Likewise.
+       * dwarfout.c (decl_class_context,output_type): Likewise.
+       * expr.c (get_inner_reference): Likewise.
+       * fold-const.c (simple_operand_p,fold): Likewise.
+       * function.c (aggregate_value_p): Likewise.
+       * stmt.c (expand_asm_operands): Likewise.
+       * varasm.c (named_section): Likewise.
 
-Tue Jul  9 22:21:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
 
-       * loop.c (find_and_verify_loops): RETURN insns aren't listed in
-       loop_number_exit_labels, so don't try to remove JUMP_LABEL of a
-       RETURN from that list.
+       Implement dwarf2 exception handling for the ARM.
+       * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
+       (DWARF_FRAME_RETURN_COLUMN): Define.
+       * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
+       REG_FRAME_RELATED_EXPR note.
+       (emit_sfm): Likewise.
+       (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
+       * dwarf2out.c (reg_save): Handle saving a register to itself.
+       (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
+       * except.c (eh_regs): Don't use the static chain reg if it's
+       callee-saved.
+       * frame.h (frame_state): Add cfa_saved field.
+       * frame.c (execute_cfa_insn): Set it.
+       * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
+       the epilogue.
+       * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
+       Now takes a parm.
+       (instantiate_virtual_regs): Adjust.
+       * tm.texi: Adjust.
+       * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
+       * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
+       * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
 
-       * rtlanal.c (reg_referenced_between_p): New function.
-       * jump.c (jump_optimize): Use it instead of reg_used_between_p when
-       checking for "if (...) x = a; else x = b;" case.
+       * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
+       (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
 
-Tue Jul  9 13:03:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * expr.c (move_block_to_reg): Don't force_const_mem on non-constant.
+       * builtins.def: New file.
 
-Tue Jul  9 09:13:32 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * Makefile.in (TREE_H): Depend on builtins.def.
 
-       * c-decl.c (finish_struct): Record tagged types as a TYPE_DECL
-       with a NULL DECL_NAME.
-       (finish_enum): Ditto.
-       * cplus-decl.c (finish_enum): Ditto.
-       * cplus-class.c (finish_struct): Ditto.
+       * builtins.c (built_in_names): Use builtins.def.
 
-       * dbxout.c (dbxout_symbol): Ignore TYPE_DECLs for tagged types.
-       * cplus-dbxout.c (dbxout_symbol): Ditto.
-       * sdbout.c (sdbout_symbol): Ditto.
+       * tree.h (built_in_function): Likewise.
 
-       * toplev.c (compile_file): DECL_NAME may be null.
+2000-03-22  Mark Mitchell  <mark@codesourcery.com>
 
-       * dwarfout.c (output_symbol): Use output_dies_for_tagged_type for
-       TYPE_DECLs of tagged types.
-       (dwarfout_output_tagged_type): Deleted.
-       (output_dies_for_tagged_type): Mark TREE_ASM_WRITTEN early.
+       * tree.c (size_in_bytes): Return size_zero_node, not
+       integer_zero_node.
 
-Mon Jul  8 19:36:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+2000-03-22  Geoff Keating  <geoffk@cygnus.com>
 
-       * jump.c (jump_optimize): Check for extra labels when detecting
-       "if (...) x = a; else x = b;".  Include the insn for "x = a;" when
-       testing for data conflict.
+       * config/fp-bit.c (pack_d): Correct the case when a denormal
+       is rounded up and stops being denormal.
 
-Mon Jul  8 19:34:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-03-21  Richard Henderson  <rth@cygnus.com>
 
-       * integrate.c (copy_for_inline, case MEM): Must copy a MEM even if
-       it has a constant address if that address involves a LABEL_REF.
+       * config/alpha/alpha.c (function_arg): Check for void_type_node
+       before using MUST_PASS_IN_STACK.
 
-       * rtlanal.c (reg_set_p): Only check for REG_INC notes and a CALL_INSN
-       if we are passed an insn.
-       * local-alloc.c (optimize_reg_copy): Remove tests now done in
-       reg_set_p.
+2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
 
-Mon Jul  8 16:38:49 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * regmove.c (combine_stack_adjustments_for_block): Check that
+       the stack pointer is a valid memory address.
 
-       * c-parse.y (yylex): Pedantic warning here for `asm'.
-       No warning for `__asm__'.
-       (maybe_type_qual, maybeasm, extdef): No warning here.
+Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * objc-actions.c: Rename OBJC_SELS_R_INTS to OBJC_INT_SELECTORS.
-       Rename OBJC_UNIQUE_SELS to OBJ_NONUNIQUE_SELECTORS, reversing sense.
-       Eliminate OBJC_SELS_R_STRUCT_PTRS.
+       * calls.c: re-install Mar 16 emit_library_call merge.
 
-Mon Jul  8 06:37:00 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-03-21  Jakub Jelinek  <jakub@redhat.com>
 
-       * rtlanal.c (reg_{used,set}_between_p): Allow FROM_INSN == TO_INSN;
-       return 0 in that case.
+       * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
+       we cannot be sure that if reload_completed base register will
+       be properly aligned.
 
-       * jump.c (mark_jump_label): Fix typo in use of GET_RTX_LENGTH.
+2000-03-21  Richard Henderson  <rth@cygnus.com>
 
-       * reload.c (reload_strict_low): Change comment to say that this is
-       always zero; we don't use it any more.
+       * flow.c (delete_block): Fix typo last change.
 
-Sun Jul  7 22:14:13 1991  Michael Meissner  (meissner@churchy.gnu.ai.mit.edu)
+2000-03-21  Mark Mitchell  <mark@codesourcery.com>
 
-       * tm-mips.h (FRAME_POINTER_REQUIRED): Fix typo that required a frame
-       if alloca was not called, instead of the reverse.
+       * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
+       not COMPLETE_TYPE_P, to check the type of the expression.
 
-Sun Jul  7 17:14:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-03-21  Michael Meissner  <meissner@redhat.com>
 
-       * cccp.c (struct file_buf): New field system_header_p.
-       Everything that pushes on instack now initializes this field.
-       (finclude): New arg to set that field.  Callers changed.
-       (do_include): Pass that arg as 1 for <...>, else 0.
+       * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
+       all floating point insns that just tested the macro
+       TARGET_HAS_XFLOATING_LIBS.
+       (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
+       used to only use the gprs.
 
-       * cccp.c (do_include): Warn for first use of #import
-       except in system header files.
-       (handle_directive): Support #import if compiling for Next.
+2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
 
-       * cccp.c (do_pragma): For #pragma once, warn it is obsolete.
+       * tree.h (COMPLETE_TYPE_P): New macro.
+       (COMPLETE_OR_VOID_TYPE_P): New macro.
+       (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
+       * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
+       * c-aux-info.c (gen_type): Use them.
+       * c-common.c (c_expand_expr_stmt): Likewise.
+       * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
+       grokdeclarator, grokparms, finish_struct, start_function,
+       store_parm_decls, combine_parm_decls): Likewise.
+       * c-parse.y (cast_expr): Likewise.
+       * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
+       c_size_in_bytes, c_alignof, build_component_ref,
+       build_indirect_ref, build_array_ref, convert_arguments,
+       build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
+       * calls.c (initialize_argument_information): Likewise.
+       * convert.c (convert_to_integer): Likewise.
+       * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
+       * dwarfout.c (location_or_const_value_attribute,
+       output_enumeration_type_die, output_structure_type_die,
+       output_union_type_die, output_type): Likewise.
+       * expr.c (safe_from_p, expand_expr): Likewise.
+       * function.c (assign_parms): Likewise.
+       * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
+       * tree.c (build_array_type, build_function_type,
+       build_method_type, build_offset_type, build_complex_type): Likewise.
+       * c-parse.c, c-parse.h: Regenerated.
 
-Sun Jul  7 14:29:04 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * tm-att386.h (NO_DOLLAR_IN_LABEL): Define this here,
-       * tm-i386sco.h (NO_DOLLAR_IN_LABEL):    not here.
+       * config/c4x/rtems.h: Include config/rtems.h.
 
-Sun Jul  7 06:20:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
 
-       * rtlanal.c (reg_set_p): Return 1 if REG is found in a REG_INC
-       note or if INSN is a CALL_INSN and REG is a hard reg.
-       (reg_set_last): Only return a register or constant; if returning a
-       register, ensure it isn't modified between the SET we found and INSN.
+       * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
+       decl is a FUNCTION_DECL
 
-       * jump.c (jump_optimize): If SMALL_REGISTER_CLASSES, don't make a
-       store-flag insn if any register involved is a hard reg.
+Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
 
-Sat Jul  6 14:51:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
+       function uses output registers.  Don't save RP for leaf functions.
+       Do save RP even if no epilogue.
+       * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
+       (CALL_USED_REGISTERS): Unmark in registers.
+       (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
+       to near the middle.
 
-       * expr.c (expand_assignment): Don't abort for volatile structure field
-       even if the structure is in a register.
-       NOTE: This leaves the problem of implementing whatever meaning
-       a volatile field should actually have.
+2000-03-20  Geoff Keating  <geoffk@cygnus.com>
 
-       * fold-const.c (div_and_round_double): Make lnum and lden unsigned.
-       Use the small-denominator algorithm only for denom < 2**24.
-       Fix backward conditionals in ?: operators in general case.
-       Change i + j to i - 1 + j when indexing num.
+       * config/rs6000/rs6000.md (bunordered): New expander.
+       (bordered): New expander.
+       (buneq): New expander.
+       (bunge): New expander.
+       (bungt): New expander.
+       (bunle): New expander.
+       (bunlt): New expander.
+       (bltgt): New expander.
 
-Fri Jul  5 21:36:57 1991  Ken Raeburn  (raeburn at watch.com)
+       * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
+       (ccr_bit_negated_p): New function.
+       (print_operand): For %C, generate appropriate cror for UNEQ,
+       UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
 
-       * genpeep.c (match_rtx, case MATCH_OP_DUP): Output semicolon after
-       "goto" statement.
+2000-03-20  Andreas Jaeger  <aj@suse.de>
 
-Fri Jul  5 09:45:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
+       warning.
 
-       * rs6000.md (andsi3): Bias alternatives so we always prefer constants.
-       (define_splits of DImode, SFmode, and DFmode): Don't split
-       unless after reload.
-       (ashldi3, lshrdi3): Fix bugs in instruction order; use & in
-       output constraint so can't conflict with operand 2; use '0'
-       constraint to allow operands 0 and 1 to be the same register.
+       * tree.h (safe_for_unsave): Prototype.
 
-       * regclass.c (reg_n_sets): Move definition before use.
+2000-03-20  Richard Henderson  <rth@cygnus.com>
 
-       * reorg.c (fill_simple_delay_slots): Candidate for delay slot cannot
-       set anything set between it and the delay insn.
+       * regmove.c (stack_memref_p): Fix typo, reorg for readability.
+       (combine_stack_adjustments_for_block): Don't allow sp references
+       in the side of a set we're not fixing up.
+       * toplev.c (rest_of_compilation): Run combine_stack_adjustments
+       after life_analysis.
 
-       * jump.c (jump_optimize): In "if (...) x = a; else x = b;", correctly
-       specify range to check if X is used or set.
-       Use rtx_equal_p to check for matching X.
+2000-03-20  Richard Henderson  <rth@cygnus.com>
 
-Thu Jul  4 15:55:45 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+       * calls.c (expand_call): Don't bother generating tail call
+       sequences if there are pending cleanups.  Use
+       expand_start_target_temps/expand_end_target_temps to elide
+       cleanups created during sibcall expansion.
 
-       * cccp.c (default_include): Add /usr/mach/include for MACH systems.
+2000-03-20  Geoff Keating  <geoffk@cygnus.com>
 
-       * configure (m88k-luna): Needs make-m88kluna.
-       * make-m88kluna: New file.
+       * configure.in: Set $IFS to a value if it doesn't already have one
+       in the --enable-checking handling.
+       * configure: Regenerate.
+
+2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
+       * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
+       Regenerated.
+
+Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * jump.c (delete_noop_moves): Remove code attempting to
+       combine stack adjustments.
 
-       * dwarf.h: New file derived from the UNIX International
-       Programming Languages Special Interest Group DWARF specification.
-       * dwarfout.c (includes): Include "dwarf.h".
-       (subscript_data_attribute): Use FMT_CODE to encode array subscripts.
-       (languagribute): LANG type no longer provided by dwarf.h.
-       (output_source_file_die): Determine proper language attribute.
+2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
 
-Thu Jul  4 12:14:16 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
+       * except.c (emit_cleanup_handler): Use them.
+       (expand_end_all_catch): Likewise.
+       * function.c (fixup_var_refs): Likewise.
+       (expand_function_end): Clear catch_clauses_last.
+       * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
+       * except.h (struct eh_status): New field x_catch_clauses_last.
+       (catch_clauses_last): New define.
 
-       * cplus-xref.c: define rindex if USG
+       * Makefile.in (tree.o): Depend on HASHTAB_H.
+       * tree.c: Include hashtab.h.
+       (struct type_hash): Remove next field.
+       (TYPE_HASH_SIZE): Remove.
+       (TYPE_HASH_INITIAL_SIZE): New define.
+       (type_hash_table): Change type to htab_t.
+       (type_hash_eq, type_hash_hash, print_type_hash_statistics,
+       mark_hash_entry): New functions.
+       (init_obstacks): Allocate type hash.
+       (type_hash_lookup): Use htab functions.
+       (type_hash_add, mark_type_hash): Likewise.
+       (dump_tree_statistics): Call print_type_hash_statistics.
 
-Thu Jul  4 12:36:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * gcc.c (process_command): Correctly split -L from its arg.
-       * SWITCHES_NEED_SPACES: New host machine option.
-       This really ought to be defined now for certain hosts,
-       but I don't know which ones they are.
+       * rs6000/t-aix41: New file.
 
-Wed Jul  3 23:31:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
 
-       * tm-m68k.h (ASM_OUTPUT_FLOAT): Check CROSS_COMPILE (there was a typo).
+Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
 
-Wed Jul  3 22:05:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * tm.texi (Driver): Fix typos and tweak entry for
+       INCLUDE_DEFAULTS.
+       Move misplaced STRUCT_FORCE_BLK entry ...
+       (Storage Layout): ... to here.
+       (Run-time Target): Recommend having TARGET_MASK_... helper macros.
+
+2000-03-19  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (delete_block): Delete the addr_vec along with the block.
+       (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
+       reference labels.
+
+       * fold-const.c (extract_muldiv): Apply type check for defined
+       overflow to multiply as well as divide.
+
+       * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
+
+2000-03-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * emit-rtl.c (remove_unnecessary_notes): Check that all
+       NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
+       associated NOTE_BLOCK.
+       * function.h (identify_blocks): Update comments.
+       (reorder_blocks): Declare.
+       * function.c (identify_blocks): Don't take paramters.
+       (reorder_blocks): Don't take parameters.
+       * loop.h (find_loop_tree_blocks): Remove.
+       (unroll_block_trees): Likewise.
+       * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
+       reorder_blocks instead of unroll_block_trees.h
+       * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
+       * stmt.c (find_loop_tree_blocks): Remove.
+       (unroll_block_trees): Likewise.
+       * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
+       in whole-function mode.
+       * tree.h (reorder_blocks): Remove declaration.
+
+       * expr.c: Include intl.h.
+       * Makefile.in (expr.o): Depend on intl.h.
+
+2000-03-18  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (emit_move_insn_1): Clarify cannot_inline message.
+
+2000-03-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (tree_index): Remove enumerals for integer types.
+       (integer_type_kind): New type.
+       (integer_types): New variable.
+       (char_type_node): Adjust.
+       (signed_char_type_node): Likewise.
+       (unsigned_char_type_node): Likewise.
+       (short_integer_type_node): Likewise.
+       (short_unsigned_type_node): Likewise.
+       (integer_type_node): Likewise.
+       (unsigned_type_node): Likewise.
+       (long_integer_type_node): Likewise.
+       (long_unsigned_type_node): Likewise.
+       (long_long_integer_type_node): Likewise.
+       (long_long_unsigned_type_node): Likewise.
+       * tree.c (integer_types): New variable.
+       (init_obstacks): Register it as a root.
+
+Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
+       NEXT_INSN. Update last insn in chain.
+
+2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
+       with TYPE_DECL_SUPPRESS_DEBUG set.
+
+2000-03-18  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
+
+2000-03-18  Richard Henderson  <rth@cygnus.com>
+
+       * i386.c (call_insn_operand): Always allow SYMBOL_REF,
+       care for HALF_PIC_P.
+       (expander_call_insn_operand): Remove.
+       (ix86_expand_epilogue): New arg `emit_return' to control return insn.
+       * i386.h (PREDICATE_CODES): Update.
+       * i386.md (all call expanders): Remove predicates, remove special
+       handling for half-pic.
+       (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
+       (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
+       (sibcall_epilogue): New.
+
+2000-03-17  Richard Henderson  <rth@cygnus.com>
+
+       * rtlanal.c (single_set): Reject if the parallel has anything
+       except SET or USE or CLOBBER.
+
+2000-03-17  Jeff Law  <law@cygnus.com>
+           Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (OBJS): Add sibcall.o.
+       (sibcall.o): New.
+       * sibcall.c: New file.
+       * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
+       (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
+       (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
+       Emit sibcall patterns when requested.  Update all callers.
+       (expand_call): Generate CALL_PLACEHOLDER insns when tail call
+       elimination seems feasable.
+       * final.c (leaf_function_p): Sibling calls don't discount being
+       a leaf function.
+       * flow.c (HAVE_sibcall_epilogue): Provide default.
+       (find_basic_blocks_1): Sibling calls don't throw.
+       (make_edges): Make edge from sibling call to EXIT.
+       (propagate_block): Don't remove sibcall_epilogue insns.
+       * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
+       (sibcall_epilogue): New.
+       (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
+       (identify_blocks_1): Likewise.  Break out from ...
+       (identify_blocks): ... here.
+       (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
+       (reorder_blocks): ... here.
+       (init_function_for_compilation): Zap prologue/epilogue as varrays.
+       (record_insns): Extend a varray instead of mallocing new memory.
+       (contains): Read a varray not array of ints.
+       (sibcall_epilogue_contains): New.
+       (thread_prologue_and_epilogue_insns): Emit and record
+       sibcall_epilogue patterns.
+       (init_function_once): Allocate prologue/epilogue varrays.
+       * genflags.c (gen_insn): Treat sibcall patterns as calls.
+       * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
+       Broken out from ...
+       (save_for_inline_nocopy): ... here.
+       (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
+       Broken out from ...
+       (expand_inline_function): ... here.
+       (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
+       (subst_constants): Handle 'n' formats.
+       * jump.c (jump_optimize_minimal): New.
+       (jump_optimize_1): New arg `minimal'; update callers.  Elide most
+       optimizations if it's set.
+       * rtl.c (copy_rtx): Do copy jump & call for insns.
+       * rtl.h (struct rtx_def): Document use of jump and call for insns.
+       (SIBLING_CALL_P): New.
+       (sibcall_use_t): New.
+       * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
+       Invoke optimize_sibling_and_tail_recursive_calls.
+       * tree.c (lang_safe_for_unsave): New.
+       (safe_for_unsave): New.
+       * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
+
+       * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
+       * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
+       (*sibcall_osf_1, *sibcall_value_osf_1): New.
+
+2000-03-17  Mark Mitchell  <mark@codesourcery.com>
+
+       * objc/objc-act.c (encode_method_prototype): Pass types, not
+       PARM_DECLs, to int_size_in_bytes.
+
+Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
+
+       * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
+       config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
+
+Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Clean up usages of TREE_INT_CST_LOW.
+       * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
+       * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
+       Regenerated.
+       * c-tree.h (min_precision): Move declaration to here.
+       * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
+       (build_unary_op, add_pending_init): Use bit_position.
+       (pending_init_member, process_init_element): Likewise.
+       (really_start_incremental_init, push_init_level, pop_init_level):
+       Don't make copies of nodes or modify them in place, use consistent
+       types when tracking positions, and use tree routines computations.
+       (set_init_index, output_init_element): Likewise.
+       (output_pending_init_elements, process_init_element): Likewise.
+       * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
+       tree_low_cst and int_bit_position; also minor cleanup.
+       (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
+       (print_cst_octal): Precision is unsigned.
+       (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
+       * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
+       (simple_type_align_in_bits): Result is unsigned int.
+       Use tree_int_low_cst and host_integerp.
+       (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
+       (field_byte_offset): Result is HOST_WIDE_INT.
+       Change types of internal variables so alignments are unsigned int,
+       offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
+       Use host_integerp, tree_low_cst, and int_bit_position.
+       (add_bit_offset_attribute): Likewise.
+       (add_data_member_location_attribute): Use tree_cst_low.
+       (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
+       (add_bit_size_attribute): Use tree_low_cst.
+       (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
+       * dwarfout.c: Similar changes to dwarf2out.c.
+       * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
+       * genoutput.c (n_occurrences): Return -1 for null string.
+       (strip_whitespace): Accept null string and make into function.
+       (scan_operands): Reflect above changes.
+       * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
+       (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
+       * ssa.c (rename_registers): Add missing cast of arg to bzero.
+       * tree.c (int_size_in_bytes): Check for too big to represent.
+       (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
+       * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
+       New declarations.
+       (min_precision): Delete from here.
+       * varasm.c (decode_addr_const): Use host_integerp, bit_position,
+       and int_bit_position.
+       * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
+       (encode_method_def): Likewise.
+       (build_ivar_list_initializer): Use int_bit_position.
+       (generate_shared_structures): Convert size.
+       (encode_type, encode_complete_bitfield): Use integer_zerop.
+       (encode_bitfield): Use tree_low_cst and int_bit_position.
 
-       * cse.c (simplify_binary_operation, case MINUS): Fix typo in op number.
+2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * cse.c (cse_basic_block): Correctly handle the case where TO
-       was a label with zero uses at the end of the function.
+       * config/c4x/c4x.h (CPP_SPEC): Fix typo.
 
-       * combine.c (significant_valid): New variable.
-       (combine_instructions): Turn significant_valid off until after
-       we finished computing reg_significant.
-       (significant_bits): Ignore reg_significant when significant_valid
-       is zero.
+2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
 
-       * rtlanal.c (reg_set_last): Go past CALL_INSN as long as we are not
-       looking for a hard register.
+       * call.c (special_function_p): It is only malloc if it returns
+       Pmode.
 
-Wed Jul  3 21:07:18 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * sched.c (schedule_block): When computing what registers are dead
-       at the end of the current block, correctly handle REG_DEAD notes
-       that refer to multi-word hard registers.
+       * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
+       (C33_FLAG, TARGET_C3X): Add macros.
+       (TARGET_SWITCHES): Add -m33 option.
+       * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
 
-       * loop.c (mark_loop_jump): When invalidating loops with multiple
-       entries, must invalidate every nested loop containing the target
-       of a loop entry jump, except for those that also contain the jump
-       itself.
+2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * loop.c (record_giv): When computing whether a giv is
-       replaceable, check whether the biv update has a valid luid, and
-       mark it as not replaceable if not.
+       * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
+       (PARALLEL_PACK_FLAG): Delete.
+       (TARGET_SWITCHES): Update.
+       (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
 
-       * combine.c (gen_rtx_combine): Call rtx_alloc instead of gen_rtx,
-       because it is much faster, especially on some RISC machines.
+Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * fixincludes: Add optional argument which indicates where to put
-       the fixed include files.  Echo the directory name where the
-       include files will be put.
+       * fold-const.c (fold): Fix a few cases when the returned result
+       is not of the same type as the input.
 
-       * cccp.c (struct default_include): Don't examine
-       STANDARD_INCLUDE_DIR or /usr/local/include when
-       NO_STANDARD_INCLUDE_DIR is defined.  This is useful when building
-       cross compilers. 
-       (main): Only send SIGPIPE signal if the SIGPIPE signal exists on
-       the host.
-       (rescan, handle_directive, skip_if_group, validate_else,
-       skip_to_end_of_comment, macarg1, discard_comments): Accept '//' as
-       a comment in Objective-C as well as C++.  The Objective C language
-       specifies that '//' starts a comment.
+2000-03-16  Nick Clifton  <nickc@cygnus.com>
 
-       * .gdbinit (ptn): Define new macro to print out the name of a type
-       node.
+       * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
+       warning.
 
-       * stab.def: Correct errors in table for values of DSLINE and
-       BSLINE.  Document the conflict between BROWS and BSLINE.  Document
-       the value of the BROWS field.
+2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Tue Jul  2 23:26:20 1991  Michael Meissner  (meissner at pogo.gnu.ai.mit.edu)
+       * libgcc2.h: Move prototypes above macros with the same name.
+       Wrap some function prototypes in the conditional which indicates
+       whether they are supported, i.e. "BITS_PER_UNIT == 8".
 
-       * mips-tfile.c (toplevel): Add a comment explaining the MIPS ECOFF
-       file format at the start of the file.
+2000-03-16  Richard Henderson  <rth@cygnus.com>
 
-Tue Jul  2 14:00:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * calls.c: Revert last two changes.
 
-       * c-typeck.c (build_array_ref): Report error here if the "array"
-       is not an array or pointer.  Don't leave this for the PLUS_EXPR.
+2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * cccp.c: Inlcude containing file names/lines in error messages.
-       (print_containing_files): New function.
-       (error*, warning): Call it.
-       (finclude): Increment input_file_stack_tick when file changes.
+       * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
+       has exponent 0 is a zero.
 
-       * cccp.c: Include descrip.h.
+       * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
+       HASH may already be nonzero.  Add code/mode into hash value
+       immediately after repeat label.
+       (cselib_lookup): Don't leave the hash table in an inconsistent
+       state before a hash lookup operation.
 
-Tue Jul  2 07:44:19 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * tm-m88k.h (ASM_OUTPUT_SOURCE_LINE): Define only for SDB.
-       * tm-m88kdgux.h (AS_BUG_*): Support these for now.
+       * i386.md (all HI and QI mode non-move patterns):  Conditionize
+       by TARGET_[HQ]IMODE_MATH.
+       * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
+       x86_promote_qi_regs): Declare.
+       (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
+       TARGET_PROMOTE_QI_REGS): New macros.
+       (PROMOTE_MODE): New macro.
+       * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
+       x86_promote_qi_regs): New global variables.
 
-       * c-decl.c (finish_struct): Invoke dwarfout_output_tagged_type
-       only when producing DWARF debugging info.
-       * cplus-class.c (finish_struct): Ditto.
+Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-Mon Jul  1 23:03:34 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * calls.c (emit_library_call_value_1): Break out from ...; handle
+       VOIDmode function calls too.
+       (emit_library_call_value): ... here.
+       (emit_library_call): Implement by calling emit_library_call_value_1.
 
-       * toplev.c (compile_file): Close stack_reg_dump_file iff STACK_REGS.
+Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-Mon Jul  1 15:17:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * calls.c (expand_call): Do sanity checking on arg_space_so_far.
+       Update arg_space_so_far on stack adjustments.
+       (emit_library_call, emit_library_call_value): Likewise; take into
+       account arg_space_so_far and pending_stack_adjust when calculcating
+       the boundary.
 
-       * combine.c (set_significant): Ignore CLOBBERs.
-       (simplify_and_const_int, case SUBREG): Only ignore paradoxical SUBREGs
-       if BYTE_LOADS_ZERO_EXTEND.
-       (record_value_for_reg): Fix typo; had I for REGNO.
+Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * flow.c: Move all basic block reordering code into its own file.
+       (create_basic_block): Externalize.
+       * bb-reorder.c: New file. Copy all basic block reordering code from
+       flow.c to this file.
+       (reorder_basic_blocks): Fix fencepost error in for-loop.
+       (reorder_basic_blocks): Remove braces from single statement for-loops.
+       * basic-block.h: Add declaration for create_basic_block.
+       * Makefile.in: Add rules for bb-reorder.o.
 
-Mon Jul  1 08:28:09 1991  Tom Wood  (wood at dg-rtp.dg.com)
+2000-03-16  Neil Booth  <NeilB@earthling.net>
 
-       * final.c (output_source_line): Output DWARF line numbers.
+       * cppinit.c (handle_option):  Implement #unassert directive
+       as -A- command line option.
+       (print_help):  Update.
+       * cpptexi.c:  Update.
 
-       * dwarfout.c (dwarfout_output_tagged_type): New function.
-       * c-decl.c (finish_struct): Call it.
-       * cplus-class.c (finish_struct): Call it.
+Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * dwarfout.c (includes): Need insn-config.h and reload.h.
-       (location_attribute): Use eliminate_regs for correct expression.
-       (output_bound_representation): Use SAVE_EXPR_RTL to get rtl and
-       then use eliminate_regs.
+       * md.texi (Standard Names): Document `jump'.
 
-       * reload1.c (reload): When finished, indicate reg_equiv_constant
-       and reg_equiv_memory_loc are no longer valid.
-       (eliminate_regs): Don't attempt use of reg_equiv_constant or
-       reg_equiv_memory_loc if they aren't valid.  No longer static.
-       * reload.h: Declare eliminate_regs.
+2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
+
+       * calls.c (emit_call_1): Nothrow functions can still have nonlocal
+       gotos.
+
+2000-03-15  Geoff Keating  <geoffk@cygnus.com>
+
+       Merge changes from newppc-branch onto trunk.
+
+       2000-03-15  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (toc_hash_table): Update for new hash table functions.
+       (toc_hash_function): Likewise.
+       (toc_hash_eq): Likewise.
+       (toc_hash_mark_entry): Likewise.
+       (toc_hash_mark_table): Likewise.
+       (output_toc): Likewise.
+       (rs6000_add_gc_roots): Likewise.
+
+       2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
+       (AR_FLAGS_FOR_TARGET): here.  New macro.
+
+       2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
+       fpmem_operand) Delete.
+       (xer_operand) New.
+       (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
+       (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
+       (rs6000_save_machine_status, rs6000_restore_machine_status,
+       rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
+       references to above variables.
+       (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
+       * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
+       DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
+       (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
+       (XER_REGNO_P, XER_REGNO): New.
+       (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
+       (PREDICATE_CODES): Change fpmem_operand to xer_operand.
+       (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
+       XER_REGNO_P.
+       (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
+       REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
+       (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
+
+       2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
+       TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
+       * rs6000.h: from here.
+
+       * rs6000-protos.h (rs6000_select_section): Provide prototype.
+       (rs6000_select_rtx_section): Likewise.
+       (rs6000_encode_section_info): Likewise.
+       (sdata_section): Likewise.
+       (sdata2_section): Likewise.
+       (sbss_section): Likewise.
+       * sysv4.h (rs6000_select_section): Delete prototype.
+       (rs6000_select_rtx_section): Likewise.
+       (rs6000_encode_section_info): Likewise.
+       (sdata_section): Likewise.
+       (sdata2_section): Likewise.
+       (sbss_section): Likewise.
+       (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
+
+       * sysv4.h: Delete various unnecessary #undef's and put a comment
+       on the remaining ones.
+       Change various comments according to coding standard.
+
+       2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
+       CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
+       (CR0_REGNO_P) Remove.
+       * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
+       setup_incoming_varargs, mtcrf_operation, print_operand,
+       rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
+       Use the above macros.
+
+       2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.md: Added a new alternative for each
+       pattern that had a 'x' alternative but no 'y' alternative.
+       Added a new split for each of the above patterns.
+
+       2000-02-18  Geoff Keating  <geoffk@cygnus.com>
+
+       * aix41.h (ASM_CPU_SPEC): Delete.
+       (CPP_CPU_SPEC): Delete.
+
+       * aix.h (RS6000_OUTPUT_BASENAME): Define.
+       (ASM_OUTPUT_LABEL): Define.
+       (ASM_GLOBALIZE_LABEL): Define.
+       (STRIP_NAME_ENCODING): Define.
+       * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
+       (STRIP_NAME_ENCODING): Don't define.
+       (ASM_OUTPUT_LABEL): Don't define.
+       (ASM_GLOBALIZE_LABEL): Don't define.
+       * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
+       names, and ASM_OUTPUT_LABEL to output labels, rather than
+       asm_fprintf.
+       (ASM_OUTPUT_LABEL): Define.
+       (ASM_OUTPUT_INT): Use assemble_name.
+       (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
+       (STRIP_NAME_ENCODING): Don't undefine first.
+       (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
+       ELF.
+       (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
+       specified with 'asm' even with -fleading-underscore.
+       * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
+       (output_epilog): Likewise.
+       (output_toc): Likewise.
+       * tramp.asm: Handle -fleading-underscore correctly.
+
+       * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
+       -mminimal-toc.
+       (nonlocal_goto_receiver): Delete.
+       * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
+
+       * rs6000.h (ASM_OUTPUT_DEF): Don't define.
+       (SET_ASM_OP): Define.
+       * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
+
+       * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
+       (ASM_LONG): Define.
+
+       * rs6000.c (rs6000_dll_import_ref): Delete, not used.
+       * rs6000-protos.h (rs6000_dll_import_ref): Delete.
+
+       * rs6000.h: Add 'u' to more constants.
+
+       2000-02-18  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.md (mfcr+shift): Delete PowerPC64 version.
+
+       2000-02-15  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (reg_or_u_cint_operand): New function.
+       (logical_operand): Handle 64-bit hosts.
+       (logical_u_operand): New function.
+       (non_logical_cint_operand): Handle 64-bit hosts.
+       (non_logical_u_cint_operand): New function.
+       * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
+       (PREDICATE_CODES): Define new functions.
+       * rs6000-protos.h: Declare new functions.
+       * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
+       (movdi_64): Bracket code intended for 64-bit hosts.  Create
+       CONST_DOUBLE for 32-bit values.
+       (scc insns): Generate DImode compares.
+       (mfcr insns): Create DImode versions.
+       (sge matchers): New patterns.
+
+       2000-02-15  Gabriel Paubert  <paubert@iram.es>
+
+       * rs6000.md: Correct instructions length attributes and
+       constraints on unsigned compare instructions.
+       (*ne0): Disable for PowerPC64.
+
+       2000-02-11  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (output_function_profiler): Use .long for a 32-bit
+       quantity, fix profile1.C test failure under -fPIC.
+
+       * rs6000.c: Add 'u' to many constants to suppress warnings.
+       (constant_pool_expr_1): Make static.
+       (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
+       * rs6000.h: Add 'u' to many constants to suppress warnings.
+
+       * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
+       for the start of the TOC, instead of LCTOC..0.
+       * aix.h (toc_section): Use LCTOC..1 under AIX for the start
+       of the TOC.
+       * rs6000.md (load_toc_aix_si): Use LCTOC..1.
+       (load_toc_aix_di): Use LCTOC..1.
+
+       * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
+       * rs6000.c (rs6000_legitimize_address): New function from
+       LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
+       symbols in the constant pool that really are TOC references.
+       (print_operand_address): For ELF, write TOC offsets under
+       -fPIC as subtractions in the insn.
+       (output_toc): For ELF, define symbols in TOC as normal labels,
+       to match RTL.
+       (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
+       * rs6000-protos.h (rs6000_legitimize_address): Prototype.
+       (create_TOC_reference): Prototype only when RTX_CODE is defined.
+       * rs6000.md (movsi): Only use create_TOC_reference on
+       symbols in the constant pool that really are TOC references.
+
+       * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
+       * rs6000.c (rs6000_reorg): Delete.
+       * rs6000-protos.h (rs6000_reorg): Delete.
+
+       2000-02-09  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
+
+       * aix.h (SETUP_FRAME_ADDRESSES): Define.
+       * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
+       [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
+       [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
+       * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
+       rs6000_aix_emit_builtin_unwind_init.
+       * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
+       rs6000_emit_eh_toc_restore on AIX.
+       (return_eh_si): Use r2.
+       (return_eh_di): Use r2.
+
+       * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
+       since we're breaking binary compatibility anyway.
+
+       2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
+       constant_pool_expr_p): Declare them.
+       (constant_pool_expr_p): Declare it.
+       * config/rs6000/rs6000.c (toc_label_name): Define.
+       (rs6000_override_options): Set toc_label_name.
+       (input_operand): Allow any TOC_RELATIVE_EXPR_P.
+       (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
+       uses_TOC): New functions.
+       (print_operand): Delete old '*' case.
+       (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
+       and strip off rtl for TOC before calling output_addr_const.
+       (rs6000_emit_load_toc_table): Use toc_label_name.
+       * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
+       the default.
+       (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
+       (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
+       (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
+       (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
+       into explicit TOC_REGISTER offsets.
+       (TOC_REGISTER): New macro.
+       * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
+       TARGET_TOC to reference TOC_REGISTER.
+       (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
+       * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
+       uses_TOC before emitting label references.
+
+       2000-02-05  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (stack_tie): Fix warning.
+
+       * eabi-ctors.c: Use 'asm' names for the start/end variables,
+       to handle -fleading-underscore.
+       * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
+       (USER_LABEL_PREFIX): New macro.
+       (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
+       (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
+       * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
+       call-linux can use the same multilibs.
+       * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
+       and call-linux multilibs.  Do multilib with -fleading-underscore.
+       (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
+       (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
+       to call-aix.
+
+       * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
+       have MASK_SOFT_FLOAT set.
+       (CPP_FLOAT_DEFAULT_SPEC): New macro.
+       (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
+       CPP_FLOAT_DEFAULT_SPEC.
+
+       * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
+       * rs6000.md: Whitespace change.
+       * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
+       * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
+
+       2000-02-05  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (eh_epilogue): New expander.
+       (eh_reg_restore): New expand/split/insn combination.
+       (return_eh_si): New insn.
+       (return_eh_di): New insn.
+
+       * eabi-ci.asm: Put a label at the start of the .eh_frame section.
+       * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
+       * eabi-ctors.c (__do_global_ctors): Register this object's
+       frame.  Clean up.  Call atexit() after the constructors.
+       (__do_global_dtors): Deregister this object's frame.  Clean up.
+       Allow for recursive calls to exit().
+       * rs6000.c (fixuplabelno): New variable.
+       * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
+       TARGET_RELOCATABLE, it slows down exec() under linux.
+       (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
+
+       * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
+       (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
+       (ASM_OUTPUT_DWARF_DELTA2): New macro.
+       (ASM_OUTPUT_DWARF_DELTA4): New macro.
+       (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
+       (ASM_OUTPUT_DWARF_ADDR): New macro.
+       (ASM_OUTPUT_DWARF_DATA4): New macro.
+       (ASM_OUTPUT_DWARF_DATA2): New macro.
+       (ASM_OUTPUT_DWARF_OFFSET4): New macro.
+       (ASM_OUTPUT_DWARF_OFFSET): New macro.
+       (UNALIGNED_INT_ASM_OP): New macro, fake definition.
+
+       2000-02-03  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_sr_alias_set): New variable.
+       (rs6000_override_options): Initialize rs6000_sr_alias_set.
+       (rs6000_emit_stack_tie): New function.
+       (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
+       in a way that dwarf2out can understand.
+       (rs6000_frame_related): New function.
+       (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
+       RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
+       Use rs6000_emit_stack_tie when needed.
+       (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
+       RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
+       * rs6000.md (stack_tie): New insn.
+       (return_internal_si): Allow return value to be in the count
+       register.
+       (return_internal_di): Likewise.
+
+       * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
+
+       2000-02-03  Geoff Keating  <geoffk@cygnus.com>
+
+       * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
+
+       2000-01-31  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
+
+       * rs6000.md (stmw): Use the right POWER opcode.
+       (lmw): Likewise.
+
+       2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * rs6000-protos.h: New file.
+
+       * rs6000.c: Include tm_p.h.  Fix compile time warnings.
+
+       * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
+       warnings.
+
+       * sysv4.h: Likewise.
+
+       2000-01-28  Geoff Keating  <geoffk@cygnus.com>
+
+       * ../../configure.in: Delete powerpcle-*-winnt*
+       and powerpcle-*-pe|powerpcle-*-cygwin*.
+       * ../../configure: Regenerated.
+       * cygwin.h: Delete.
+       * rs6000.h (OBJECT_WINDOWS_NT): Delete.
+       (TARGET_WINDOWS_NT): Delete.
+       (ABI_NT): Delete.
+       (CALL_NT_DLLIMPORT): Delete.
+       Delete NT-specific code.
+       * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
+       * win-nt.h: Delete.
+       * t-winnt: Delete.
+       * nt-ci.asm: Delete.
+       * nt-cn.asm: Delete.
+       * ntstack.asm: Delete.
+
+       2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
+       (ASM_FILE_START): Likewise.
+       (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       (ASM_OUTPUT_LABELREF): Likewise.
+       (ASM_OUTPUT_SKIP): Likewise.
+       (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
+       (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+       (ASM_OUTPUT_CASE_LABEL): Likewise.
+       (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+       (ASM_OUTPUT_ASCII): Likewise.
+
+       2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
+       reload_toc_labelno for non-prologue TOC reloads.  Also, don't
+       increment rs6000_pic_labelno here.
+       (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
+       and increment rs6000_pic_labelno here.
+
+       2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
+       rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
+       allocation knows (reg) is dead before the insn.
+
+       2000-01-21  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi_to_cr): Correct typo in output template.
+
+       2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_pic_labelno): Always define.
+       (rs6000_pic_func_labelno): Delete.
+       (lmw_operation): Check for a zero base register,
+       which doesn't mean what we want.
+       (stmw_operation): New function.
+       (print_operand): Define new 'l' modifier.
+       (rs6000_stack_info): We must save all 64 bits of the registers
+       if TARGET_POWERPC64.
+       (rs6000_output_load_toc_table): Delete.
+       (rs6000_emit_load_toc_table): New function.
+       (rs6000_allocate_stack_space): Delete.
+       (rs6000_emit_allocate_stack): New function.
+       (rs6000_emit_prologue): New function.
+       (output_prolog): Use rs6000_emit_prologue.
+       (rs6000_emit_epilogue): Change a few variable names to be
+       more accurate.  Restore all 64 bits of the registers if
+       TARGET_POWERPC64.  Only restore the FP registers which were used
+       if they are being saved/restored one-at-a-time.
+       (output_mi_thunk): Delete inefficient code generation.
+       (output_function_profiler): Don't use rs6000_output_load_toc_table.
+       * rs6000.h: Declare rs6000_emit_load_toc_table,
+       rs6000_allocate_stack_space, stmw_operation.  Don't declare
+       rs6000_output_load_toc_table.
+       * rs6000.md (elf_high): Allow register 0, but discourage it
+       heavily.
+       (elf_low): Support loading into register 0.
+       (load_toc_aix_si): New pattern.
+       (load_toc_aix_di): New pattern.
+       (load_toc_v4_pic_si): New pattern.
+       (load_toc_v4_pic_di): New pattern.
+       (load_toc_v4_PIC_1): New pattern.
+       (load_toc_v4_PIC_1b): New pattern.
+       (load_toc_v4_PIC_2): New pattern.
+       (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
+       (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
+       (prologue): New expander.
+       (movesi_from_cr): New pattern.
+       (stmw): New pattern.
+       (save_fpregs_si): New pattern.
+       (save_fpregs_di): New pattern.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
+       (movdi): Likewise.
+       (movhi): Likewise.
+       (movqi): Likewise.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
+       at present.
+       (movsi_got_internal): Likewise.
+       (movsi_got_internal+1): Likewise.
+       (set_sp): 'unspec 7' does a SImode clobber.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (floatsidf2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (floatsidf2_internal): Likewise.
+       (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
+       with unspec.
+       (floatunssidf2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (floatunssidf2_internal): Likewise.
+       (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
+       with unspec.
+       (floatsidf2_loadaddr): Delete.
+       (floatsidf2_store1): Delete.
+       (floatsidf2_store2): Delete.
+       (floatsidf2_load): Delete.
+       (fix_truncdfsi2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (fix_truncdfsi2_internal_si): Delete.
+       (fix_truncdfsi2_internal_di): Delete.
+       (fix_truncdfsi2_internal): New insn.
+       (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
+       (fix_truncdfsi2_store): Delete.
+       (fix_truncdfsi2_load): Delete.
+       (fctiwz): Produce gen_fctiwz.
+
+       2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * eabi.h (INVOKE__main): Define.
+       * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
+       specially.
+       (rs6000_emit_prologue): Likewise.
+       * rs6000.h (struct rs6000_stack): Don't keep track of whether
+       this is the main program.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_va_arg): Delete some unused variables.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
+       goes after the argument.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md: Document 'unspec' values used.
+       (epilogue): New expander.
+       (movesi_to_cr_one): New expander.
+       (movesi_to_cr and following): New pattern.
+       (lmw): New pattern.
+       (return_internal_si): New pattern.
+       (return_internal_di): New pattern.
+       (return_and_restore_fpregs_si): New pattern.
+       (return_and_restore_fpregs_di): New pattern.
+       * rs6000.h: Declare new functions.
+       * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
+       rather than rs6000_calls_p.
+       (rs6000_makes_calls): Delete.
+       (lmw_operation): New function.
+       (mtcrf_operation): New function.
+       (rs6000_emit_epilogue): New function.
+       (output_epilog): Call rs6000_emit_epilogue and final if
+       !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
+       * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
+       * aix.h (SUBTARGET_SWITCHES): Document switches.
+       * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
+       sched-prolog and sched-epilog the same.  Document all the
+       switches.
+       (TARGET_OPTIONS): No longer allow -mdebug-.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (ASM_FILE_END): Move to aix.h.
+       (EXTRA_SECTIONS): Move to aix.h.
+       (READONLY_DATA_SECTION): Move to aix.h.
+       (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
+       (SELECT_SECTION): Move to aix.h.
+       (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
+       (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
+       (LINK_REGISTER_REGNUM): New definition.
+       (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
+       (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
+       AIX and SVR4.
+       * sysv4.h: Delete the code between the inclusion of rs6000.h
+       and svr4.h.
+       (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
+       (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
+       (RS6000_REG_SAVE): Move generic definition to rs6000.h.
+       (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
+       * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
+       (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
+       (fix_truncdfsi2_internal_di): New pattern.
+       (fix_truncdfsi2_store): The second arg here is Pmode too.
+       (fix_truncdfsi2_load): The second arg here is Pmode too.
+       (tablejumpdi): Now that switch tables hold only SImode values,
+       gcc needs to know how to add them to the pc which is DImode.
+       * rs6000.c (rs6000_stack_info): Use symbolic name for
+       LINK_REGISTER_REGNUM.
+       (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
+       (output_toc): Delete unused variables s1 and s2.
+       (output_ascii): Use fputs not fprintf on a variable string.
+
+       2000-01-07  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (processor_target_table): Add power3 as alias for 630.
+       * aix43.h: Revert Aug 2 change.
+       (HAS_INIT_SECTION): Define, not visible yet.
+       (LD_INIT_SWITCH): Define, not visible yet.
+       * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
+
+       2000-01-04  Joel Sherrill (joel@OARcorp.com>
+
+       * config/rs6000/rtems.h: Include config/rtems.h.
+
+       2000-01-04  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.h (HANDLE_PRAGMA_PACK): Define.
+       (SLOW_UNALIGNED_ACCESS): Define.
+       (CASE_VECTOR_MODE): Always use 32-bit offsets.
+       (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
+       (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
+       (toc_section): Likewise and .toc pseudo-op.
+       (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
+       64-bit mode.
+       (TEXT_SECTION_ASM_OP): Likewise.
+       (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
+       32-bit offsets.
+
+       1999-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
+       UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
+       compiling libgcc2.
+
+       2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.h: Move more stuff from here...
+       * aix.h: to here.
+       * sysv4.h: Cleanup accordingly.
+       * netware.h: Likewise
+
+       2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.h: Continue cleanup.
+       * aix.h: Likewise.
+       * lynx.h: Likewise.
+       * netware.h: Likewise.
+       * sol2.h: Likewise.
+       * sysv4.h: Likewise.
+       * win-nt.h: Likewise.
+
+       * rs6000.h (TARGET_SWITCHES): Add descriptions.
+       (TARGET_OPTIONS): Likewise.
+
+       * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
+       (SUBTARGET_OPTIONS): Likewise.
+
+       * rs6000.md: Fix compile time warnings.
+
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
+
+       vxworks patches from the Cygnus tree originally by
+       Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
+       <vmakarov@cygnus.com>.
+       * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
+       (ENDFILE_SPEC): Likewise.
+       (LIB_VXWORKS_SPEC): New macro.
+       (STARTFILE_VXWORKS_SPEC): New macro.
+       (ENDFILE_VXWORKS_SPEC): New macro.
+       (LINK_START_VXWORKS_SPEC): New macro.
+       (LINK_OS_VXWORKS_SPEC): New macro.
+       (CPP_OS_VXWORKS_SPEC): New macro.
+       (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
+       * vxppc.h: Rewrite to use proper configuration method.
+       * vxppcle.h: New file.
+       * ../../configure.in: Add powerpcle-wrs-vxworks*.
+       * ../../configure: Rebuilt.
+
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
+
+       Lots of changes to rs6000.h, sysv4.h, aix.h,
+       aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
+       with the aim that rs6000.h is the first header
+       included and the others override it.
+       * aix.h: New file.
+
+       * x-aix41-gld: Remove.
+       * x-aix43: Remove.
+       * x-aix41: Remove target-specific switches, and don't specify
+       -Wl,-bbigtoc as we don't need it any more.
+       * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
+       Use t-aix43 for AIX 4.3 and above.
+       * ../../configure: Regenerated.
 
-       * toplev.c (compile_file): Only call dwarfout_file_scope_symbol
-       for VAR_DECLs. 
+       * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
+       options, that don't do anything yet.
+       (MASK_SCHED_PROLOG): New macro.
+       (MASK_SCHED_EPILOG): New macro.
+       (TARGET_SCHED_PROLOG): New macro.
+       (TARGET_SCHED_EPILOG): New macro.
 
-Sun Jun 30 15:49:39 1991  Ken Raeburn  (raeburn at watch.com)
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
 
-       * expr.c (expand_builtin, case BUILT_IN_MEMCPY): If alignment test
-       fails, and function was really BUILT_IN_STRCPY, zero out length
-       parameter before expanding call.
+       * rs6000.c: Correct comment, the `minimal' TOCs are actually
+       one per translation unit, not one per function.
+       (output_toc): Also do duplicate constant elimination
+       for per-translation-unit TOCs.
 
-Sun Jun 30 18:27:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu)
+       * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
+       a comment explaining _exactly_ when this pattern gets used.
+       (builtin_setjmp_receiver): New pattern for better clarity.
+       (init_v4_pic): Move it into a section dealing with TOC registers.
 
-       * jump.c (jump_optimize): In "if (...) x = a; else x = b;", don't
-       move the "x = b;" if the test modifies X or if X is a hard register
-       and SMALL_REGISTER_CLASSES is defined.
-       Turn "if (...) x = 1; else {...} if (x) ..." code on when we have cc0.
+       1999-12-30  Geoff Keating  <geoffk@cygnus.com>
 
-Sun Jun 30 13:49:03 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * rs6000.c (toc_hash_table): New variable.
+       (rs6000_hash_constant): New function.
+       (toc_hash_function): New function.
+       (toc_hash_eq): New function.
+       (toc_hash_mark_entry): New function.
+       (toc_hash_mark_table): New function.
+       (output_toc): Don't output duplicate TOC entries in
+       a single file.
+       (rs6000_add_gc_roots): Add the hash table as a GC root.
+       * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
+       where they clearly shouldn't be.  This may need to be fixed
+       later when there is a GNU ar for AIX.
+       * x-aix43: Don't define CLIB or AR_FOR_TARGET.
+       Don't define BOOT_LDFLAGS as it is now not necessary.
 
-       * gnulib2.c (__builtin_saveregs):
-       For i860, make data structure fit in with va-i860.h.
+       1999-12-29  Geoff Keating  <geoffk@cygnus.com>
 
-       * tree.c (gcc_obstack_init):
-       Support OBSTACK_CHUNK_ALLOC and OBSTACK_CHUNK_FREE.
+       * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
+       for va_list on AIX.  Use unsigned_char_type_node rather than
+       constructing our own version on svr4.
 
-       * calls.c (prepare_call_address): 3rd arg now address of chain var.
-       (expand_call): Call changed.
-       * expr.c (emit_library_call): Call changed.
+       1999-12-17  Geoff Keating  <geoffk@cygnus.com>
 
-       * function.c (fix_lexical_addr): In recursive call, pass slot address.
+       * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
+       since patently it's not.
 
-       * Makefile.in (cse.o): Added deps.
+       1999-12-08  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
+       define_expand/define_insn pair, and handle restore of the
+       SVR4 -fpic register.
+
+Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * acconfig.h (HAVE_GAS_WEAK): New define.
+       * configure.in (assembler weak support): Check for .weak support.
+       * config.in, configure: Rebuilt.
+       * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
+       HAVE_GAS_WEAK is defined.
+
+2000-03-15  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
+       asm_fprintf().
+
+2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (open_include_file): New function.
+       (find_include_file, cpp_read_file): Use it.
+
+2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
+
+       * cpphash.c (dump_hash_helper): Take the slot, not the element.
+
+Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * flow.c (verify_flow_info): Check for unconditional return.
+
+Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.md (restore_stack_nonlocal): New.
+       * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
+       (__ia64_restore_stack_nonlocal): New.
+       * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
+
+2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * cpphash.c (collect_formal_parameters): Do not complain about
+       parameter names that just start with `__VA_ARGS__'.
+
+Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
+       movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
+       * i386.c (pentiumpro_cost): Set mul cost to 4.
+       (x86_use_movx): Set for PPro.
+
+Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (ix86_compute_frame_size): stack_alignment_needed is
+       STACK_BOUNDARY for empty frames now.
+
+2000-03-14  Mark Mitchell  <mark@codesourcery.com>
+
+       * stor-layout.c (layout_union): Remove.
+       (layout_union_field): New function, split out from layout_union.
+       (finish_union_layout): Likewise.
+       (layout_field): Handle unions by calling layout_union_field.
+       (finish_record_layout): Handle unions.
+       (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
+       QUAL_UNION_TYPE handling.
+
+Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
+       end of basic block is jump_insn, not barrier; use create_basic_block
+       instead of creating basic block by hand.
+
+2000-03-14  Jason Eckhardt  <jle@cygnus.com>
+
+       * flow.c (reorder_basic_blocks): Account for barriers when writing
+       over NEXT_INSN (last_bb->end).
+       (verify_flow_info): Add check for missing barriers.
+
+2000-03-14  Greg McGary  <gkm@gnu.org>
+
+       * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
+       * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
+       * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
+       __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
+       __unbounded, __unbounded__): New keywords.
+       * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
+       * c-parse.y, c-parse.c, c-parse.h: Regenerate.
+       * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
+
+2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * cselib.h: New file.
+       * alias.c: Include "cselib.h".
+       (fixed_scalar_and_varying_struct_p): Accept the addresses of the
+       MEMs as two new arguments.
+       (get_addr): New static function.
+       (find_base_term): Handle VALUEs.
+       (memrefs_conflict_p): Likewise.
+       (true_dependence): Call get_addr on the addresses.
+       Call fixed_scalar_and_varying_struct_p with addresses that have been
+       passed through get_addr and canon_rtx.
+       (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
+       with true_dependence.
+       Call get_addr on the addresses; don't call canon_rtx on the MEMs.
+       * loop.c: Include "cselib.h".
+       (load_mems): Process extended basic block that enters the loop with
+       cselib.  Use that information to change initialization of the shadow
+       register so that a constant equivalence is seen by later passes.
+       * reload1.c: Include "cselib.h".
+       (reload_cse_invalidate_regno): Delete function.
+       (reload_cse_mem_conflict_p): Likewise.
+       (reload_cse_invalidate_mem): Likewise.
+       (reload_cse_invalidate_rtx): Likewise.
+       (reload_cse_regno_equal_p): Likewise.
+       (reload_cse_check_clobber): Likewise.
+       (reload_cse_record_set): Likewise.
+       (reg_values): Delete static variable.
+       (invalidate_regno_rtx): Likewise.
+       (reload_cse_delete_noop_set): New static function.
+       (reload_cse_simplify): New static function, broken out of
+       reload_cse_regs_1.
+       (reload_cse_noop_set_p): Delete unused argument INSN.
+       Just call rtx_equal_for_cselib_p on set source and destination.
+       (reload_cse_regs_1): Break out some code into reload_cse_simplify and
+       reload_cse_delete_noop_set.  Delete code to keep track of values; use
+       cselib functions instead.  Delete code to push/pop obstacks.
+       (reload_cse_simplify_set): Use cselib to find equivalent values.
+       Delete code to push/pop obstacks.
+       (reload_cse_simplify_operands): Likewise.
+       * rtl.def (VALUE): New rtx code.
+       * rtl.h (union rtunion_def): New elt rt_cselib.
+       (X0CSELIB, CSELIB_VAL_PTR): New macros.
+       * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
+       (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
+       unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
+       discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
+       hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
+       cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
+       cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
+       cselib_record_set, cselib_record_sets): New static functions.
+       (cselib_lookup, cselib_update_varray_sizes, cselib_init,
+       cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
+       references_value_p): New functions.
+       (MAX_USELESS_VALUES, REG_VALUES): New macros.
+       (table, cselib_current_insn, next_unknown_value, cselib_nregs,
+       n_useless_values, reg_values, callmem, cselib_obstack,
+       cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
+       New static variables.
+       * varray.h (union varray_data_tag): New elt te.
+       (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
+       * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
+       dependencies.
 
-       * Makefile.in (GNULIB2_CFLAGS): Use -O2.
+2000-03-14  Nick Clifton  <nickc@cygnus.com>
+
+       * gcc.c (do_spec_1): Catch the case where %* is used in a
+       substitution pattern, but it has not been initialized.
+       Issue a meaningful error message if an unrecognized operator
+       is encountered in a spec string.
+
+2000-03-14  Richard Earnshaw <rearnsha@arm.com>
+
+       * function.c (prepare_function_start): Correctly initialize
+       cfun->stack_alignment_needed.
+
+2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (find_include_file): Don't assume nshort is a
+       substring of name.
+
+Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in (hppa configurations): Add pa32-regs.h to the
+       list of tm files as appropriate.
+       * configure: Rebuilt.
+       * pa.c (compute_frame_size): Remove explicit knowledge about FP
+       register numbering.
+       (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
+       (fmpyaddoperands, fmpysuboperands): Likewise.
+       * pa.h: Remove various definitions which depend on knowing
+       how registers are numbered.
+       * pa32-regs.h: New file with PA32 register numbering specific
+       definitions.
+
+2000-03-14  Richard Henderson  <rth@cygnus.com>
+
+       * regmove.c (combine_stack_adjustments): New.
+       (stack_memref_p, single_set_for_csa): New.
+       (free_csa_memlist, record_one_stack_memref): New.
+       (try_apply_stack_adjustment): New.
+       (combine_stack_adjustments_for_block): New.
+       * rtl.h (combine_stack_adjustments): Declare.
+       * toplev.c (rest_of_compilation): Call it.
+
+       * i386.md: Revert 2000-01-16 change.
+
+2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * gccbug.in: Add web category, gcc specific classes.
+
+2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * stor-layout.c (finalize_record_size): Fix typo.
+
+2000-03-14  Stan Shebs  <shebs@apple.com>
+
+       * c-typeck.c (c_alignof): Error on incomplete types.
+       * extend.texi (Alignment): Document this.
+
+2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c: Include mkdeps.h.
+       (find_include_file, read_include_file): Remove _cpp_ prefix
+       from name, make static.
+       (_cpp_execute_include): New function, broken out of
+       do_include.
+
+       * cpplib.c: Don't include mkdeps.h.
+       (struct directive): Remove type field. Reorder entries.  The
+       function takes only one argument.
+       (struct if_stack): Make type field an int.
+       (directive_table): Rename to dtable.  Generate it, the
+       prototypes of the directive handlers, and the enum for the
+       directive numbers, from a template macro.
+       (do_ifndef, do_include_next, do_import): New functions.
+       (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
+       do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
+       do_ident, do_assert, do_unassert, do_sccs): Take only one
+       argument.
+       (do_sccs): Define always, but alter behavior based on
+       SCCS_DIRECTIVE.
+       (_cpp_handle_directive, consider_directive_while_skipping):
+       Restructure for new directive table layout.
+
+       (pass_thru_directive): Take a directive number, not a pointer
+       to a struct directive.
+       (parse_include): New function, broken out of do_include.
+       (do_include, do_import, do_include_next): Use parse_include
+       and _cpp_execute_include.
+       (do_elif, do_else): Test for T_ELSE specifically when checking
+       for #elif/#else after #else.
+       (parse_ifdef): New function, broken out of do_ifdef.
+       (validate_else): Expect a name arg without a leading #.
+       (if_directive_name): Delete.
+       (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
+       directive handlers with only one argument.
+
+       * cpphash.h: Update prototypes.
+       (enum node_type): Remove entries for directives.
+       * Makefile.in: Update dependencies.
+
+       * cpphash.c (dump_hash_helper): Only dump nodes of type
+       T_MACRO.  Emit a newline after each definition.
+
+2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * gccbug.in: New file.
+       * configure.in (all_outputs): Add gccbug.
+       * Makefile.in (install-common): Install gccbug.
+       (GCCBUG_INSTALL_NAME): New variable.
+       * configure: Rebuilt.
+
+2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
+
+       * function.c (put_var_into_stack): Use type_for_mode to calculate
+       part_type.  Use MEM_SET_IN_STRUCT_P.
+       * expr.c (store_field): Handle CONCAT.
+       (store_constructor): Use fields_length.
+       * tree.c (fields_length): New fn.
+       * tree.h: Declare it.
+
+2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
+       (cpplex.o): New target.
+       * po/POTFILES.in: Add cpplex.c.
+
+       * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
+       cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
+       cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
+       skip_block_comment, skip_line_comment, skip_comment,
+       copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
+       _cpp_parse_name, skip_string, parse_string,
+       _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
+       _cpp_get_directive_token, find_position,
+       _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
+       (maybe_macroexpand, _cpp_lex_token): New functions.
+
+       * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
+       parse_goto_mark): Delete.
+       (_cpp_handle_eof): New function.
+       (_cpp_handle_directive): Rename from handle_directive.
+       (_cpp_output_line_command): Rename from output_line_command.
+       (do_if, do_elif): Call _cpp_parse_expr directly.
+       * cppfiles.c (_cpp_read_include_file): Don't call
+       init_input_buffer here.
+       * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
+       * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
+       here; pop the token_buffer and skip the rest of the line here.
+       * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
+       here.
+
+       * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
+       Define here.
+       (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
+       CPP_GOTO_MARK): New macros.
+       (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
+       _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
+       _cpp_read_and_prescan, _cpp_init_input_buffer,
+       _cpp_grow_token_buffer, _cpp_get_directive_token,
+       _cpp_handle_directive, _cpp_handle_eof,
+       _cpp_output_line_command): Prototype them here.
+       * cpplib.h (enum cpp_token): Add CPP_MACRO.
+       (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
+       quote_string, output_line_command): Remove.
+
+2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * stmt.c (expand_end_case): RANGE may be signed, and when checking
+       whether it is too large we must also verify that it isn't negative.
+
+2000-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
+       (movsi_zero_liveg0): Remove.
+       (movsf_insn_novis_liveg0): Remove.
+       (negsi2): Remove.
+       (negsi2_not_liveg0): Rename to negsi2.
+       (one_cmplsi2): Remove.
+       (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
+       (one_cmplsi2_liveg0): Remove.
+       * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
+       MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
+       (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
+       (PREDICATE_CODES): Remove zero_operand.
+       * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
+       TARGET_BROKEN_SAVERESTORE.
+       (zero_operand): Remove.
+       * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
+       -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
+       options.
+       (SUBTARGET_OVERRIDE_OPTIONS): Remove.
+       * config/sparc/linux-aout.h (TARGET_LIVE_G0,
+       TARGET_BROKEN_SAVERESTORE): Remove.
+       * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
+       Remove.
+       * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
+       Remove.
+       * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
+       Remove.
+
+       * config/sparc/sparc.md (return_df_no_fpu): New pattern.
+
+2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_pragma_implementation): Fix off-by-one error
+       truncating a string.  Don't assume tokens are nul terminated.
+       Problem noted by Andreas Jaeger <aj@suse.de>
+
+2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (add_name_and_src_coords_attributes): Only add
+       DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
+       (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
+
+2000-03-13  Richard Earnshaw <rearnsha@arm.com>
+
+       * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
+       STRUCTURE_SIZE_BOUNDARY.
+
+2000-03-13  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (record_layout_info_s): New structure.
+       (record_layout_info): New type.
+       (new_record_layout_info): New function.
+       (layout_field): Likewise.
+       (finish_record_layout): Likewise.
+       * stor-layout.c (layout_record): Remove.
+       (new_record_layout_info): New function.
+       (layout_field): New function, broken out from layout_record.
+       (finalize_record_size): Likewise.
+       (compute_record_mode): Likewise.
+       (finalize_type_size): New function, broken out from layout_type.
+       (finish_record_layout): Likewise.
+       (layout_type): Use them.
+
+2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c: Don't include version.h.
+       (special_symbol) [case T_VERSION]: Look for the string in
+       hp->value.cpval; don't use version_string.
+       * cppinit.c (initialize_builtins): Set hp->value.cpval for
+       __VERSION__ to version_string.
+       * Makefile.in (cpphash.o): Update deps.
+
+2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
+
+       Convert cpplib to use libiberty/hashtab.c.
+
+       * cpplib.h (struct cpp_reader): Make hashtab and
+       all_include_files of type 'struct htab *'.  Delete HASHSIZE
+       and ALL_INCLUDE_HASHSIZE macros.
+
+       * cpphash.h: Update prototypes.
+       (struct hashnode): Remove next, prev, and bucket_hdr members.
+       Make length a size_t.  Add hash member.
+       (struct ihash): Remove next member.  Add hash member.  Make
+       name a flexible array member.
+
+       * cppfiles.c: Include hashtab.h.
+       (include_hash): Delete.
+       (IHASHSIZE): New macro.
+       (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
+       (cpp_included): Do the hash lookup here.
+       (_cpp_find_include_file): Rewrite.
+       (cpp_read_file): Put the "fake" hash entry into the hash
+       table.  Honor the control_macro, if it turns out we've seen
+       the file before.  Don't push the buffer here.
+       (_cpp_read_include_file): Push the buffer here.
+       (OMODES): New macro.  Use it whenever we call open(2).
+
+       * cpphash.c: Include hashtab.h.
+       (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
+       _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
+       _cpp_lookup_slot): New functions.
+       (HASHSIZE): new macro.
+       (hashf, _cpp_install, _cpp_delete_macro): Delete.
+       (_cpp_lookup): Use hashtab.h routines.
+
+       * cppinit.c: Include hashtab.h.
+       (cpp_reader_init): Call _cpp_init_macro_hash and
+       _cpp_init_include_hash.  Don't allocate hashtab directly.
+       (cpp_cleanup): Just call htab_delete on pfile->hashtab and
+       pfile->all_include_files.
+       (initialize_builtins): Use _cpp_make_hashnode and
+       htab_find_slot to add hash entries.
+       (cpp_finish): Just call _cpp_dump_macro_hash.
+       * cpplib.c: Include hashtab.h.
+       (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
+       create hash entries.
+       (do_pragma_poison, do_assert): Likewise.
+       (do_include): Don't push the buffer here.  Don't increment
+       system_include_depth unless _cpp_read_include_file succeeds.
+       (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
+       or htab_remove_elt.
+       (do_pragma_implementation): Use alloca to create copy.
+
+       * Makefile.in: Update dependencies.
+
+2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cppinit.c (cl_directive_handler): More K&R fixing.
+
+Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
+       STACK_BOUNDARY.
+       * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
+
+2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
+       Change from char[] to macros.
+
+2000-03-12  Neil Booth  <NeilB@earthling.net>
+
+       * cppinit.c (cpp_start_read): Update indirect function
+       call to K&R C.
+
+Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
+       entry.
+
+       * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
+       config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
+
+2000-03-11  Neil Booth  <NeilB@earthling.net>
+
+       * cppinit.c (struct pending option): Replace undef with a
+       pointer to a directive handling routine.
+       (struct cpp_pending): Replace separate assert_ and define_
+       lists with one directive_ list.
+       (new_pending_define): Rename new_pending_directive. Extra
+       argument is the directive's handling routine.
+       (handle_option): Update to use new_pending_directive.
+
+2000-03-11  Neil Booth  <NeilB@earthling.net>
+
+       * cppfiles.c (file_cleanup, _cpp_find_include_file,
+       remap_filename, _cpp_read_include_file, actual_directory,
+       hack_vms_include_specification): Replace bcopy(), index() etc
+       calls.  Add casts to some allocations.  Make some variables
+       pointers to const [unsigned] char.
+       * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
+       collect_formal_parameters): Similarly.
+       * cppinit.c (struct pending_option, append_include_chain,
+       cpp_options_init, cpp_reader_init, initialize_standard_includes,
+       cpp_start_read, new_pending_define, handle_option): Similarly.
+       * cpplib.c (cpp_define, copy_comment, do_define, do_include,
+       do_undef, do_error, do_warning, do_pragma, do_pragma_once,
+       do_pragma_implementation, detect_if_not_defined,
+       do_ifdef, skip_if_group, cpp_get_token, parse_string,
+       do_assert, do_unassert): Similarly.
+       * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
+       function prototypes.
+       * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
+
+2000-03-10  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_builtin_strlen): Revert last change.
+       Use emit_insn_before if we're at the beginning of a sequence.
+
+2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
+
+       * builtins.c (expand_builtin_strlen): Make sure that we have something
+       at the beginning of the sequence.
+
+       * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
+       deferred inlines.
 
-       * gnulib1.c, gnulib2.c (abort): Undefine only if defined.
+       * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
 
-       * genattr.c (main): Fix typo in comment end.
+2000-03-10  Richard Henderson  <rth@cygnus.com>
 
-Sat Jun 29 21:57:28 1991  Torbjorn Granlund  (tege at zevs.sics.se)
+       * except.c (can_throw): Use INTVAL on a CONST_INT.
+       (reachable_handlers): Likewise.
+       * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
 
-       * longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
-       * longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss..
-       * longlong.h (__sparc__): Don't call .umul; expand asm instead.
-         Don't define __umulsidi3 (i.e. use default definition).
+2000-03-10  Andreas Jaeger  <aj@suse.de>
 
-Sat Jun 29 06:25:19 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
+       MD_STARTFILE_PREFIX since those are not needed on linux.
+       (ASM_FILE_START): New, from mips/gnu.h.
 
-       * tm-vax.h (CPP_SPEC): New macro.
-       (LIB_SPEC): Handle -mg.
+2000-03-09  Richard Henderson  <rth@cygnus.com>
+           Alex Samuel  <samuel@codesourcery.com> and others
 
-       * cccp.c (install_builtins): Fix backward test of objc.
+       * Makefile.in (ssa.o): New rule.
+       (OBJS): Add ssa.o.
+       (STAGESTUFF): Add *.ssa and *.ussa.
+       (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
+       * rtl.def (PHI): New RTL expression.
+       * rtl.h (clear_log_links): New declaration.
+       (convert_to_ssa): Likewise.
+       (convert_from_ssa): Likewise.
+       * flow.c (split_edge): If the entry node falls through to the
+       split edge's source block, split the entry edge.
+       (clear_log_links): New function.
+       * toplev.c (ssa_dump): New variable.
+       (flag_ssa): Likewise.
+       (f_options): Add "ssa".
+       (compile_file): Create SSA dump files.
+       (rest_of_compilation): Go to and from SSA if enabled.
+       (decide_d_option): Handle -de for SSA dump files.
+       * ssa.c: New file.
 
-       * fold-const.c (size_int): No need to test sign of NUMBER.
+Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
 
-       * gcc.c (process_command): Split -L from its arg.
+       * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
+       same as VAR_DECL.
 
-       * gcc.c (S_ISREG): Define if not defined.
-       (delete_temp_files): Use it.
+2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
 
-       * limits.h (UCHAR_MAX, CHAR_MAX, USHRT_MAX): Delete `U'.
-       (LONG_MAX, ULONG_MAX): Add `L'.
+       * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
+
+Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
+       (MD_STARTFILE_PREFIX_1): New macro.
+
+2000-03-09  Robert Lipe  <robertl@sco.com>
+
+       * config/ia64/ia64.c: Include system.h.
+
+2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
+
+       * except.c (nothrow_function_p): If -fno-exceptions, just return.
+       (init_eh_nesting_info): Likewise.
+
+       * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
+       (TREE_NOTHROW): Rename from TREE_RAISES.
+       * toplev.c (rest_of_compilation): Set it.
+       * print-tree.c (print_node): Adjust.
+       * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
+       (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
+       * calls.c (emit_call_1): Add 'nothrow' parm.  Add
+       REG_EH_REGION note as appropriate.
+       (libfunc_nothrow): New fn.
+       (emit_library_call, emit_library_call_value): Use it.
+       (expand_call): Check TREE_NOTHROW.
+
+       * varasm.c (make_decl_rtl): Skip initial '*' when setting
+       DECL_ASSEMBLER_NAME.
+
+2000-03-09  Andreas Jaeger  <aj@suse.de>
+
+       * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
+       (TARGET_MEM_FUNCTIONS): Define.
+
+2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
+
+       * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
+
+       * except.c (can_throw): See through a SEQUENCE.
+       (nothrow_function_p): New fn.
+       * except.h: Declare it.
+       * function.c (current_function_nothrow): New var.
+       (prepare_function_start): Initialize it.
+       * output.h: Declare it.
+       * toplev.c (rest_of_compilation): Set it.
+       * dwarf2out.c (dwarf2out_begin_prologue): Use it.
+
+2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (collect_formal_parameters): strncmp returns 0 for
+       match.  (cpp_compare_defs): Count the nul separator when
+       advancing over argument names.
+
+2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * recog.c (preprocess_constraints): Matching constraints affect
+       same alternative/different operand, not same operand/different
+       alternative.
+
+       * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
+       register and a constant specially.
+
+2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * libgcc2.h: New file.
+       * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
+
+Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
+       * configure: Regenerate.
+       * config/ia64: New.
+
+2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (LIBCPP_DEPS): New macro.
+       (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
+       it to declare deps.
+       * cpperror.c: Include cpphash.h.
+       * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
+       dingleberry.
+       (lex): Don't use CPP_WARN_UNDEF.
+       (_cpp_parse_expr): Return an int, the truth value.
+       * cppfiles.c: Include cpphash.h.
+       (_cpp_merge_include_chains): Move to cppinit.c and make static.
+       * cppinit.c (include_defaults_array): Disentangle.
+       (cpp_cleanup): Don't free the if stack here.
+       (cpp_finish): Pop off all buffers, not just one.
+       * cpplib.c (eval_if_expr): Return int.
+       (do_xifdef): Rename do_ifdef.
+       (handle_directive): Don't use CPP_PREPROCESSED.
+       (cpp_get_token): Don't use CPP_C89.
+       * fix-header.c: Don't use CPP_OPTIONS.
+
+       * cpplib.h: Move U_CHAR, enum node_type, struct
+       file_name_list, struct ihash, is_idchar, is_idstart,
+       is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
+       CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
+       CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
+       CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
+       CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
+       of _cpp_simplify_pathname, _cpp_find_include_file,
+       _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
+       Move struct if_stack to cpplib.c.  Move struct cpp_pending to
+       cppinit.c.
+       Change all uses of U_CHAR to be unsigned char instead.
+       Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
+
+2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
+       (dwarf2out_begin_prologue): Set it.
+       (output_call_frame_info): Don't emit EH unwind info for leaves.
+
+       * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
+       can occur outside of an EH region.
+       * except.c: Correct comments about rethrow behavior.
+       (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
+
+2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
 
-Fri Jun 28 22:22:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * flow.c (make_edges): Always call make_eh_edge for calls.
 
-       * Makefile (realclean): Delete stage1, stage2, stage3.
+2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * gcc.c (fatal) [HAVE_VFPRINTF]: Do print program name.
+       * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
+       (struct cpp_buffer): Remove fname and underflow fields.
+       (struct cpp_reader): Remove get_token field.
+       (struct include_hash): Rename to struct ihash.  Add typedef to
+       IHASH.
+       (struct if_stack): Remove fname field.
+       (IF_STACK_FRAME): Rename to IF_STACK.
+
+       * cpperror.c (print_containing_files): Trust that there are no
+       macro buffers below the top file buffer.
+       * cppfiles.c: Replace all references to 'struct include_hash'
+       with 'IHASH'.  Rename initialize_input_buffer to
+       init_input_buffer.  Don't set or reference cpp_buffer->fname,
+       use buffer->ihash->name instead.
+       * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
+       not CPP_NULL_BUFFER.
+       * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
+       IF_STACK_FRAME, IHASH not struct include_hash.
+       * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
+       null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
+       struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
+       references to cpp_buffer->fname (delete entirely, or use
+       ->ihash->name instead) and IF_STACK->fname.
+       (cpp_push_buffer): Don't set new->underflow.
+       (do_include): Use cpp_file_buffer.
+
+       * cpphash.c (collect_formal_parameters): Remove duplicate
+       increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
+       used as a macro argument name.  Don't append "..." to namebuf
+       for varargs macros.  After we're done scanning, go through
+       namebuf and make it NUL separated, not comma separated.
+       (_cpp_compare_defs): Remove register tag from variables.
+       Expect defn->argnames to be NUL separated.
+       (_cpp_dump_definition): Expect defn->argnames to be NUL
+       separated and in forward order.
+       * cpphash.h: Update documentation of argnames field.
+
+2000-03-08  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_builtin_strlen): Be prepared for strlensi
+       to fail.  Don't pre-expand the source operand.
+
+       * i386.md (strlensi): Initialize eoschar and align before use.
+
+2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
+
+       * expr.c (expand_expr, case ARRAY_REF): Still check for missing
+       CONSTRUCTOR element.
+
+2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
+
+       * mips.c (mips_expand_prologue): If the last
+       named argument is the vararg marker "va_list", treat it as
+       an unnamed argument.
+
+2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * dbxout.c (dbxout_parms): When correcting for promoted
+       big-endian parameters, use the mode of the DECL_RTL rather
+       than UNITS_PER_WORD.
+
+2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-common.h (make_fname_decl): Declare.
+       * c-common.c (make_fname_decl): Define.
+       (declare_hidden_char_array): Remove.
+       (declare_function_name): Use make_fname_decl.
+       * c-decl.c (c_make_fname_decl): New function.
+       (init_decl_processing): Set make_fname_decl.
+
+Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * cccp.c (handle_directive): Initialize backslash_newlines_p.
 
-Fri Jun 28 15:34:08 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+2000-03-07  Philipp Thomas  <pthomas@suse.de>
 
-       * out-sparc.c (output_block_move): Correctly handle the case where
-       the size is not a CONST_INT, and has a value of 0.
+       * po/POTFILES.in: Remove cppalloc.c from file list.
 
-       * flags.h (flag_no_inline): Modify comment to match the one in
-       toplev.c.
+2000-03-07  Steve Chamberlain  <sac@pobox.com>
 
-       * integrate.c (copy_rtx_and_substitute): When creating new rtx,
-       make sure all of the new bitfields are copied, e.g.
-       REG_LOOP_TEST_P, LABEL_OUTPUT_LOOP_P, etc.
+       * pj.c (pj_expand_prologue): current_function->args_info is
+       now current_function_args_info.
 
-       * loop.c (loop_optimize): Call reg_scan after
-       find_and_verify_loops, because it may change register lifetimes.
-       (find_and_verify_loops): After moving a block of code outside the
-       loop, must readjust the loop_number_exit_label and
-       LABEL_OUTSIDE_LOOP_P data of the modified jump and the moved jump.
-       toplev.c (rest_of_compilation): Delete reg_scan call before
-       loop_optimize.
+       * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
+       LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
+       ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
 
-Fri Jun 28 13:16:37 1991  Michael Meissner  (meissner at osf.org)
+2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * tm-mips.h (toplevel): Add target_flags to externals declared.
-       (toplevel): Add dslots_number_nops, mips_load_reg{,2},
-       mips_fill_delay_slot external declarations for delay slot reorg.
-       (CC1PLUS_SPEC): By default, pass -fno-gnu-binutils to cc1plus.
-       (TARGET_FLAGS): Add -mwc8, -mwc16, -mwc32 to set size of wchar_t,
-       though the switches are not used right now.
-       (TARGET_FLAGS): Add -msoft-float code from rfg@ncd.com to compile
-       on systems w/o floating point.
-       (TARGET_FLAGS): -mdebugf suppresses filling load delay slots.
-       (HARD_REGNO_OK): Relax constraints, allow anything in GP
-       registers, anything in even FP registers, int's only in multiply
-       and divide registers, int/CC in the FPSW register.
-       (FRAME_POINTER_REQUIRED): Require frame if alloca is called for
-       now.
-       (REG_CLASS_FROM_LETTER): Index from an array (mips_char_to_class)
-       instead of having lots of ?:'s.  Also, allow 'd' to signify GP
-       registers.
-       (ENCODE_SEGMENT_INFO): Only record things being in small data/bss
-       if -mgpOPT (-O sets by default), -O, and -G xx where xx > 0.
-       (FINAL_PRESCAN_INSN): Rework to automatically not fill the
-       previous instruction's load delay slots with nop's if it is safe.
-       (ASM_OUTPUT_LABEL): If compiling collect, don't use assemble_name.
-       (ASM_GLOBALIZE_LABEL): If compiling collect, don't use
-       assemble_name.
-       (ASM_OUTPUT_LABELREF_AS_INT): Define this for collect.
-       (ASM_OUTPUT_INT): If collect, don't use output_addr_const.
-
-       * mips.md (all floating point): If -msoft-float, don't allow any
-       floating point builtin operations.
-       (all patterns): Use 'd' constraint to limit things to GP
-       registers, rather than 'r'.  This allows unions of
-       float/int/double to occupy any registers.
-       (*extend*): Call mips_move_1word to handle loads, which in turn
-       sees if we can omit the load nop.
-       (fix_trunc*): Redo, since register allocator can handle moving to
-       the appropriate register set.
-       (movdf_xfer*): Use explicit return's instead of falling through
-       and having the appropriate value in a register from the previous
-       call.
-       (movsf_xfer*): New patterns to accomidate unions of floats and
-       int's.
-       (movsi_unaligned): New define_expand to call either movsi_ulw or
-       movsi_usw.  Also, if not a memory operation, use movsi.
-       (movsi_ulw): Set up to omit load delay nop if we can.
-       (movsi_usw): Use memory_operand instead of simple_memory_operand.
-       Also, allow storing 0 to an unaligned location.
-       (various move patterns): mips_move_1word now takes a third
-       argument to specify whether a load should sign or zero extend.
-       (call_value): Use register_operand on return value.
-       (probe): Turn into define_expand, and set a register to the
-       contents of memory pointed to by the stack pointer with volatil
-       set.
-
-       * out-mips.c (toplevel): Add new global variables:
-       dslots_number_nops, mips_load_reg{,2}, mips_regno_to_class,
-       mips_char_to_class.
-       (simple_memory_operand): If not optimizing, no global memory
-       reference is assumed to be in the GP area.
-       (mips_fill_delay_slot): New function to tell FINAL_PRESCAN_INSN
-       the current insn is a load and may need a nop.
-       (mips_move_1word): Take a third argument to say whether load byte
-       and load half-word sign extend or zero extend.  Change all
-       callers.  If this is a load, call mips_fill_delay_slots to
-       schedule the nops.  Change all return's to setting a variable, and
-       falling through to the end.
-       (mips_move_2words):  If this is a load, call mips_fill_delay_slots
-       to schedule the nops.  Change all return's to setting a variable,
-       and falling through to the end.
-       (function_arg): if -msoft-float, floating point is passed in GP
-       registers.
-       (override_options): Initialize mips_char_to_class.
-       (print_operand): %( and %) no longer do .set nomacro.
-       (print_operand): %# prints #nop if gas or -mstats.
-       (print_operand): Check for too many %), %], and %>'s.
-       (compute_frame_size): Allocate space in stack to hold FP, just in
-       case we later need a FP and previously thought we could eliminate
-       it.
-       (save_restore): Take a string to indicate the 2word load/store to
-       use, but don't use it at present.  Change all callers.  Home
-       varargs registers with sd if we can.
-       (function_epilogue): Deal with one or more outstanding nop's from
-       FINAL_PRESCAN_INSN.
-       (function_epilogue): Revamp -mstats output format.
-       (function_epilogue): Zero new global variables.
-
-       * make-decrose (toplevel): Sort make variables.
-       (CLIB): Add -lld library.
-       (LANGUAGES): Add build of collect-osf and g++.
-       (ULTRIX_DIR): Change internal work directory location.
-       (cplus-lex.o): Don't optimize to avoid problem with 1.39 compiler.
-       (collect-osf): Add rules to build OSF/rose version of collect.
-
-       * make-mips (LANGUAGES): Add build of g++.
-
-       * tm-decrose.h (SIZE_TYPE): Specify to be long unsigned int.
-       (PTRDIFF_TYPE): Specify to be long int.
-       (WCHAR_TYPE): Specify to be long unsigned int.
-
-       * sdbout.c (plain_type_1): Add support for unknown tags if
-       SDB_ALLOW_UNKNOWN_REFERENCES is defined.  The MIPS ECOFF support
-       needs this, but standard COFF typically doesn't allow unknown
-       references.
-
-       * gcc.texinfo (Debugging Info): Document
-       SDB_ALLOW_UNKNOWN_REFERENCES and SDB_ALLOW_FORWARD_REFERENCES.
-
-       * collect-osf.c (whole file): New file to provide collect support
-       on OSF/rose.
-
-Fri Jun 28 09:20:18 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * configure (m88k-luna): New target.
-       * tm-m88kluna.h: New file for the Omron Luna/88k.
-       * xm-m88k.h: Don't use USG for the luna88k.
-
-       * tm-m88kdgux.h: DG/UX implements coff and elf.  Currently elf is
-       a strange variant of coff that's non-standard (it uses SDB
-       debugging info for example).  Soon, the DG/UX elf will support
-       DWARF.  These changes provide transitional support for all three.
-       (DWARF_DEBUGGING_INFO, SDB_DEBUGGING_INFO): Define both.
-       (VERSION_0300_SYNTAX): True when -msvr4 and -mversion-03.00.
-       * tm-m88ksvr4.h (ASM_FILE_END, ASM_OUTPUT_DWARF_LINE): Move these
-       to tm-m88k.h.  They are dwarf specific.
-       * tm-m88k.h (TARGET_SWITCHES): Add -mversion-03.00 and -mdwarf.
-       (OVERRIDE_OPTIONS): If using version 03.00 syntax, assume DWARF_DEBUG.
-
-       * tm-m88k.h (REG_ALLOC_ORDER): Adapt slightly for using r26-r29.
-
-       * out-m88k.c (m88k_debugger_offset): Don't complain if the base
-       register is optimized away.
-
-Thu Jun 27 21:43:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * local-alloc.c (memref_referenced_p, memref_used_between_p):
-       New functions.
-       (update_equiv_regs): Call memref_used_between_p.
+       * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
+       output as hexadecimal rather than the default octal.
 
-Thu Jun 27 19:59:36 1991  Ken Raeburn  (raeburn at watch.com)
+2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * print-tree.c (print_node): Changed the various "lang_#" strings to
-       indicate which of several possible fields are being examined; new
-       strings are "tree_#", "decl_#", "type_#".
+       * cpphash.c (special_symbol): Fix thinko in previous commit.
 
-Thu Jun 27 15:05:43 1991  Michael Meissner  (meissner at churchy.gnu.ai.mit.edu)
+2000-03-07  Neil Booth  <NeilB@earthling.net>
 
-       * xm-mips.h (ONLY_INT_FIELDS): Define if not compiling with GCC
-       since the MIPS compiler treats enum bitfields as signed.
+       * cppexp.c (struct operation, left_shift, right_shift,
+       cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
+       "int"s to "unsigned int"s.
+       * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
+       Similarly.
+       * cpplib.h: Update for above.
+       * mkdeps.c (deps_init, deps_calc_target): Cast pointers
+       returned from allocations.
 
-Wed Jun 26 19:48:16 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+       * cppinit.c (opt_comp, parse_options): New functions.
+       (handle_option): Use parse_option to parse a single command
+       line option, that possibly takes an argument.
+       (cpp_handle_options): Sort the array of command line options on
+       first invocation (non-ASCII hosts only).
+       (print_help): Update.
 
-       * sched.c (memrefs_conflict_p): Explicitly handle case where both
-       X and Y are CONST.
-       (sched_analyze_2): Do create dependencies for insns with REG_EQUIV
-       notes.
-       (sched_note_set): Correctly handle the case where the destination
-       register is a multi-word hard register.
-       (attach_deaths): Don't add a REG_DEAD note to an insn with a
-       REG_UNUSED note that mentions the same register.  Correctly handle
-       the case where the destination register is a multi-word hard
-       register.
-       (schedule_block): Also call sched_note_set for CLOBBERs when
-       computing which registers are dead at the end of the basic block.
-       Also call sched_note_set for USEs when computing what registers
-       are still live after a just scheduled insn.
-       (regno_use_in): New function, subroutine of split_hard_reg_notes.
-       Searches an rtx for any reference to the given register, and
-       returns the register rtx used if any.
-       (split_hard_reg_notes): New function.  Handles the case where a
-       multi-word hard register with a REG_DEAD note gets split.  Creates
-       a new REG_DEAD note for each part of the original hard register
-       used by the split insns.
-       (new_insn_dead_notes): Don't add a REG_DEAD note to an insn with a
-       REG_UNUSED note which mentions the same register.
-       (update_links): Add call to new function split_hard_reg_notes.
-       Correctly handle the case when the dest of the original insn was a
-       multi-word register which was split in the split insns.  In this
-       case, the dest is no longer killed here, so must remove the
-       REG_DEAD on the last previous insn in this basic block which used
-       dest, if any such exists.
-
-       * unroll.c (reg_dead_after_loop): Check that a CODE_LABEL which is
-       the target of a JUMP_INSN has a non-zero PREV_INSN field before
-       trying to derefence it.  Fail if there is no previous insn.
-
-       * loop.c (scan_loop): Fix typo.
-       * local-alloc.c (optimize_reg_copy): Likewise.
-       * global-alloc (hard_reg_copy_preferences): Likewise.
-       * gcc.texinfo (REG_LOOP_TEST_P): Likewise.
-       * optabs.c (expand_float): Likewise.
-       * tm-vaxv.h (ASM_OUTPUT_ASCII): Likewise.
-
-       * out-sparc.c (output_move_double): Sign extend CONST_INTs that
-       feed DImode targets.
-       * tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept a LABEL_REF
-       as a legal address.  Also, delete obsolete parts of preceeding
-       comment.
-
-       * reload1.c (alter_reg): Only try to delete the reg_equiv_init
-       insn if it hasn't already been deleted by a previous call to
-       delete_dead_insn.
-
-       * toplev.c (main): Handle -gdbx in addition to -gsdb for
-       orthogonality.
-       * gcc.texinfo: Document -gdbx.
-
-Tue Jun 25 09:57:08 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (casesi): Don't emit a barrier; the dispatch code must
-       adjoin the table.
-       * tm-m88k.h (DONT_REDUCE_ADDR): Don't use this.
-       (CONDITIONAL_REGISTER_USAGE): The PIC register is also call-used.
-       * out-m88k.c (m88k_layout_frame): Save the PIC register.
-
-Tue Jun 25 07:40:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * function.c (expand_function_end): FNDECL should
-       be CURRENT_FUNCTION_DECL.
-
-       * combine.c (find_split_point): If we see an AND operation as the
-       first operand of some non-AND operation, use it as a split point.
-       (subst): Add counter to limit restarts, go to restart more often.
-       (subst, case AND): If we get (ior (and (X C1) C2)) and can't
-       restart more than once, rewrite with C1 as small as possible and exit.
-
-       * cse.c (cse_end_of_basic_block): Don't put branch in our path more
-       than once.
-       (cse_main): Clear PATH_SIZE when skipping a block.
-       (cse_basic_block): Use GET_RTX_CLASS.
+2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
 
-Tue Jun 25 07:39:29 1991  Matthew Self  (mself at next.com)
+       * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
+       backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
 
-       * varasm.c (const_hash, compare_constant_1, record_constant_1):
-       For ADDR_EXPR's, don't hash address of SYMBOL_REF.  Only use
-       offset and name of symbol.  This allows constructors which
-       contain pointers to identical string literals to be uniqued.
+       * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
+       initialized.
+       * cppinit.c (cpp_cleanup): Free imp->nshort also.
 
-       * loop.c (loop_optimize, init_loop):  Moved call to
-       gcc_obstack_init() from loop_optimize() to init_loop().
+       * cpperror.c (cpp_print_containing_files,
+       cpp_print_file_and_line, v_cpp_message): Rename to
+       print_containing_files, print_file_and_line, and v_message.
+       * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
+       to _cpp_parse_expr, parse_escape, and lex.
+       (parse_charconst): Remove broken multibyte support.
+       * cppfiles.c (include_hash): Make static.
+       (cpp_included): New function.
+       (merge_include_chains, find_include_file, finclude,
+       simplify_pathname): Rename to _cpp_merge_include_chains,
+       _cpp_find_include_file, _cpp_read_include_file, and
+       _cpp_simplify_pathname.
+       * cpphash.c (cpp_lookup, free_definition, delete_macro,
+       cpp_install, create_definition, macroexpand, compare_defs,
+       dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
+       _cpp_delete_macro, _cpp_install, _cpp_create_definition,
+       _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
+       * cppinit.c (cpp_handle_option): Rename to handle_option, make
+       static.
+       * cpplib.c: Remove extern prototype of cpp_parse_expr.
 
-       * reload1.c (reload, init_reload):  Moved call to
-       gcc_obstack_init() from reload() to new function init_reload().
+       * cpphash.h: Update prototypes.
+       * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
 
-       * toplev.c (compile_file):  Call new function init_reload().
-
-Mon Jun 24 16:05:57 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
-
-       * stmt.c (expand_end_stmt_expr): Fix typo in comment.
-
-       * reload1.c (modes_equiv_for_class_p): Only fail if registers in
-       CLASS that can hold ALLOCATE_MODE can't also hold OTHER_MODE.  Do
-       not fail for the reverse test.  ALLOCATE_MODE is always a larger
-       or same size mode as OTHER_MODE, and will be the mode that reload
-       uses when allocating spill registers.  Rewrite comments to explain
-       new behaviour.
-       (reload): Change call to modes_equiv_for_class_p to match new
-       semantics.
+2000-03-07  Andrew Haley  <aph@cygnus.com>
 
-       * combine.c (simplify_shift_const): When simplifying (ashiftrt
-       (ashift inner_const_int) const_int), was checking the wrong number of
-       high order bits of inner_const_int.  Also correct typos in comments.
+       * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
+       PTRDIFF_TYPE should be based solely on Pmode.
+       (SIZE_TYPE): ditto.
 
-       * c-convert.c (convert_to_integer): Must also check ARG1 for
-       unsignedness, because ARG0 could be a constant when EXPR is a
-       MINUS_EXPR.
+2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * combine.c (try_combine): When splitting, it is not safe to use
-       I2DEST if it is referenced by NEWPAT.
+       * rtl.h (rtunion_def): Constify member `rtstr'.
+       (emit_line_note_after, emit_line_note, emit_line_note_force,
+       emit_note, decode_asm_operands): Constify.
 
-       * combine.c (distribute_notes): After converting REG_DEAD notes to
-       REG_UNUSED notes, clear PLACE if it already has a REG_UNUSED note,
-       to prevent adding a duplicate REG_UNUSED note.
+       * cse.c (canon_hash): Likewise.
 
-       * gcc.texinfo (SIGNED_CHAR_SPEC): Document.
+       * dbxout.c (dbxout_block): Likewise.
 
-Mon Jun 24 10:02:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
+       v_warning_for_asm): Likewise.
 
-       * cse.c (cse_set_around_loop): Ensure the insn we find in front
-       of the loop does the set in the proper mode.
+       * dwarfout.c (function_start_label): Likewise.
 
-       * optabs.c (expand_float): Always do conversions to FMODE in the
-       signedness of the input.
+       * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
+       emit_line_note_force): Likewise.
 
-       * reload.c (find_reloads, find_reloads_toplev): If reg_equiv_address
-       is not a constant address, copy it in case it is shared.
+       * final.c (last_filename, asm_insn_count, final_scan_insn,
+       output_source_line): Likewise.
 
-       * reload1.c (eliminate_regs): Copy reg_equiv_memory_loc in case
-       it is shared and we make a reload inside it.
+       * function.h (struct emit_status): Likewise.
 
-       * stupid.c (stupid_mark_refs): Registers that aren't used must die
-       in the insn after their birth so they conflict with other outputs.
+       * gcse.c (hash_expr_1): Likewise.
 
-       * vax.md: Replace patterns to convert (and (ashiftxx))
-       into (and (rotatexx)) with the patterns that are actually made
-       by combine.
-       We can allow offsettable addresses for operand 0 and it is not
-       early-clobber.
+       * genattr.c (gen_attr, main): Likewise.
 
-       * out-rs6000.c (secondary_reload_class): Correctly interpret result of
-       true_regnum.
+       * genattrtab.c (struct function_unit, current_alternative_string,
+       write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
+       attr_numeral, check_attr_test, check_attr_value,
+       convert_set_attr_alternative, convert_set_attr,
+       compute_alternative_mask, simplify_by_exploding, gen_attr,
+       gen_unit): Likewise.
 
-       * out-rs6000.c (output_toc): Write FP constants in TOC.
-       * tm-r6000.h (TARGET_FP_IN_TOC): New flag.
-       (TARGET_SWITCHES): Add -mfp-in-toc and -mno-fp-in-toc.
-       (TARGET_DEFAULT): -mfp-in-toc is the default.
-       (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): FP constants may be put in the TOC.
+       * genflags.c (gen_insn): Likewise.
 
-Mon Jun 24 00:52:44 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * gengenrtl.c (type_from_format): Likewise.
 
-       * out-i386.c (output_fix_trunc): If the dest operand mentions the
-       stack pointer, then we must adjust it to account for the temporary
-       space we allocate on the stack here.
+       * genopinit.c (gen_insn): Likewise.
 
-Sat Jun 22 07:24:33 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * genoutput.c (n_occurrences, process_template, process_template):
+       Likewise.
 
-       * cse.c (cse_set_around_loop): Fix typo in call to note_mem_written.
+       * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
+       Likewise.
 
-       * emit-rtl.c (reorder_insns): Correctly handle case when AFTER is last
-       insn.
+       * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
+       Likewise.
 
-       * expr.c (expand_expr, case COND_EXPR): Correctly handle X ? A : X + 1.
-       Previous change called invert_truthvalue which can modify EXP; we now
-       call it a second time to undo its action if do_store_flag fails.
+       * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
+       ggc_set_mark, ggc_get_size): Likewise.
 
-Sat Jun 22 02:37:59 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
 
-       * cse.c (cse_set_around_loop): Don't try to initialize an
-       automatic structure.
+       * optabs.c (init_one_libfunc): Likewise.
 
-       * reg-stack.c (compare_for_stack_reg): If both operands to a
-       compare are the same stack reg, don't process death on the second.
+       * output.h (assemble_start_function): Likewise.
 
-       * i386.md (all float patterns): Don't allow constants in the
-       operand predicates.
-       (all patterns using convert_387_op): Split patterns into one using
-       FLOAT and another using FLOAT_EXTEND.
+       * recog.c (decode_asm_operands): Likewise.
 
-Fri Jun 21 20:37:03 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * toplev.c (rest_of_compilation): Likewise.
 
-       * sched.c (line_note, line_note_head): New vectors for use when
-       dealing with line-number notes.
-       (unlink_notes): Put line-number notes in LINE_NOTE for reuse.
-       (schedule_block): Just before reordering the insns, walk the insns
-       and record the line-number note in effect for each one.  When
-       reordering is complete, restore the line-number notes as needed.
-       (schedule_insns): When debugging information is present, allocate
-       and initialize line_note and line_note_head.  After scheduling,
-       walk the insns to delete redundant line-number notes.
+       * tree.h (emit_line_note_after, emit_line_note,
+       emit_line_note_force): Likewise.
 
-Fri Jun 21 19:54:29 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+       * varasm.c (asm_output_bss, asm_output_aligned_bss,
+       asm_emit_uninitialised, assemble_start_function,
+       assemble_variable, const_hash, compare_constant_1,
+       find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
 
-       * old-sparc.c, out-old-sparc.c, tm-old-sparc.h: Delete obsolete
-       files.
+       * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
 
-       * loop.c (loop_number_exit_labels): Expand comment.  Mention that
-       returns are not included because all bivs and givs are pseudos and
-       hence must be dead after a return.
-
-Fri Jun 21 07:10:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * combine.c (subst, case PLUS, MINUS): Remove cases for things like
-       (x-y)+y; now done in simplify_binary_operation.
-       * cse.c (simplify_unary_operation): Handle (sign_extend (truncate ..))
-       as used in casesi patterns.
-       (simplify_binary_operation, case PLUS, MINUS): Don't do most
-       simplifications if IEEE floating-point.
-       Add cases for things like (x-y)+y.
-       (fold_rtx): Replace PC with LABEL_REF if we are immediately in
-       front of a jump table.
-       Move code to apply associative law to after we have folded the
-       operands.
-       (fold_rtx, case MEM): Fix errors in checking for index of jump
-       table being out of range.
-       For ADDR_DIFF_VEC, return a MINUS or (truncate (minus L1 L2)).
-       (fold_rtx, case PLUS): If we have (plus X (label_ref L)), see
-       if X is equivalent to (minus L1 L2).
-       (cse_insn): Put (minus L1 L2) in `src_const' so it gets in a
-       REG_EQUAL note and gets put in the hash table.
-       If we are branching to a jump table, we are really branching to
-       immediately after the jump table
-       Remove special-case kludge for ADDR_DIFF_VEC; now handled properly.
-
-       * vax.md (casesi): Make pattern agree with machine instruction;
-       specifically, index is multiplied by two and the comparison is LEU,
-       not LE.
-
-       * cse.c (equiv_constant): If X is a one-word SUBREG of a larger
-       quantity, use `lookup_as_function' to see if it is equivalent
-       to a CONST_INT.
-
-       * jump.c (squeeze_notes): No longer static.
-       * loop.c (find_and_verify_loops): Need to call squeeze_notes when
-       moving block of code (see last change).
-
-       * reload.c (find_reloads): When forcing constant to memory,
-       set recog_operand to the result of find_reloads_toplev.
-
-       * combine.c (subst, case PLUS): Add (c1 - a) + c2 -> (c1+c2) - a.
-       (subst, case MINUS): Use simplify_binary_operation rather than
-       making CONST_INT from subtraction of two INTVAL's to ensure it
-       gets truncated as appropriate for its mode.
-       Add (c1 - (c2 - a)) -> (c1-c2) + a.
-
-       * a29k.md (negdf2): Use operand_subword_force, not operand_subword.
-       (movsf): Use operand_subword, not gen_lowpart.
-
-       * out-rs6000.c (u_short_cint_operand): New function.
-       (print_operand): Support auto-decrement.
-
-       * tm-rs6000.h (OVERRIDE_OPTIONS): Force profiling off.
-       (PREFERRED_RELOAD_CLASS): Return NO_REGS for real CONST_DOUBLE.
-       (HAVE_PRE_DECREMENT): Define this.
-       (GO_IF_LEGITIMATE_ADDRESS, GO_IF_MODE_DEPENDENT_ADDRESS):
-       Support PRE_DEC.
-
-       * rs6000.md (zero_extendxx): Use rlinm, not andil so we avoid
-       clobbering cr0.
-       (arith-and-record patterns): Correct some bad operand numbers.
-       Put SImode output as operand 0 to improve register tying.
-       (andsi): Prefer rlinm over andil and andiu.
-       (load/store-with-update): Add patterns for these instructions.
-       (allocate_stack): New, replaces stack probe.
-       (add-and-compare): New patterns, with define_split.
-       (subtract-one-and-jump): Allow outputs anywhere; handle with
-       match_scratch and define_split.
-
-       * stmt.c (expand_end_stmt_expr): If `last_expr_value' is 0, set it
-       to const0_rtx.
-
-       * regclass.c (reg_n_sets): Move definition to before use.
-
-       * jump.c (find_cross_jump): Don't try to substitute REG_EQUAL
-       values unless they are constants.
-
-Fri Jun 21 02:37:59 1991  James Van Artsdalen  (james at bigtex.cactus.org)
-
-       * reload1.c (reload): Don't clear after_call for each insn.
-
-Sun Jun 16 17:28:43 1991  James Van Artsdalen  (james at bigtex.cactus.org)
-
-       * reload1.c (reload, reload_as_needed, choose_reload_regs): Enable
-       code to avoid return register when SMALL_REGISTER_CLASSES defined.
-
-       * final.c (final_scan_insn): Don't look for no-op moves if
-       processor has STACK_REGS.
-
-       * hard-reg-set.h (GO_IF_HARD_REG_EQUAL): New macro.
-
-       * jump.c (cross_jump_death_matters): New variable.
-       (find_cross_jump): If processor has STACK_REGS, compare death
-       notes if they matter.
-
-       * toplev.c (compile_file, rest_of_compilation): Support new
-       stack-regs conversion pass.
-       (main, compile_file, rest_of_compilation): Add support for -dk to
-       dump after stack-regs conversion.
-       * reg-stack.c: New file.  Implements stack-regs conversion pass.
-       * Makefile.in (reg-stack.o): New file.
-
-       * tm-i386.h (STACK_REGS): New macro.
-       (all register macros): Define all eight float point registers.
-       (HARD_REGNO_NREGS): Only one float reg is needed for any mode.
-       (HARD_REGNO_MODE_OK): Move code here from out-i386.c.
-       (FIRST_STACK_REG,LAST_STACK_REG): New macros.
-       (ARG_POINTER_REGNUM): Move to reg 16.
-       (FP_REGNO_P): Recognize all float regs.
-       (QI_REG_P): New macro.
-       (STACK_REG_P,NON_STACK_REG_P,STACK_TOP_P): New macros.
-       (PRESERVE_DEATH_INFO_REGNO_P): Delete.
-       (OVERLAPPING_REGNO_P): Delete.
-       (CONST_OK_FOR_LETTER_P): Recognize constant mask for byte or word.
-       Recognize constant 0..3 for `lea' shifts.
-       (CONST_DOUBLE_OK_FOR_LETTER_P):
-       (PREFERRED_RELOAD_CLASS): Don't put CONST_DOUBLE in float regs.
-       QImode must go in class Q_REGS.  Float regs can't hold MODE_INT.
-       (MOVE_RATIO): New macro.
-       (SHIFT_COUNT_TRUNCATED): Delete.  Bit opcodes don't truncate.
-       (RTX_COSTS): New macro.
-       (CONST_COSTS): Make constants cheaper.
-       (QI_HIGH_REGISTER_NAMES): Renamed from QI_REGISTER_NAMES_TOP.
-       (INSN_CLOBBERS_REGNO_P): Delete.
-       (FP_TOP,RETCOM,POP_ONE_POP,FP_CALL1,FP_CALL): Delete.
-
-       * out-i386.c (fp_pop_level): Delete.
-       (fp_call_internal, output_asm_insn_double_reg_op, via_memory,
-       fp_store_sf,fp_pop_sf,fp_store_df,fp_pop_df,fp_pop_int,
-       fp_push_sf,fp_push_df,output_movsf,output_movdf,output_movf,
-       top_dead_p,call_top_dead_p,fp_top_dead_p1,mentioned_fp_top): Delete.
-       (hard_regno_mode_ok): Moved to tm-i386.h.
-       (qi_high_reg_name): New variable.
-       (output_op_from_reg, output_to_reg): New function.
-       (singlemove_string,output_move_const_single): No longer static.
-       (singlemove_string): Use correct operand number in `push' string.
-       (standard_80387_constant_p): Use recommended method to extract
-       float from CONST_DOUBLE.
-       (PRINT_REG): Add 'h' for "high" register names, 'y' for "st(0)".
-       (print_operand): Code 'z' prints no size suffix for stack regs.
-       Print DImode suffix as "ll", not just "l".
-       (output_fix_trunc): New argument `insn'.  Generalize to output to
-       MEM or REG.  Return "char *" like other output routines.
-       Generalize for SImode or DImode output.
-       (binary_387_op,convert_387_op,float_op,fix_op,shift_op): New
-       match_operator predicates.
-       (output_387_binary_op,output_float_compare): New functions.
-
-       * i386.md (all MODE_FLOAT patterns): Replace with new code to use
-       all FPU registers.
-       (all patterns): Use AS2 and AS1 macros where possible, for
-       eventual support of Intel syntax output.
-       (tstM): Don't initialize operands unless we need to.
-       (cmpM): Choose operange order in output for speed on i386.
-       (logical test patterns): The operands commute.  If possible,
-       SImode tests should use just QImode.
-       (movstrictM): New patterns.
-       (movqi): Don't allow a constant of unknown value into Q_REGS.
-       (`lea' pattern): Move after addsi3.
-       (addsi3): Do three operand adds with `lea'.
-       (divsi3,divhi3,udivsi3,udivhi3): Delete in favor of u?divmodM4.
-       (divqi3,udivqi3): Remove earlyclobber for operand 0.
-       (andM3): Define three operand ANDs for 255 and 65535 using zero
-       extend opcode.  Also directly do an AND in the second byte of a
-       register.
-       (iorM3,xorM3): Do byte ior instead of word where possible.
-       (xorqi3): Allow operands[2] from MEM.
-       (ashlsi3): Allow three-operand shift of 0..3 with `lea' opcode.
-       (lshlM3): Redundant, delete.
-       (shift & rotate patterns): Print %0 as destination operand.
-       (bit recognizers): New patterns to set, clear and compliment.
-       (call insns): Use "%P" code for targets to support Intel syntax.
-       (movstrsi): Express changes to the operands instead of just
-       clobbering them.  Don't accept non-constant move count, as our
-       code isn't as efficient as a library call.
-
-Thu Jun 20 13:51:02 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * cse.c (cse_insn): If we fold a conditional or computed branch to an
-       unconditional branch, it is now not in the normal format for an
-       unconditional branch, and it only has one set, delete it and
-       re-emit it.
-       Whenever we make an unconditional branch, set `cse_skip_to_next_block'
-       and do nothing else.
-       (cse_basic_block): Increment LABEL_NUSES on TO if it is a label
-       so it won't go away while we are using it as a stopping point.
-       If we are done with this block (`cse_skip_to_next_block' nonzero),
-       pretend we just did the insn before TO.
-       Decrement LABEL_NUSES of TO if it is a label; if it became zero,
-       delete it and try to extend the basic block.
-
-       * reload.c (find_reloads): Fix typo in check for no alternatives
-       found.
-
-       * combine.c (reg_significant, significant_mode): New vars.
-       (combine_instructions): Allocate and initialize reg_significant.
-       (set_significant): New function.
-       (significant_bits, case REG): Use reg_significant, if non-zero
-       as the significant bits of a register.
-
-       * loop.c (n_times_set): Define -2 to mean that a register is
-       an candidate to be moved and is a constant.
-       (scan_loop): Set n_times_set to -1 or -2 as appropriate.
-       (regs_match_p): No need to check REG_FUNCTION_VALUE_P.
-       A register and a constant can be equal if the register is known 
-       equivalent to the constant.
-       (invariant_p): Check n_times_set < 0, not == -1.
-
-       * rtl.h (REG_LOOP_TEST_P): New macro.
-       * jump.c (duplicate_loop_exit_test): Mark registers used only in
-       loop exit test.
-       * cse.c (cse_around_loop, cse_check_loop_start, cse_set_around_loop):
-       New functions.
-       (cse_end_of_basic_block): Add new arg to say if we are being called
-       after loop.c has run; if we are being called after loop.c, we can
-       ignore NOTE_INSN_LOOP_ENDs.
-       (cse_main): Accept new AFTER_LOOP arg; pass to cse_end_of_basic_block.
-       If we are called before loop.c, see if we can cse around to the
-       start of a loop.  
-       * toplev.c (rest_of_compilation): Tell cse_main if it is being called
-       before or after loop.c.
-
-       * rtl.h (LABEL_OUTSIDE_LOOP_P): New macro.
-       * loop.h (uid_loop_num): Renamed from luid_loop_num and now
-       maps INSN_UID to loop number instead of INSN_LUID.
-       * loop.c (loop_optimize): Modifications for the above.
-       (find_and_verify_loop): Change luid_loop_num to uid_loop_num.
-       Look for blocks of code ending in an unconditional branch out
-       of the loop surrounded by a conditional branch and try to move
-       such a block out of the loop.
-       (mark_loop_jump): Change luid_loop_num to uid_loop_num.
-       Mark all LABEL_REFs that are outside the current loop, for
-       branch prediction.
-       (strength_reduce, check_dbra_loop): Change luid_loop_num to 
-       uid_loop_num.
-       * unroll.c (unroll_loop, find_splittable_{regs,givs}): Likewise.
-       (reg_dead_after_loop, final_{biv,giv}_value): Likewise.
-
-       * flow.c (reg_n_sets): Don't define this here.
-       * regclass.c (reg_n_sets): Define it here.
-       (reg_scan): Allocate and initialize reg_n_sets.
-       (reg_scan_mark_refs): Count sets of a register in reg_n_sets.
-
-       * sched.c (reg_known_value_size): New variable.
-       (canon_rtx): Don't look in reg_known_value outside its allocated space.
-       (init_alias_analysis): Initialize reg_known_value_size.
-
-       * loop.c ({unknown,fixed}_aggregate_altered): Deleted.
-       (loop_store_mems): Replaces loop_store_addrs and loop_store_widths.
-       (loop_optimize): Call init_alias_analysis.
-       (prescan_loop, note_addr_stored): Save all MEMs stored into, rather
-       than just those that appear fixed; save MEMs rather than addresses
-       and widths.
-       (invariant_p): Use true_dependence to see if a MEM is invariant;
-       compare it with all MEMs stored during the loop.
-
-       * sched.c (memrefs_conflict_p): If XSIZE or YSIZE is zero
-       the object conflict if they have the same base, irregardless
-       of the offsets.
-
-       * reorg.c (dbr_schedule): Reallocate unfilled_firstobj after
-       freeing memory from the obstack.
-
-       * reload.c (push_reload): Always reload object inside SUBREG if
-       STRICT_LOW_PART is present.
-       Always set RELOAD_STRICT_LOW to zero; maybe we should get rid of it.
-
-       * reload.c (make_memloc): Copy the address if it varies to avoid
-       potential sharing problems.
-
-       * global-alloc.c (hard_reg_copy_preferences): New var.
-       (global_alloc): Allocate and initialze it.
-       (prune_preferences): Prune it.
-       (find_reg): Try preferences in hards_reg_copy_preferences first,
-       then hard_reg_preferences.
-       (set_preference): Set bit in hard_reg_copy_references, if appropriate.
-
-       * emit-rtl.c (try_split): If we are splitting a JUMP_INSN, copy 
-       JUMP_LABEL from the old to new insn update the count of that label.
-
-       * cse.c (lookup): Always call exp_equiv_p unless we have a REG.
-
-       * cse.c (insert): If we are making a register equivalent to a
-       constant that was already equivalent to a constant, update
-       qty_const_insn.
-       (cse_insn): Don't do it here.
-       * cse.c (fold_rtx): Always call simplify_unary_operation.
-
-       * cse.c (record_jump_equiv): Don't get primary elements for OP0 and
-       OP1 since they might not be valid.
-
-       * loop.c (get_condition): Accept new arg, EARLIEST that is a pointer
-       to where we place the earliest insn used to form the condition.
-       Check for comparison with CC0 in main loop, not earlier.
-       Never return condition involving CC0.
-       (get_condition_for_loop): Call get_condition with new arg.
-       * jump.c (jump_optimize): When we make store-flag insn, put new
-       insns before earliest insn used to form condition and use new
-       psuedo as target, which we copy into VAR immediately after the insn
-       that currently sets VAR.
-       Turn off "if (...) x = 1; else {...} if (x) ..." code; it is not
-       correct and can't be easily fixed.
-       (get_label_{before_after}): Use {prev,next}_nonnote_insn.
-
-       * jump.c (jump_optimize): Don't interpret NOOP_MOVES as meaning
-       "after_reload"; check reload_completed instead.  Don't pass NOOP_MOVES
-       to functions that aren't actually trying to noop moves.
-       (follow_jumps, tension_vector_labels):  Don't accept AFTER_RELOAD arg;
-       check reload_completed instead.
-
-       * combine.c (try_combine): Don't check that we don't have a
-       single_set when trying to replace a SET_DEST in a PARALLEL in I2.
-       (simplify_and_const_int): Always do the AND in the mode passed.
-       (significant_bits, case DIV and UDIV): Nothing special known
-       about low-order bits here.
-       (simplify_shift_const, shift cases): Don't go into infinite loop if
-       we combine two shifts in the same direction.
-
-       * c-parse.y, cplus-parse.y, objc-parse.y (set_yydebug): Move to
-       end of file so we don't have a reference to yydebug after its
-       definition; also delete duplicate declaration.
-
-Thu Jun 20 09:08:21 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
-
-       * local-alloc.c (block_alloc): Fixed typo in last edit.
-
-Wed Jun 19 17:05:52 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
-
-       * reload.c (push_reload): Verify reload_in[i] exists before using
-       GET_CODE on it.
-
-       * m88k.md: USE insns must be immediately before CALL_INSNs to work
-       properly, otherwise sched.c and reorg.c will not associate them will
-       the CALL.
-
-       * unroll.c (calculate_giv_inc): Accept constant increments
-       represented as a LO_SUM.
-
-       * flow.c (mark_used_regs): Don't put a REG_DEAD note on insns that
-       already have a REG_UNUSED note.  This makes it consistent with
-       combine.c.
-       * combine.c (distribute_notes): If a REG_UNUSED reg is no longer
-       set by an insn, but is still used by the insn, then must convert
-       the REG_UNUSED note to a REG_DEAD note.
-
-       * gcc.c (SIGNED_CHAR_SPEC): Put ifndefs around it, so that it can
-       be overriden by a definition in the tm.h file.
-
-       * cse.c (cse_insn): Add missing third parameter to find_reg_note calls.
-
-       * tm-arm.h (INIT_CUMULATIVE_ARGS): Take LIBNAME as third argument.
-
-       * combine.c (can_combine_p): Remove extra argument in call to
-       find_reg_note.
+       * alpha/alpha.md (call_vms, call_value_vms): Likewise.
 
-       * rtlanal.c (find_regno_note): Verify that the note contains a
-       REG before checking its REGNO.
+       * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * cse.c (canon_reg): Fix spacing/punctuation error.
-       * recog.c (constrain_operands): Likewise.
-       * tree.h: Likewise.
-       * varasm.c (Assemble function): Likewise.
+       * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
 
-Wed Jun 19 13:14:22 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)
+       * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
+       arm_dllimport_name_p): Likewise.
 
-       * local-alloc.c (block_alloc): When counting instructions, abort if
-       a loop is detected.  Improperly threaded insns are easy to produce
-       when working on the scheduler.
+       * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
+       Likewise.
 
-Sat Jun 15 06:13:11 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
 
-       * combine.c (simplify_and_const_int, case ASHIFTRT): Avoid infinite
-       loop if simplify_shift_const doesn't do anything.
+       * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-Thu Jun 13 09:05:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
+       arm_mark_dllexport, arm_mark_dllimport,
+       arm_pe_encode_section_info): Likewise.
 
-       * m88k.md (decrement_and_branch_until_zero): Add this insn.
-       
-Thu Jun 13 07:32:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
+       ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * explow.c (plus_constant): Fix error in last change; CONST case
-       wasn't handled correctly.
+       * arm/thumb.c (thumb_function_prologue): Likewise.
 
-       * tm-m68k.h (CONST_CONSTS): Constants between -7 and -1 are cheap
-       because of subq.
+       * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * m68k.md (dbra): Operand 0 should have '+' constraint, not '='.
+       * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * expmed.c (store_fixed_bit_field): Clean up some confusion between
-       targets and results in expand_binop calls.
+       * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * local-alloc.c (optimize_reg_copy): Fix several typos relating to
-       status updating.
-       Correctly handle the case where DEST dies before SRC.
-       Fix some comments that had SRC and DEST backwards.
+       * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * combine.c (can_combine_p): Swap order of args of && to avoid
-       unnecessary calls to use_crosses_set_p.
-       (simplify_and_const_int, case SUBREG): Make code agree with comment.
+       * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
 
-       * emit-rtl.c (operand_subword): Avoid compilation warning.
+       * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * expmed.c (store_fixed_bit_field): Don't use OP0 as SUBTARGET
-       if it is a MEM and -fforce_mem was specified.
+       * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
+       ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
 
-       * expmed.c (emit_store_flag): After scc insns, convert to wider
-       mode using unsigned conversion if STORE_FLAG_VALUE is positive.
+       * i386/i386-protos.h (asm_output_function_prefix): Likewise.
 
-       * expmed.c (init_expmed): Use mode of size BITS_PER_WORD instead
-       of SImode.
-       (store_bit_field, extract_bit_field): Replace references to SImode
-       with MAXMODE.
-       (store_fixed_bit_field, extract_fixed_bit_field): Don't use explicit
-       modes; use get_best_mode instead.
-       (store_split_bit_field, extract_split_bit_field): Use operand_subword
-       and mode_for_size instead of making SUBREGs and using SImode.
+       * i386/i386.c (asm_output_function_prefix): Likewise.
 
-       * stor-layout.c (get_best_mode): Allow LARGEST_MODE to be VOIDmode,
-       in which case we can use any appropriate mode.
+       * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
 
-Wed Jun 12 16:32:37 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+       * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * cplus-decl.c (init_decl_processing): Compensate for tm-sparc.h
-       change to WCHAR_TYPE handling.
+       * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
 
-Wed Jun 12 10:19:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
+       ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
+       ASM_OUTPUT_SECTION_NAME): Likewise.
 
-        * tm-sparc.h (WCHAR_TYPE): Must be "short unsigned int".
+       * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * combine.c (subst, make_extraction, simplify_shift_const): Don't
-       change mode of volatile MEM; replaces similar change of June 1st.
-       * function.c (fixup_var_refs_1, optimize_bit_field): Likewise.
-       * recog.c (validate_replace_rtx_1): Likewise.
+       * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
 
-Tue Jun 11 22:09:28 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * expr.c (expand_expr, case COND_EXPR): Expressions of both the form
-       X ? A + 1 : A and X ? A : A + 1 were being done, but only the former
-       was being handled correctly.
+       * m32r/m32r.c (m32r_encode_section_info): Likewise.
 
-Tue Jun 11 12:13:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * recog.c (validate_replace_rtx_1): If putting a CONST_INT in a
-       ZERO_EXTEND or SIGN_EXTEND, try to simplify the operation or fail;
-       the semantics of the operation require a non-VOIDmode argument.
+       * mcore/mcore.c (mcore_encode_section_info): Likewise.
 
-       * cse.c (delete_dead_from_cse): Don't delete last insn in a libcall.
+       * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * explow.c (allocate_dynamic_stack_space): Don't clobber SIZE when
-       rounding it.
+       * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * fold-const.c (fold, case COND_EXPR): Ensure we always return an
-       expression in the correct type.
+       * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * expr.c (emit_push_insn): Don't need to put X in register if it
-       is constant; operand_subword_force can do so if needed.
+       * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
 
-       * reload.c (find_reloads): Simplify nested `if' statements.
-       * recog.c (constrain_operands): Likewise.
+       * mips/mips.md (movdi, movsi): Likewise.
 
-       * jump.c (mark_jump_label): Fix typo (extra paren) in last change.
+       * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-Tue Jun 11 10:03:08 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+       * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * collect2.c: New file.
+       * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
 
-       * sched.c (memrefs_conflict_p): Finish removing ASHIFT case.
+       * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
+       ASM_OUTPUT_ASCII): Likewise.
 
-       * emit-rtl.c (operand_subword): Change test of BITS_PER_WORD <
-       HOST_BITS_PER_WORD from compile-time to run-time.
-       * expr.c (emit_push_insn): Ditto.
-       * recog.c (constrain_operands): Ditto.
-       * reload.c (find_reloads): Ditto.
+       * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
+       output_mi_thunk, output_toc): Likewise.
 
-       * jump.c (jump_optimize): Add `continue' after deleting INSN in case
-       where further attempts to optimize the insn are invalid.
-       (mark_jump_label): Don't crash if NEXT == 0.
+       * rs6000/rs6000.md (movsi): Likewise.
 
-Tue Jun 11 09:14:05 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
 
-       * out-m88k.c (legitimize_operand): New function to convert
-       CONST_DOUBLE to SFmode when possible.
-       * m88k.md (cmpdf, adddf3, subdf3, muldf3, divdf3): Use it.
-       * tm-m88k.h: Declare it.
+       * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
 
-       * xm-m88k.h (OBSTACK_CHUNK_SIZE): For DG/UX at least, the default
-       value results in a perfect checkerboard.
+       * v850/v850.c (print_operand, print_operand_address,
+       v850_encode_data_area): Likewise.
 
-Tue Jun 11 07:23:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * expr.c (expand_expr, case FLOAT_EXPR, FIX_EXPR): Don't try to
-       do any partial conversions here; expand_fix and expand_float now
-       handle all modes.
-       * optabs.c (fixtab, fixtrunctab, floattab): Table now contains
-       all modes.
-       (can_fix_p, can_float_p): Use mode as index in tables.
-       (init_fixtab, init_floattab): Likewise.
-       Add support for QImode and HImode operations.
-       (expand_float): Rework to remove dependendence on specific modes.
-       Can only use REAL_VALUE_LDEXP in certain configurations.
-       (expand_fix): Likewise.
-       If can't do operation unsigned, or signed into wider mode, emit a
-       sequence that compares operand with 2**(N-1) and, if larger,
-       subtracts 2**(N-1), converts, and adds it back. 
-       Protect from queue and force not memory at start.
-       * m88k.md (fixuns_truncdfsi2, fixuns_truncsfsi2): Deleted; now done
-       in expand_fix in optabs.c.
+       * config/mips/mips.md (zero_extendsidi2): Always force operand
+       one to memory for mips16.
 
-       * combine.c (expand_field_assignment): Convert SET_SRC to mode of
-       INNER.
-       (simplify_shift_const, case ASHIFTRT): Don't use undefined initial
-       value of MASK.
+Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * explow.c: Include insn-config.h, recog.h, and insn-codes.h.
-       (allocate_dynamic_stack_space): Rework to be more precise in required
-       alignment.  Must maintain alignment of stack to STACK_BOUNDARY at
-       all times (it must not be momentarily misaligned) and must align
-       returned address to BIGGEST_ALIGNMENT. 
-       * Makefile.in (explow.o): Show new includes.
+       * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
+       (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
+       (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
+       (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
+       (min_precision): Result is unsigned.
+       (add_double, neg_double, mul_double): Low word is unsigned.
+       (lshift_double, rshift_double, lrotate_double): Likewise.
+       (rrotate_double, div_and_round_double): Likewise.
+       (tree_floor_log2, compare_tree_int): New functions.
+       (preserve_rtl_expr_temps): New declaration.
+       * c-common.c (declare_hidden_char_array): Use compare_tree_int.
+       (decl_attributes): Use tree_log2 to find alignment.
+       Check for TREE_INT_CST_HIGH for format args.
+       (min_precision): Now unsigned.
+       Use tree_floor_log2.
+       (truthvalue_conversion): Delete long-disabled code.
+       * c-decl.c (finish_struct): Clean up tests on field width.
+       (finish_function): Use compare_tree_int.
+       * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
+       * c-typeck.c (comptypes): Use tree_int_cst_equal.
+       (default_conversion, digest_init): Use compare_tree_int.
+       (build_binary_op): Use integer_all_onesp and compare_tree_int.
+       Fix type errors in forming masks.
+       * calls.c (initialize_argument_information): Use compare_tree_int.
+       * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
+       * except.c (expand_eh_region_start_tree): Use compare_tree_int.
+       * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
+       (store_field): Use compare_tree_int.
+       (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
+       (expand_expr, case ARRAY_REF): Use compare_tree_int.
+       (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
+       (do_store_flag): Use compare_tree_int.
+       * fold-const.c (encode, decode): Low part is always unsigned.
+       (force_fit_type, add_double, neg_double, mul_double): Likewise.
+       (lshift_double, rshift_double, lrotate_double): Likewise.
+       (rrotate_double, div_and_round_double, int_const_binop): Likewise.
+       (fold_convert): Use compare_tree_int.
+       (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
+       (invert_truthvalue, case INTEGER_CST): Likewise.
+       (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
+       * mkdeps.c (deps_dummy_targets): Make I unsigned.
+       * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
+       (lshift_double, rshift_double, lrotate_double, rrotate_double):
+       Likewise.
+       * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
+       (expand_end_case): Use compare_tree_int.
+       (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
+       * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
+       (layout_decl): Likewise.
+       (layout_record, layout_union): Make sizes unsigned.
+       (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
+       (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
+       * tree.c (struct type_hash): hashcode is unsigned.
+       (build_type_attribute_variant, type_hash_list): Likewise.
+       (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
+       (attribute_hash_list, build_array_type, build_method_type): Likewise.
+       (build_complex_type): Likewise.
+       (real_value_from_int_cst): Remove unneeded casts.
+       (integer_all_onesp): Add casts.
+       (tree_floor_log2, compare_tree_int): New functions.
+       (build_index_type): Use tree_int_cst_sgn.
+       * varasm.c (assemble_variable): Use compare_tree_int.
+
+2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
+
+       * cpphash.c (collect_expansion): Also catch ## at start of macro.
+
+       * varasm.c (make_decl_rtl): Don't add a number to members of
+       local classes.
+       (make_function_rtl): Likewise.
+
+2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
+       patch from 2000-01-28.
+
+2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/sh/sh.c: (barrier_align): Handle a delay slot that is
+       filled with an insn from the jump target.
+
+2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
+       (c4x_external_ref): Likewise.
+       * config/c4x/c4x.c (struct name_list): Likewise.
+
+1999-12-16  Ben Collins  <bcollins@debian.org>
+
+       * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
+       argument to genmultilib.
+       * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
+       the contents into the multilib.h header.
+       * gcc.c: Declare multilib_exclusions for the specs file.
+       (set_multilib_dir): Use it.
+       (print_multilib_info): Likewise.
+       * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
+       to pass to genmultilib.
+
+2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (built_in_class_names, built_in_names): Constify a
+       char*.
+
+       * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
+       int.
+       (_mcleanup): Ensure value matches format specifier in sprintf.
+
+       * cpphash.c (special_symbol): Don't needlessly cast away
+       const-ness.
+
+       * cppinit.c (base_name): Delete unused prototype.
+
+       * mkdeps.c (deps_init): Make definition K&R safe.
+
+       * tree.h (built_in_class_names, built_in_names): Constify a
+       char*.
+
+2000-03-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
+       floating point instructions for epilogue delay.
+
+       * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
+       to gas if it supports .register pseudo.
+
+       * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
+       LONG_DOUBLE_TYPE_SIZE if not defined.
+       Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
+       LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
+       * real.c: Likewise.
+       * gengenrtl.c: Likewise.
+       * print-rtl.c: Likewise.
+       * rtl.c: Likewise.
+       * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
+       MASK_LONG_DOUBLE_128.
+       * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
+       * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
+       * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
+       (SUBTARGET_SWITCHES): Define.
+       (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
+       with -mlong-double-128.
+       (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
+       (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
+       (CC1_SPEC): Include -mlong-double-{64,128} as needed.
+       * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
+       (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
+       with -mlong-double-128.
+       (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
+       (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
+       * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
+       TARGET_LONG_DOUBLE_128): Define.
+       * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+       * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
+       long double on TARGET_ARCH64.
+
+2000-03-06  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (free_temps_for_rtl_expr): Don't free slots
+       that have been pushed into a higher level.
+
+       Revert this patch:
+       2000-03-05  Mark Mitchell  <mark@codesourcery.com>
+
+2000-03-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * basic-block.h (ALLOCA_REG_SET): Remove.
+       (INITIALIZE_REG_SET): New macro.
+       * flow.c (update_life_info): Use it.
+       (calculate_global_regs_live): Likewise.
+       (propagate_block): Likewise.
+       * global.c (build_insn_chain): Likewise.
+       * haifa-sched.c (schedule_region): Likewise.
+
+2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
+
+       * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
+       (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
+       (DWARF_ARANGES_PAD_SIZE): New define.
+       (output_aranges): Use it to pad the address range header.
+       (DWARF_ROUND): Fix for non power of 2 rounding.
+
+2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
+
+       * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
+
+2000-03-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.def (RTL_EXPR): Update documentation.
+       * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
+       * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
+       * function.c (preserve_rtl_expr_temp): New function.
+       (preserve_rtl_expr_temps): Likewise.
+       (preserve_rtl_expr_result): Use it.
+
+       Revert this patch:
+       2000-03-04  Mark Mitchell  <mark@codesourcery.com>
+
+2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
+
+       * regmove.c (copy_src_to_dest)  Do not create src->dest move
+       for unchanging destination.
+
+2000-03-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.h (struct sequence_stack): Remove rtl_expr.
+       (struct emit_staus): Likewise.
+       (seq_rtl_expr): Remove.
+       * tree.h (free_temps_for_rtl_expr): Don't declare.
+       (start_sequence_for_rtl_expr): Likewise.
+       * rtl.h (preserve_rtl_expr_result): Likewise.
+       * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
+       (start_sequence_for_rtl_expr): Remove.
+       (push_topmost_sequence): Don't save sequence_rtl_expr.
+       (pop_topmost_sequence): Remove comment about not restoring it.
+       (end_sequence): Don't set seq_rtl_expr.
+       (init_emit): Don't initialize it.
+       (mark_sequence_stack): Don't mark it.
+       (mark_emit_status): Likewise.
+       * except.c (protect_with_terminate): Use
+       start_sequence_for_rtl_expr, not start_sequence.
+       * expr.c (expand_expr, case RTL_EXPR): Don't call
+       preserve_rtl_expr_result or free_temps_for_rtl_expr.
+       * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
+       (preserve_rtl_expr_result): Remove.
+       (free_temps_for_rtl_expr): Likewise.
+       (pop_temp_slots): Likewise.
+       (mark_temp_slot): Don't mark the rtl_expr.
+       * stmt.c (expand_start_stmt_expr): Use start_sequence, not
+       start_sequence_for_rtl_expr.
+
+2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * mkdeps.c, mkdeps.h: New files.
+       * po/POTFILES.in: Add them.
+       * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
+       (cpplib.o, cppinit.o): Depend on mkdeps.h.
+       (mkdeps.o): New target.
+
+       * cppfiles.c: Delete deps_output.
+       * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
+       OBJECT_SUFFIX, and base_name.
+       (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
+       the include hash.
+       (initialize_dependency_output): Use deps_init,
+       deps_add_target, deps_calc_target, and deps_add_dep.  Remove
+       all the unnecessary string bashing.
+       (cpp_finish): Use deps_write.  Remove an unnecessary nesting
+       level.
+       * cpplib.c (do_include): Use deps_add_dep.
+       * cpplib.h (struct cpp_reader): Replace deps_buffer,
+       deps_allocated_size, deps_size, deps_column members with
+       single pointer to a struct deps.  Delete prototype of
+       deps_output.
 
-Tue Jun 11 07:22:54 1991  Matthew Self  (mself at next.com)
+       * cppinit.c: Fix thinko in previous patch.
 
-       * m68k.md:  Change incorrect reference to -m68040-fp to -m68040-only.
-       Fix several spelling errors.
+Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * m68k.md (fix_trunc*f*i2):  New insn's to replace fintrz on the
-       '040.  These emit a sequence of insn's to change the rounding mode
-       to round-to-zero, perform the truncation, and restore the rounding
-       mode. 
+       * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
+       * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
+       (mode_for_size_tree): New function.
+       (layout_decl, layout_type): Call it and clean up BLKmode checks.
+       * tree.h (mode_for_size_tree): New declaration.
 
-Mon Jun 10 09:57:31 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
 
-       * c-lang.c (GNU_xref_{begin,end}): Add stub functions for xref info.
+2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
 
-       * cplus-decl.c (record_builtin_type): Add support for handling
-       builtin types' nicknames (e.g. "unsigned long" for "long unsigned
-       int").
+       * stmt.c (is_body_block): Move...
+       * dwarfout.c, dwarf2out.c: ...from here.
+       * tree.h: Declare it.
+       * emit-rtl.c (remove_unnecessary_notes): Don't remove the body block.
+       * final.c (final_start_function): Do call remove_unnecessary_notes
+       when scheduling.
 
-       * expmed.c (struct algorithm): Change array size from BITS_PER_WORD
-       to MAX_BITS_PER_WORD.
-       gcc.texinfo: Document MAX_BITS_PER_WORD.
+2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
 
-Mon Jun 10 07:45:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
 
-       * combine.c (try_combine): When making an I1 from an I2 that is
-       a PARALLEL, give the new I1 the same INSN_UID as I2.
+       * cpplib.h (_dollar_ok): New macro.
+       (is_idchar, is_idstart): Use it.
+       (IStable): Rename to _cpp_IStable.  Declare it const if
+       gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
+       (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
+       is_space): Update for renamed IStable.
 
-       * recog.c (constrain_operands, case 'p'): Pass operand mode
-       (from match_operand) to strict_memory_address_p.
+       * cppinit.c: Delete all references to FAKE_CONST and CAT
+       macros. Define init_IStable as empty macro if gcc >=2.7 or
+       C99. Change TABLE() to ISTABLE and hardcode name of table.
+       (cpp_start_read): Don't change the IStable based on
+       dollars_in_ident.
 
-       * m68k.md (andsi3): bclr does not set the condition codes in the
-       standard way.
+       * cpphash.c (unsafe_chars): Add pfile argument.  All callers
+       changed.  Handle '$' for char1 correctly.
+       * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
 
-Sun Jun  9 11:16:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * cppexp.c (tokentab2): Make const.
+       (cpp_lex): Make toktab const.
+       * cppinit.c (include_defaults_array): Make const.
+       (initialize_standard_includes): Make default_include const.
 
-       * reload.c (find_reloads): Swap preferred_class and pref_or_nothing
-       when we swap commutative operands.
+2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
 
-       * combine.c (subst, simplify_shift_const): Treat UDIV and MULT
-       with a second operand of a constant that is a power of two as the
-       appropriate shift if it feeds or is fed by a shift.
+       * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
+       (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
+       (gen_decl_die): Likewise.
+       * dwarfout.c (dwarfout_file_scope_decl): Likewise.
+       (output_decl): Likewise.
 
-       * expmed.c (expand_divmod): When searching for the best mode to
-       perform the computation, take into account the fact that we sometimes
-       do a shift, not a divide.
+       * varasm.c (make_function_rtl): If we change the name used in the
+       rtl, update DECL_ASSEMBLER_NAME accordingly.
+       (make_decl_rtl): Likewise.
 
-       * expmed.c (emit_store_flag): Correctly handle "a = b < 0;" if A
-       is narrower than B.
-       Don't check for STORE_FLAG_VALUE equal to just the sign bit of
-       OP0 if the width of its mode is larger than HOST_BITS_PER_INT.
-       Use switch rather than if/elseif/elseif.
+       * toplev.c (rest_of_compilation): Tweak formatting.
 
-       * combine.c (simplify_shift_const, shift cases): We were not forming
-       the mask correctly when VAROP is a LSHIFTRT and narrower than X;
-       simplify the mask formation by using significant_bits and
-       simplify_binary_operation.
+       * toplev.c (rest_of_compilation): find_loop_tree_blocks before
+       remove_unnecessary_notes.
+       (debug_ignore_block): New fn.
+       * toplev.h: Declare it.
+       * emit-rtl.c (remove_unnecessary_notes): Call it.
+       * dwarf2out.c (dwarf2out_ignore_block): New fn.
+       * dwarf2out.h: Declare it.
+       * final.c (final_start_function): Don't call remove_unnecessary_notes
+       if we did insn scheduling.
 
-       * reload.c (make_memloc): Copy RTX_UNCHANGING_P from REG to MEM.
-       (find_reloads_address, find_reloads_address_1): Don't shortcut
-       reloading the address in reg_equiv_address; always call
-       find_reloads_address on it.
+2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * recog.c (constrain_operands, case 'p'): Validate address if
-       testing strictly.
+       * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
+       * cpplib.h: Delete SET_CPP_PEDANTIC.
 
-       * out-alliant.c, out-m68k.md (output_move_double): Extraction of
-       parts of CONST_INT was backwards; these machines are words-big-endian.
+Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-Sat Jun  8 12:19:26 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
+       result is a RECORD_TYPE.
 
-       * sparc.md: Remove special-case shift insns which load and shift
-       memory-based operands.  Combine now does this for us.  Also change
-       abs patterns so that they consistently print the negation followed
-       by the mov on a single line.
+2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
 
-       * reload1.c (choose_reload_regs): Cast `enum reg_class' values to
-       `int' when using them as array indicies.
+       * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
 
-       * gnulib2.c (LONG_TYPE_SIZE): Don't inherit the definition of
-       LONG_TYPE_SIZE from tm.h, since that may be target_flag-specific.
-       Instead synthesize the value from `sizeof (long)'.
+2000-03-03  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-gc.c (build_m_desc): Figure out whether the i_desc should
-       constitute a defn of its type or not.  Analogous to May 26 change
-       for instance variables.
+       * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
+       addition over compliments over shifts.
 
-Sat Jun  8 07:11:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * combine.c (simplify_and_const_int): Detect and remove redundant
-       alignment operation.
-       (significant_bits, case REG): Realize that the stack pointer might
-       be aligned.
-       (significant_bits, case PLUS, MUNUS, MULT, DIV, UDIV): Track low-order
-       bits of zero as well as high-order zero bits (so we detect alignment
-       operations).
-       (record_value_for_reg): If updating a register, try to substitute its
-       old value into the expression for better tracking of values.
+       * reload1.c (reload_combine_note_use): Handle return register USEs.
+       REG case: Handle multi-hard-register hard regs.
 
-       * a29k.md (fmac/dmac): Delete incorrect patterns.
+Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-Thu Jun  6 19:08:29 1991  Sean Fagan  (sef at cygint.cygnus.com)
+       * md.texi: Document use of '*' in insn pattern name.
 
-       * final.c (output_source_line): Say we are on line number 1 if
-       sdb_begin_function_line is -1, not 0.
+2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
 
-Thu Jun  6 08:01:05 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * calls.c (special_function_p): operator new may not be malloc-like.
 
-       * stor-layout.c (get_best_mode): Don't assume GET_MODE_SIZE (SImode)
-       is UNITS_PER_WORD; if SLOW_BYTE_ACCESS defined, try to return the
-       mode whose size is UNITS_PER_WORD.
+       * gcse.c (dump_hash_table): Really fix error in last change.
 
-       * sparc.md (floatsisf2, floatsidf2): Add missing mode for
-       operand 1; use const_int_operand as predicate.
+2000-03-02  Denis Chertykov  <denisc@overta.ru>
 
-       * cse.c (canon_reg): Add arg INSN; if replacing a pseudo with a hard
-       register or vice versa, use validate_change to ensure the insn
-       remains valid.
-       All callers changed; most pass zero since they validate replacement.
-       (cse_insn): Use validate_change on result of canon_reg when
-       required.
+       * avr.c (print_operand): Use print_operand_address instead of
+       output_addr_const.
+       * avr/libgcc.S: Cleanup code.
 
-       * c-common.c (combine_strings): Use WCHAR_BYTES instead of
-       UNIT_PER_WORD for the size of a wide char.
-
-       * emit-rtl.c (gen_lowpart_common): Always extract integral modes
-       from integer CONST_INTs and CONST_DOUBLEs.
+2000-03-02  Richard Henderson  <rth@cygnus.com>
 
-       * integrate.c (copy_for_inline, copy_rtx_and_substitute): Don't
-       try to extract a float from a fixed-mode CONST_DOUBLE.
-       (copy_for_inline, copy_rtx_and_substitute, restore_constants):
-       Declare target of REAL_VALUE_FROM_CONST_DOUBLE to be REAL_VALUE_TYPE.
+       * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
 
-       * local-alloc.c (update_equiv_regs): Fix typo in testing
-       reg_basic_block.
+2000-03-02  Mark Mitchell  <mark@codesourcery.com>
 
-Wed Jun  5 09:15:09 1991  Ken Raeburn  (raeburn at watch.com)
+       * tree.h (TYPE_ALIGN_UNIT): New macro.
 
-       * Eliminate unneeded binding levels when overloading template class
-       names:
-       * cplus-pt.c (overload_template_name): Accept second argument
-       classlevel, indicating that new decl should be pushed into current
-       class binding level; otherwise, assume current level is okay to use.
-       Callers changed.
-       (undo_template_name_overload): New second argument classlevel
-       indicates where binding for variable was made.  Callers changed.
+2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * cplus-parse.y (structsp): Call undo_template_name_overload in all
-       appropriate cases.
+       * i386.c: (constant_call_address_operand): Reject CONST_INT.
 
-       * Get interface/implementation flags set properly on methods in
-       class templates, and use it:
-       * cplus-lex.c (store_pending_inline): If inside a class, walk up
-       through nested classes to top level looking for template parameters.
-       For class methods, use current interface flag settings rather than
-       flags for class.
-       (extract_interface_info): No longer static.
-       (do_pending_inlines, process_next_inline): Call
-       extract_interface_info to get interface flags set properly after
-       changing file names.
-       * cplus-pt.c (instantiate_class_template): Ditto.
-       (end_template_instantiation): Ditto.
-       (do_pending_expansions): If interface/implementation flags of
-       containing class are set, use them.
-       * cplus-tree.h (interface_unknown): Added declaration.
+2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
 
-Wed Jun  5 07:36:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
+       for the buffer.
+       (SET_CPP_PEDANTIC): New macro.
+       * cpplib.c (do_include): Don't bother checking system_header_p.
+       (do_warning, do_ident, do_assert, do_unassert): Likewise.
+       * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
 
-       * reload.c (find_reloads_address): Unshare a MEM if its address is
-       the address of a constant pool location.
+       * function.h (struct expr_status): Add x_arg_space_so_far.
+       (arg_space_so_far): New macro.
+       * expr.c (init_expr): Initialize it.
+       * calls.c (emit_call_1): Reset it.
+       (compute_argument_block_size, expand_call): Use it.
+       (expand_call, store_one_arg): Increment it.
 
-       * optabs.c (expand_binop): Fix typos in multi-word addition; had
-       MODE for SUBMODE.
+Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * reload1.c (alter_reg): Correctly delete insn that makes a REG
-       equivalent to a MEM in the case where the MEM is the SET_DEST.
+       * varasm.c (output_constant): Strip off a CONVERT_EXPR to
+       a UNION_TYPE.
 
-       * a29k.md (negdf2): Add missing alternative in operands 2.
-       (movdi): Change "i" constraint to "n".
-       Split for constant integer as input; split cannot fail.
-       Correct typo in DEFINE_SPLIT (DFmode for DImode).
-       * out-a29k.c (gen_reg_or_integer_constant_operand): New function.
+2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * configure: Fix typo in reference to tm-sun3-nfp.h.
+       * cppfiles.c (cpp_read_file): New function.
 
-Wed Jun  5 06:56:10 1991  Matthew Self  (mself at next.com)
+       * cpphash.c (collect_expansion): Make sure to reset last_token
+       to NORM when we hit a string.  Handle trailing whitespace
+       properly when the expansion is empty.
+       (create_definition): Disable line commands while parsing the
+       directive line.
+       (dump_definition): If pfile->lineno == 0, output a line
+       command ahead of the dump, and add a trailing newline.
 
-       * c-parse.y, objc-parse.y (attrib): Always pass aligned attribute
-       through.  Return $1 on failure rather than NULL_TREE for consistency.
-
-       * c-common.c (decl_attributes): Warn if requested alignment is not
-       a power of two.  Also warn if decl is not a VAR_DECL or a FIELD_DECL,
-       since specifying alignment makes no sense for a TYPE_DECL, and is
-       not implemented for a FUNCTION_DECL.
-
-       * c-parse.y, objc-parse.y (initdcl, notype_initdcl): Call
-       decl_attributes before finish_decl in order for alignment attribute
-       to take effect.
-       
-       * varasm.c (assemble_variable): Warn if DECL_ALIGN is greater than
-       MAX_OFILE_ALIGNMENT, if defined.  This allows errors to be
-       detected with formats like a.out which support a maximum alignment
-       of 4.
-
-       * c-parse.y, objc-parse.y (component_declarator): Call decl_attributes
-       with correct args.
-
-       * stor-layout.c (layout_record, layout_union): Do not clamp struct
-       alignment at BIGGEST_ALIGNMENT, since individual fields may have
-       requested greater alignment than this.  This check shouldn't have
-       done anything anyway.
-
-       * c-parse.y (unary_expr):  When alignof is applied to an expression,
-       call c_alignof_expr so that we can check DECL_ALIGN instead of calling
-       c_alignof (TYPE_ALIGN (TREE_TYPE (expr))).
-
-       * c-typeck.c (c_alignof_expr):  New function to compute alignof for
-       expr's.  Returns DECL_ALIGN for VAR_DECL's and FIELD_DECL's.  Also
-       return 1 after reporting error about applying alignof to bitfields.
-
-       * c-tree.h (c_alignof_expr): Add declaration.
-
-       * varasm.c (assemble_variable):  MAX_OFILE_ALIGNMENT defaults to
-       BIGGEST_ALIGNMENT if not defined in config.h.
-
-Wed Jun  5 06:55:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (mov*): Change the interface to emit_move_sequence.
-       * out-m88k.c (emit_move_sequence): Similar to the sparc version.
-
-       * tm-m88k.h (SIZE_TYPE): Specify as unsigned int.
-
-       * xm-m88k.h (HOST_BITS_PER_LONGLONG): Define.
-
-Wed Jun  5 01:45:07 1991  Sean Fagan  (sef at cygint.cygnus.com)
-
-       * sdbout.c (sdbout_symbol):  don't output definition information for
-       a nested function inside the parent function; this makes COFF
-       assemblers upset.
-
-Tue Jun  4 17:35:13 1991  Sean Fagan  (sef at cygint.cygnus.com)
-
-       * function.c (trampoline_address): make the RTL_EXPR node temporary,
-       not momentary, so that the trampoline_list doesn't become garbage.
-       Fix made by jim wilson (wilson@cygnus.com).
-
-Tue Jun  4 09:40:59 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * expr.c (move_block_to_reg): Fix typo in last change.
-
-       * local-alloc.c (update_equiv_regs): Check for reg_n_refs == 2,
-       not loop_depth * 2.
-
-       * reorg.c (fill_simple_delay_slots): Clear INSN_DELETED_P on insns
-       placed in current_function_epilogue_delay_list.
-
-       * make-rs6000 (ALLOCA_FLAGS, ALLOCA_FINISH): Add override to
-       compensate for the fact that the RS/6000 C compiler has no -S.
-
-       * out-rs6000.c (easy_fp_constant): Use operand_subword.
-       (print_operand): Use INT_P and INT_LOWPART to allow accepting both
-       CONST_INT and CONST_DOUBLE for integers.
-
-       * rs6000.md (floatsidf2, floatunssidf2): Rework these to emit only
-       two insns, each of which has DImode or DFmode operands.  Then
-       split the funny DImode insn to generate it.
-       (fix_truncdfsi2, fixuns_truncdfsi2): Surround our call with
-       REG_LIBCALL/REG_RETVAL notes.
-       Use operand_subword.
-       (movsf, movdf): Correctly handle a pseudo passed during reload.
-       Use operand_subword.
-       Split moves involving "easy" FP constants.
-       (subtract-and-branch): Disable for now, to avoid output reload in jump.
-
-       * tm-rs6000.h (WCHAR_TYPE): Add definition.
-       (INT_REGNO_P): Fix typo; register 31 is a normal register.
-       (LEGITIMATE_CONSTANT_P): The only FP constants that are valid are
-       the "easy" ones.
-
-       * a29k.md (negdf2): Use XOR when not involving accumulator.
-       Add SCRATCH so we dont use gr122.
-       Handle case where input and output are same register.
-       (negsf2): Use SCRATCH.
-       (DImode operations): Use operand_subword, not gen_{low,high}_part.
-       (movsf, movdf, movdi): Always split if we can look inside CONST_DOUBLE.
-       Use operand_subword.
-       Don't split into separate words in DEFINE_EXPAND.
-       * out-a29k.c (in_operand): Account for fact that integer CONST_DOUBLE
-       is VOIDmode.
-       (extract_subword): Deleted.
-       (print_operand): Add macros INT_P and INT_LOWPART so we can accept
-       either CONST_INT or CONST_DOUBLE.
-
-       * romp.md (movdi, movdf, negsf2, negdf2): Use operand_subword and
-       operand_subword_force, instead of gen_{high,low}part.
-       Use force_const_mem instead of force_const_double_mem.
-
-       * m88k.md (movdi): Remove 'F' constraint; 'n' now includes integer
-       CONST_DOUBLE.
-       (anddi3, iordi3, xordi3): Likewise.
-       Use operand_subword to extract individual words.
-       * out-m88k.c (output_load_const_{float,double,dimode}): Use
-       operand_subword.
-
-       * Makefile.in (emit-rtl.o): Now includes expr.h.
-       * calls.c (expand_call): Pass mode to move_block_to_reg.
-       * combine.c (subst, case SUBREG): Simplify SUBREG of hard register
-       and some SUBREGs of constants.
-       (gen_lowpart_for_combine): If object is desired mode, always return it.
-       Use gen_lowpart_common for most cases; just support MEM and
-       surrounding with a SUBREG here.
-       * cse.c (insert): CONSTANT_P includes CONST_DOUBLE.
-       (fold_rtx): Use MODE for GET_MODE (X).
-       (fold_rtx, case SUBREG): Handle simple cases of folding SUBREGs.
-       (fold_rtx, case MEM): Use operand_subword and gen_lowpart_if_possible
-       to get parts of constant instead of gen_lowpart and gen_highpart.
-       (gen_lowpart_if_possible): Use gen_lowpart_common for most cases.
-       * expr.c: Include expr.h.
-       (gen_lowpart_common): New function, from gen_lowpart.
-       (gen_lowpart): Use gen_lowpart_common for most cases; just handle MEM.
-       (gen_highpart): Deleted.
-       (subreg_lowpart_p): Test WORDS_BIG_ENDIAN in `if', not `#if'.
-       (operand_subword, operand_subword_force): New functions.
-       * explow.c (plus_constant): Handle adding CONST_INT to CONST_DOUBLE.
-       Rework to use switch statement.
-       Remove obsolete OLD_INDEXING code.
-       (plus_constant_for_output): Use plus_constant for most cases.
-       (break_out_memory_refs): Refine which constants get broken out.
-       * expmed.c (store_bit_field, extract_bit_field): Don't use
-       gen_highpart for multi-word fields; instead, loop and use
-       operand_subword.  We now support fields more than two words long.
-       (mask_rtx, lshift_value): Just pass high and low words to
-       immed_double_const; it will mask and choose CONST_INT vs. CONST_DOUBLE.
-       * expr.c (convert_move): Use operand_subword instead of gen_highpart.
-       Don't assume GET_MODE_SIZE (DImode) > UNITS_PER_WORD.
-       (move_block_to_reg): Add MODE arg.
-       Use operand_subword_force.
-       (move_block_from_reg): Use operand_subword.
-       (move_block_from_reg, move_block_to_reg, use_rgs):
-       Don't assume GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
-       (emit_move_insn, emit_push_insn): Likewise.
-       Use operand_subword and operand_subword_force.
-       (expand_expr, case INTEGER_CST): Just call immed_double_const.
-       (expand_expr, cases FIX_TRUNC_EXPR, FLOAT_EXPR): Don't assume
-       GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
-       (expand_builtin): Likewise.
-       (do_jump_by_parts_{greater,equality): Likewise.
-       Use operand_subword_force.
-       * expr.h (operand_subword): Remove declaration from here.
-       (validize_mem): Add missing declaration.
-       * final.c (final_scan_insn): If assembler code string is "#",
-       try to split insn.
-       Ignore insns with INSN_DELETED_P set.
-       (alter_subreg): Remove erroneous code for CONST_DOUBLE.
-       (output_addr_const): Integer CONST_DOUBLEs are now VOIDmode.
-       * fold-const.c (add_double): No longer static.
-       * integrate.c (copy_for_inline, copy_rtx_and_substitute):
-       Use validize_mem to validate force_const_mem's result.
-       (subst_constants, case SUBREG): Use operand_subword and
-       gen_lowpart_common instead of gen_lowpart and gen_highpart.
-       (restore_constants): Don't assume all CONST_DOUBLEs are floating.
-       Use validize_mem to validate force_const_mem's result.
-       * optabs.c (expand_binop,, expand_unop): Don't assume
-       GET_MODE_SIZE (SImode) == UNITS_PER_WORD.
-       Use operand_subword_force.
-       (operand_subword): Deleted from here.  New version in emit-rtl.c.
-       * recog.c (validate_replace_rtx_1): Check for any constant,
-       not just CONST_INT.
-       (constrain_operands, case 'm', 'o'): Any constant OK if strict < 0.
-       (constrain_operands, case 'E'): Must have host and target word sizes
-       the same.
-       (constrain_operands, case 's', 'n'): CONST_DOUBLE can be integer.
-       * reload.c (find_reloads, case 'm', 'o', 'E', 's', 'n'): Likewise.
-       Don't call force_const_double_mem; use force_const_mem instead.
-       (find_reloads_toplev): Likewise.
-       Use gen_lowpart_common to get low part of constant.
-       * rtl.h (gen_highpart, force_const_double_mem): Deleted.
-       (gen_lowpart_common, operand_subword, operand_subword_force):
-       New declarations.
-       * varasm.c (const_double_chain): Renamed from real_constant_chain.
-       (immed_double_const): For integer constants, perform any needed
-       masking and make either CONST_INT or CONST_DOUBLE.
-       (force_const_double_mem): Deleted; would need a mode arg added
-       which would make it almost identical to force_const_mem.
-       * out-vax.c (split_quadword_operands): Use operand_subword instead
-       of gen_lowpart and gen_highpart.
-
-       * function.c (find_replacement): New function.
-       (fixup_var_refs_insns): Pass pointer to listhead of (new)
-       fixup_replacement structures; if any entries were pseudos, copy from
-       memory to the pseudo.
-       (fixup_var_refs_1): New arg REPLACEMENTS; provide that arg in
-       recursive calls.
-       Use find_replacements to ensure we don't break any MATCH_DUPs.
-
-Tue Jun  4 05:07:53 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * stmt.c (pushcase, pushcase_range): Take new parameter DUPLICATE.
-       Use this to store existing LABEL_DECL if LABEL is a duplicate.
-       * c-parse.y, cplus-parse.y, objc-parse.y, stmt.c: All callers
-       changed.
+       * cppinit.c (append_include_chain): Add fifth argument, which
+       indicates whether or not system headers are C++ aware.
+       (initialize_standard_includes): New function,
+       broken out of read_and_prescan.  Pass 'cxx_aware' value from
+       the include_defaults_array on to append_include_chain.
+       (dump_special_to_buffer): Const-ify char array.
+       (builtin_array): Don't dump __BASE_FILE__.
+       (cpp_start_read): Use cpp_read_file.  Reorder code for
+       clarity.  Don't output line commands here for -D/-A/-U
+       switches.  Don't call deps_output for files included with
+       -include or -imacros.
 
-Mon Jun  3 17:19:40 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * cpplib.c (do_define): Don't pay any attention to the second
+       argument.
+       (cpp_expand_to_buffer): Disable line commands while scanning.
+       (output_line_command): Work in the file buffer.
+       * cpplib.h: Remove no_record_file flag from struct cpp_reader.
+       Fix formatting of comments.  Prototype cpp_read_file.
 
-       * cplus-expr.c (decl_in_memory_p): New function.
-       * cplus-typeck.c (mark_addressable): Test `decl_in_memory_p' instead
-       of testing memory_operand, since the DECL_RTL of a decl may be a
-       (MEM ...) by not a valid memory address.
+Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * cplus-typeck.c (mark_addressable): When we decide that a static
-       const variable must go to memory, make sure that its rtl is
-       allocated from the correct obstack.
+       * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
+       reference the language-equivalent of sizetype.
+       * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
+       * fold-const.c (size_binop, size_diffop): Put back checks.
+       * gcse.c (dump_hash_table): Fix minor error in last change.
+       * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
+       Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
+       all sizetypes.
 
-       * cplus-decl.c (grokdeclarator): Replace undocumented BREAK_C_TAGS
-       #define control with comments explaining why or how it is correct
-       for GNU C++ to break C's notions of what a tag is.
+Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * cplus-call.c (convert_harshness): Replace undocumented #if
-       AMBIGUOUS_WORKING control with a comment explaining the actions
-       where this control used to be.
+       * calls.c (expand_call)  Do not attempt to combine stack adjustments
+       with inhibit_defer_pop set.
 
-Mon Jun  3 15:07:47 1991  Sean Eric Fagan  (sef at kithrup)
+2000-03-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * stor-layout.c (layout_decl): Allow front-ends to explicitly set
+       the DECL_SIZE for a FIELD_DECL.
+
+2000-03-01  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/inclhack.tpl: remove unused symlinks
+       * fixinc/README: GCC Maintainer info
+       * fixinc/inclhack.sh: regen
+       * fixinc/fixincl.sh: regen
+
+2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpphash.c (collect_expansion): Trim trailing white space
+       from macro definitions, but don't go past the last insertion
+       point.
+
+Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (mulqi3): New pattern.
+
+2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
+       token types.
+       (struct cpp_reader): Add parsing_if_directive and
+       parsing_define_directive flags.
+       (struct cpp_options): Remove output_conditionals flag.
+       (check_macro_name): Delete prototype.
+
+       * cpphash.h (struct macrodef): Delete.
+       (struct reflist): Separate from struct definition.
+       (struct definition): Remove unused fields.  Add column number.
+       (create_definition): Returns a DEFINITION *.  Takes a
+       cpp_reader * and an int.
+
+       * cpphash.c (SKIP_WHITE_SPACE): Delete.
+       (PEEKC): Copy defn from cpplib.c.
+       (rest_extension, REST_EXTENSION_LENGTH): Delete.
+       (struct arg): New.
+       (struct arglist): Simplify.
+       (collect_expansion): Rewrite.  Get tokens by calling
+       cpp_get_token.  Add more error checking.
+       (collect_formal_parameters): New function, broken out of
+       create_definition and reworked to use get_directive_token.
+       (create_definition): All real work is now in collect_expansion
+       and collect_formal_parameters.  do_define handles finding the
+       macro name.  Return a DEFINITION, not a MACRODEF.
+       (macroexpand): Replace bcopy with memcpy throughout.  Replace
+       character-at-a-time copy loop with memcpy and pointer increments.
+       (compare-defs): d1->argnames / d2->argnames might be null.
+
+       * cpplib.c (copy_rest_of_line): Delete function.
+       (skip_rest_of_line): Do all the work ourselves.
+       (skip_string): New function.
+       (parse_string): Use skip_string.
+       (get_macro_name): New function.
+       (check_macro_name): Delete.
+       (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
+       (cpp_skip_hspace): Use CPP_BUMP_LINE.
+       (handle_directive): ICE if we're called on a macro buffer.
+       (do_define): Determine macro name and type (funlike/objlike)
+       here.  Expunge all uses of MACRODEF.
+       (cpp_push_buffer): Set line_base to NULL.
+       (do_undef, read_line_number): Don't worry about getting a POP token.
+       (eval_if_expression): Set/reset parsing_if_directive around
+       cpp_parse_expr. Don't clear only_seen_white.
+       (skip_if_group): Remove output_conditionals logic.  Use
+       skip_rest_of_line.
+       (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
+       tokens under appropriate conditions.
+       (cpp_unassert): Call do_unassert not do_assert.  Oops.
+
+       * cppexp.c (parse_defined): New function, break out of
+       cpp_lex.
+       (cpp_lex): We now get CPP_ASSERTION tokens and can check them
+       ourselves, with cpp_defined.
+       * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
+
+       * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
+       * gcc.dg/strpaste-2.c: New.
+
+2000-02-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * fold-const.c (size_binop): Don't asert inputs are the same and
+       have TYPE_IS_SIZETYPE set.
+       (size_diffop): Likewise.
+
+2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarfout.c (output_block): Output abstract blocks even if they
+       don't have TREE_ASM_WRITTEN set.
+
+       * calls.c (emit_library_call): Check for null REG.
+
+2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
+
+       * c-decl.c (current_function_decl): Move to toplev.c.
+       (init_decl_processing): Don't add current_function_decl as a ggc
+       root here.
+       * dbxout.c (dbxout_symbol): Change return type to int.
+       (dbxout_symbol_location, dbxout_syms): Likewise.
+       (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
+       any locals. Use current_function_func_begin_label if set.
+       * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
+       * dwarf2out.c (dwarf2out_begin_prologue): Set
+       current_function_func_begin_label.
+       * final.c (final_start_function): Reset it.
+       * toplev.c (current_function_decl): Define it here.
+       (current_function_func_begin_label): New variable.
+       (main): Add both as ggc roots.
+       * tree.h (current_function_func_begin_label): Declare.
+
+Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gcse.c: Cleanups throughout: mostly white-space, but also
+       some minor rearrangement of code.
+
+Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
+       returns a PARALLEL.  Use emit_group_load and use_group_regs
+       as needed.
+       (emit_library_call_value): Similarly.
+
+       * pa/t-pa: Use quadlib.c instead of quadlib.asm.
+       * pa/quadlib.asm: Remove.
+       * pa/quadlib.c: New file.
+
+       * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
+       * configure: Rebuilt.
+
+2000-02-29  Philip Blundell  <pb@futuretv.com>
+
+       * config/arm/conix-elf.h: New file.
+       * configure.in (arm*-*-conix*): New configuration.
+       * configure: Regenerate.
+
+2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (gen_block_die): Output abstract blocks even if they
+       don't have TREE_ASM_WRITTEN set.
+
+Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Eliminate DECL_FIELD_SIZE.
+       * builtins.c (built_in_class_names, built_in_names): New variables.
+       * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
+       * expr.c (expand_expr, case COMPONENT_REF): Get field size from
+       DECL_SIZE, not DECL_FIELD_SIZE.
+       * print-tree.c (print_node): Remove code that prints extra blank
+       lines in some cases.
+       Properly handle inline and builtin function cases.
+       * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
+       * tree.h (built_in_class_named, built_in_names): New declarations.
+       (union tree_decl): Rename internal unions to u1 and u2 and change
+       some of their components.
+       Add new field built_in_class.
+       (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
+       Reflect above changes.
+       (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
+       (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
+       * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
+       (encode_field_decl): Likewise; also remove obsolete test for bitfield.
+
+2000-02-28  Dmitri Makarov  <dim@windriver.com>
+
+       * extend.texi: Document ARM's support for long/short calls.
+
+       * invoke.texi: Document ARM's -mlong-calls command line switch.
+
+       * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
+       (arm_encode_call_attribute): Add prototype.
+       (arm_set_default_type_attribute): Add prototype.
+       (arm_strip_name_encoding): Add prototype.
+
+       * config/arm/arm.c (arm_init_cumulative_args): replace
+       initialisation og 'long_calls' field with initialisation of
+       'call_cookie' field.
+       (enum arm_pragma_enum): New enum.
+       (arm_pragma_long_calls): New static variable.
+       (arm_process_pragma): Also process "#pragma long_calls_off".
+       (arm_valid_type_attribute_p): Accept short_call attribute.
+       (arm_comp_type_attributes): Check long/short call attributes.
+       (arm_encode_call_attribute):  New function:  Encode long_call
+       or short_call attribute in function name.
+       (arm_set_default_type_attributes): New function: Assign
+       default attributes to newly defined type.
+       (current_file_function_operand): New function: Return true if
+       the symbol is a function which has already been compiled.
+       (arm_is_longcall_p): New function: Return true if the
+       indicated function should be called via a long call.
+       (arm_get_strip_length): New function.  Returns number of
+       prefix characters to be stripped from a function's name.
+       (arm_strip_name_encoding): New function.  Strip prefix characters
+       from a function's name.
+
+       * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
+       with 'call_cookie'.
+       (SHORT_CALL_FAG_CHAR): Define.
+       (LONG_CALL_FAG_CHAR): Define.
+       (ENCODED_SHORT_CALL_ATTR_P): Define.
+       (ENCODED_LONG_CALL_ATTR_P): Define.
+       (ARM_NAME_ENCODING_LENGTHS): Define.
+       (STRIP_NAME_ENCODING): Define.
+       (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
+       (ARM_ENCODE_CALL_TYPE): Define.
+       (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
+       (ARM_DECLARE_FUNCTION_SIZE): Define.
+       (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
+
+       * config/arm/arm.md (call): Call arm_is_longcall_p to decide
+       if a long call is needed.
+       (call_value): Ditto.
+       (call_symbol): Ditto.
 
-       * tm-i386.h (TRAMPOLINE_TEMPLATE):  Changed a 040 to 0xe0;
-       this is the proper code for a jmp [%eax] instruction.
+       * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
+       ARM_DECLARE_FUNCTION_SIZE.
 
-Mon Jun  3 08:07:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
+       (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
+       (ARM_STRIP_NAME_ENCODING): Undefine.
+       (STRIP_NAME_ENCODING): Undefine.
+       (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
+       (ASM_DECLARE_FUNCTION_NAME): Ditto.
+       (ASM_OUTPUT_COMMON): Ditto.
+       (ASM_DECLARE_OBJECT_NAME): Ditto.
+
+       * config/arm/pe.c (arm_dllexport_name_p): Check for
+       ARM_PE_FLAG_CHAR.
+       (arm_dllimport_name_p): Ditto.
+       (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
+       (arm_mark_dllimport): Ditto.
+
+Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
+
+2000-02-28  Mark Mitchell  <mark@codesourcery.com>
+
+       * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
+
+2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
+       * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
+       NO_BUILTIN_WCHAR_TYPE is not defined.
+       (CPP_WCHAR_TYPE): Delete.
+       * cccp.c (main): Don't change wchar_type if cplusplus.
+       (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
+
+2000-02-28  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
+
+Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
+
+       * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
+       (ASM_WEAKEN_LABEL): Define.
+
+Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * expr.c (store_constructor): Do not emit USE.
+       * rtl.h (stupid_life_analysis): Remove.
+
+Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (number_blocks): Reset next_block_index based on
+       what debugging format is used, not what is defined.
+
+       * lcm.c: Minor reformatting throughout.
+       (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
+
+       * toplev.c (rest_of_compilation): Account for time in
+       optimize_mode_switching.
+
+       * jump.c (jump_optimize_1): Don't call delete_barrier_successors
+       if only marking labels.
+
+Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (expand_call): Attempt to combine stack adjustments with
+       pending stack adjustments.
+
+Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (reg_in_basic_block_p): Don't abort when falling through
+       to the end of the function.
+
+2000-02-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * emit-rtl.c (remove_unnecessary_notes): Remove notes for empty
+       blocks.
+       * final.c (next_block_index): Remove.
+       (max_block_depth): Likewise.
+       (pending_blocks): Likewise.
+       (init_final): Don't initialize them.
+       (final_start_function): Don't set next_block_index.  Set up
+       BLOCK_NUMBER.
+       (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
+       * function.h (number_blocks): New function.
+       * function.c (get_block_vector): New function.
+       (identify_blocks): Use it.
+       (reorder_blocks): Set NOTE_BLOCK.
+       (number_blocks): New function.
+       * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
+       * tree.h (BLOCK_NUMBER): New macro.
+       (tree_block): Add block_num field.
+       * dbxout.c (next_block_number): Remove.
+       (dbxout_init): Don't set it.
+       (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
+       set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
+       block numbers.
+       * toplev.c (rest_of_compilation): Always call
+       find_loop_tree_blocks.  Fix indentation.
+       * dwarf2out.c (next_block_number): Remove.
+       (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
+       to determine block numbers.
+       (gen_inlined_subroutine_die): Likewise.
+       (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
+       (decls_for_scope): Don't increment next_block_number.
+       * dwarfout.c (next_block_number): Remove.
+       (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
+       to determine block numbers.
+       (output_inlined_subroutine_die): Likewise.
+       (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
+       (output_decls_for_scope): Don't increment next_block_number.
+       * sdbout.c (next_block_number): Remove.
+       (sdbout_block): Use BLOCK_NUMBER.
+       (sdbout_begin_block): Simplify.
+       * xcoffout.c (next_block_number): Remove.
+       (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
+       (xcoffout_begin_block): Don't set next_block_number.
+       (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
+       next_block_number.
+
+Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
+       (expand_builtin_strcpy): Pass correct type to size_binop.
+       (expand_builtin_strcmp): Likewise.
+       Clean up conditional structure.
+       * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
+       (complete_array_type): Don't use size_binop for MAXINDEX.
+       * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
+       (c_sizeof_nowarn, c_size_in_bytes): Likewise.
+       (c_alignof): Use size_one_node.
+       (build_unary_op): Pass arg of proper type to size_binop.
+       (really_start_incremental_init, push_init_level): Use sizetype for
+       constructor{,_bit,_unfilled}_index.
+       (pop_init_label, output_init_element): Likewise.
+       (output_pending_init_elements, process_init_element): Likewise.
+       * calls.c (compute_argument_block_size): Field VAR is ssizetype.
+       * expr.c (store_expr): Use size_int.
+       (store_constructor): Use proper types for size_binop args.
+       (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
+       (expand_expr_unaligned): Likewise.
+       (string_contant): Return object of sizetype.
+       * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
+       (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
+       (ARGS_SIZE_TREE): Pass proper types to size_binop.
+       * fold-const.c (int_const_binop): Refine when size_int is called.
+       (fold_convert): Likewise.
+       (size_int_wide): Rework to take KIND as arg, only take low order
+       bits, handle new sizetype_tab datatype, and chain entries in
+       size_table.
+       (size_int_type_wide): New function.
+       (size_binop): Validate types of arguments.
+       (ssize_binop): Deleted.
+       (size_diffop): New function.
+       (extract_muldiv): Only fold division into multiplication for sizetypes.
+       * function.c (assign_parms): Use size_diffop and make sure
+       VAR field is of ssizetype; also pass proper type to size_binop.
+       (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
+       (round_down): Deleted from here.
+       * store-layout.c (sizetype_tab): Now an array.
+       (sizetype_set, early_root_list): New variables.
+       (variable_size): Use size_one_node.
+       (round_up): Pass proper type to size_binop.
+       (round_down): Moved to here and corrected as above.
+       (layout_record): Pass proper arg types to size_binop.
+       (layout_type): Likewise.
+       If sizetype_set is zero, record the type just laid out.
+       (make_unsigned_type): Don't call set_sizetype;
+       (make_signed_type): Likewise; also, call fixup_signed_type.
+       (initialize_sizetypes): New function.
+       (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
+       set name of bitsizetype to "bit_size_type".
+       Fix up type of sizes of all types made before call.
+       * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
+       * tree.c (fix_sizetype): Deleted.
+       (build_common_tree_nodes): Call initialize_sizetypes.
+       (build_common_tree_nodes_2): Don't call fix_sizetype.
+       * tree.h (TYPE_IS_SIZETYPE): New macro.
+       (initialize_sizetype): New declaration.
+       (enum size_type_kind): New type.
+       (struct sizetype_tab): Deleted.
+       (sizetype_tab): Now array; adjust sizetype macros.
+       (size_diffop, size_int_type_wide): New functions.
+       (size_int_wide): Change number of args and type; access macros changed.
+       (ssize_int, sbitsize_int): New macros.
+       * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
+       (ROUND_TYPE_SIZE_UNIT): New macro.
+
+2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
+
+Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
+       Mark as possibly unused.
+
+       * cse.c (cse_insn): Delete dead code involving tablejump.
+       Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
+
+       * Makefile.in (libcpp.a): Start by deleting it.
+
+2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * cpplib.h (enum file_change_code): Added rename_file.
+       * cpplib.c (do_line): If a filename is given, set file_change to
+       rename_file.
+       (output_line_command): If file_change is rename_file, always
+       output a # directive with the file name.
+
+       * cpplib.c (do_pragma): Accept #pragma without consecutive token.
+
+2000-02-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
+       when copying a PARM_DECL or RESULT_DECL.
+
+2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fix-header.c (recognized_function): Also fix prototypes for
+       functions taking "void".
+
+2000-02-26  Geoff Keating  <geoffk@cygnus.com>
+
+       * reload1.c (do_output_reload): Check reg_reloaded_valid before
+       looking at reg_reloaded_contents.
+
+2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (STMP_FIXINC): New toggle.
+       (LIBGCC2_DEPS): Delete all references.
+       (stmp-headers): Delete target.  All references either deleted
+       or changed to stmp-int-headers.
+       (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
+       (LIBCPP_OBJS): Take out cppalloc.o.
+       (cppalloc.o): Delete target.
+       (stmp-int-hdrs): Depend on $(STMP_FIXINC).
+       (gen-protos, fix-header): Link with libiberty.a.
+       * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
+       to empty.
+
+       * configure.in: Remove refs to strerror.
+       * acconfig.h: Take out NEED_DECLARATION_STRERROR.
+       * system.h: Take out strerror stanza.
 
-       * cccp.c (initialize_builtins): Install __SIZE__TYPE__,
-       __PTRDIFF_TYPE__, and __WCHAR__TYPE__ as builtins.
+       * cpperror.c (my_strerror): Delete function.
+       (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
+       * cppmain.c (main): Call xmalloc_set_program_name first thing.
+       * cppalloc.c: Delete file.
+       * gen-protos.c: Don't provide xrealloc.
 
-Sun Jun  2 18:18:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
+       xstrerror throughout.
 
-       * flow.c (mark_set_1): Don't set LAST_MEM_SET from a MEM that has any
-       side-effects (such as auto-inc), not just volatile MEMs.
+2000-02-26  Bruce Korb  <bkorb@gnu.org>
 
-       * rtlanal.c (reg_referenced_p): New function.
-       * combine.c (try_combine): Correct test for added_sets_1 to account
-       for case where I1 and I2 both feed I3.
-       (distribute_notes): Don't interpret setting a reg as a use of the
-       reg; use new reg_referenced_p and simplify code.
+       * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
+       match for DOS headers, too.
+       * fixinc/inclhack.sh,fixincl.x: Regenerate.
 
-       * flow.c (propagate_block): Ensure that LOOP_DEPTH is correct at all
-       insns in a basic block, otherwise reg_n_refs will be set incorrectly.
+2000-02-26  Geoff Keating  <geoffk@cygnus.com>
 
-       * recog.c (validate_replace_rtx_1): Don't change mode of memory
-       reference that is mode-dependent.
-       Don't make a MEM with a larger mode than original.
+       * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
+       is right for most ELF targets.
+       * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
+       Let the default file use %U properly.
+       * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
+       default.
 
-       * combine.c (try_combine): Disable code to check MODES_TIEABLE_P
-       added May 20th and 22nd; this should not be needed now that
-       LIMIT_RELOAD_CLASS has been added to reload.
+       * config/fp-bit.c (pack_d): Properly handle rounding of denormal
+       numbers.
 
-       * flow.c (mark_set_1): Allow for the fact that stack pushes don't have
-       REG_INC notes.
-       * local-alloc.c (optimize_reg_copy): Likewise.
-       Don't change lives of hard registers #ifdef SMALL_REGISTER_CLASSES.
-       A USE of a register must not be changed.
-       (validate_equiv_mem): Don't make an equivalence to volatile MEMs.
+Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * reorg.c (mark_set_resources): #ifdef PUSH_ROUNDING, mark SP as always
-       set since the insn might have a (pre_dec sp).
+       * toplev.c (documented_lang_options): Correct spelling error.
+       (decode_d_option, decode_f_option, main): Likewise.
 
-Sun Jun  2 16:03:31 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
 
-       * Makefile.in (libg_dir): Variable deleted.
-       (install-gnulib): Don't bother creating libg.a.
+       * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
+       to tell assembler it is permitted to expand large constants.
 
-       * cccp.c (size_type_string, etc.): Variables deleted.
-       (special_symbol): Use macros SIZE_TYPE, etc., directly.
+2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
 
-Sat Jun  1 12:54:05 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * protoize.c: (AUX_INFO_SUFFIX): New macro.
+       (aux_info_suffix): Use.
+       (SAVE_SUFFIX): New macro.
+       (save_suffix): Use.
+       (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
+       (gen_aux_info_file): Use aux_info_suffix instead of ".X".
+       (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
 
-       * Let tm.h specify types for size_t, ptrdiff_t and wchar_t.
-       (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): New params.
-       * cccp.c, c-decl.c: Provide default definitions of the new params.
-       * cccp.c (__SIZE_TYPE__, __PTRDIFF_TYPE__, __WCHAR_TYPE__): Builtins.
-       (special_symbol): Implement them based on new params.
-       * stddef.h (size_t, ptrdiff_t, wchar_t): Declare using those builtins.
-       * c-tree.h (ptrdiff_type_node): Declare variable.
-       * c-decl.c (init_decl_processing): Use *_TYPE params
-       to control setting of sizetype, wchar_type_node and ptrdiff_type_node.
-       * c-typeck.c (pointer_diff): Take result type from ptrdiff_type_node.
+       * invoke.texi (Running Protoize): Update documentation.
 
-       * configure (target1): Really change / to -.
+2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
 
-Sat Jun  1 02:49:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
 
-       * cplus-lex.c (extract_interface_info): Now non-static.  Called
-       whenever INPUT_FILENAME changes.
-       * cplus-pt.c (instantiate_class_template): Call
-       `extract_interface_info' when switching files.
-       * cplus-input.c (getch): Ditto.
+2000-02-25  John Wehle  (john@feith.com)
 
-       * combine.c (subst): Don't change the mode of memory access for
-       volatile memory.
+       * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
 
-       * tm-sparc.h (CONST_COSTS): Fix typo in computing cost of
-       CONST_DOUBLE for DImode integers.
+2000-02-25  Anthony Green  <green@cygnus.com>
 
-Fri May 31 16:11:57 1991  Ken Raeburn  (raeburn at watch.com)
+       * toplev.c (rest_of_compilation): Rebuild jump labels if
+       combine_instructions has created a new direct jump.
+       * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
+       when appropriate.
+       (combine_instructions): Call try_combine with new argument.
+       Return non-null value when new direct jump instruction is created.
+       * rtl.h: combine_instructions returns an int.
 
-       * cplus-lex.c (process_next_inline): Set line number and filename if
-       more inline data is to be processed.
-       (store_pending_inline): Treat FUNCTION_TYPE like METHOD_TYPE.  Use
-       current_class_type instead of extracting it from method type; the
-       two should be the same, and the latter doesn't work for statics.
+Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * cplus-decl.c (start_decl): When constructing templates, use
-       original name of function rather than "mangled" name.  Look for
-       FUNCTION_DECL, not FUNCTION_TYPE, when deciding how to push the
-       new decl.
-       (start_method): Default inlining does not apply to template
-       expansions.
+       * cse.c (cse_insn): Replace the PATTERN of the insn with an new
+       jump when changing a computed jump into a jump to a known
+       target.
 
-       * cplus-pt.c (pending_template_expansions): Moved declaration to
-       start of file.
-       (tsubst): For FUNCTION_DECL, use original name of source, not
-       mangled name.
-       (instantiate_template): Local variables now non-static.  Fill in
-       pending-inline field of new decl, rather than template-info, and
-       chain into either pending-inlines or pending-template-expansions.
+Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
 
-       * cplus-typeck.c (build_x_function_call): If a template is found,
-       treat it as an overloaded declaration.
+       * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
+       to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
 
-Fri May 31 14:20:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * i386.md (define_expand "clrstrsi"): Fix typo.
 
-       * Makefile.in (all.cross): New target.
-       * configure: If cross-compiling, change `ALL' to use all.cross.
+Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
 
-Fri May 31 11:43:31 1991  Matthew Self  (mself at next.com)
+       * rtl.texi: Fix typo.
 
-       * tm-next.h (EXTRA_SECTION_FUNCTIONS):
-       Add new constructor and destructor sections.
-       (MAX_OFILE_ALIGNMENT): Define as 2^15 for Mach-O.
-       (ASM_OUTPUT_ALIGN): Use .align, not .even.  Allow alignments > 2.
-       (CPP_PREDEFINES): Added -Dm68k since some code expects this.
+Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-Fri May 31 05:41:51 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
+       UNITS_PER_WORD.  Change caller initial_elimination_offset.
+       (rounded_frame_size): Take into account that argument pushed has
+       changed.  Fix TARGET_ALIGN_DOUBLE problem.
 
-       * cplus-class.c (pushclass): New argument value for MODIFY accepted.
-       * cplus-decl2.c (build_push_scope): Call `pushclass' with MODIFY == 3.
+2000-02-25  Geoff Keating  <geoffk@cygnus.com>
 
-       * cplus-decl.c (finish_function): Set TREE_PUBLIC and TREE_EXTERNAL
-       bits on functions according to #pragma interface/implementation,
-       regardless of whether or not the function's inline.  This fixes the
-       bug of needless code replication with -fno-inline.
+       * haifa-sched.c (schedule_block): Explain the real reason
+       we delete REG_SAVE_NOTEs on the first insn of a block.
+       Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
 
-Thu May 30 17:39:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-24  Mark Mitchell  <mark@codesourcery.com>
 
-       * expr.c (expand_expr):
-       Don't lose volatility of fields in COMPONENT_REF.
+       * input.h (push_srcloc): New function.
+       (pop_srcloc): Likewise.
+       * toplev.c (push_srcloc): Define it.
+       (pop_srcloc): Likewise.
 
-Thu May 30 17:36:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-02-24  Richard Henderson  <rth@cygnus.com>
 
-       * cse.c (count_reg_usage, delete_dead_from_cse): New functions.
-       * toplev.c (rest_of_compilation): Call delete_dead_from_cse immediately
-       after the first cse pass.
+       * flow.c (life_analysis): When collecting reg info, clear
+       regs_ever_live.
 
-       * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem):
-       New functions, to find cases where a REG is equivalent to a MEM.
-       (optimize_reg_copy): New function.
-       (update_equiv_regs): Call these new functions.
-       Look for a register used in only one basic block being stored into
-       memory.
-       Keep track of loop depth so we can find regs used only once, but
-       inside a loop.
-       * reload1.c (reload): Use single_set when looking for an insn
-       that initializes a register.
-       If making a REG equivalent to a MEM, the insn with SET_DEST being
-       the register isn't always the one making the equivalence, since the
-       equivalence might be occurring due to a store into MEM; in that
-       case set reg_equiv_init to the latter insn.
-
-Thu May 30 14:23:01 1991  Ken Raeburn  (raeburn at watch.com)
-
-       * Pending expansions processed at end-of-file can be processed out
-       of order, so freeing the associated data from the obstacks is not
-       possible.
-       * cplus-tree.h (struct pending_inline): New field can_free
-       indicates whether to free the text after processing it.
-       * cplus-lex.c (do_pending_inline, process_next_inline): If
-       can_free flag is set, specify inline-text obstack, otherwise null
-       pointer.
-       (cons_up_default_function): Clear flag.
-       (reinit_parse_for_method): Set it.
-       (store_pending_inline): Clear it when changing obstacks.
-       (pending_template_obstack): Deleted.  References changed to use
-       permanent_obstack.
-
-       * cplus-lex.c (store_pending_inline): Set DECL_PENDING_INLINE_INFO
-       value after swapping obstacks, not before.
-
-Thu May 30 07:23:18 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * va-sparc.h: Has to be a char * to be compatible with Sun.
-       i.e., we have to pass a `va_list' to vsprintf.  Also, fixed
-       bug in passing vararg structs.
-
-Thu May 30 00:32:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * configure: Delete Makefile.tem before writing it.
-
-       * stor-layout.c (layout_record):
-       Ignore PCC_BITFIELD_TYPE_MATTERS for incomplete type.
-
-       * fixincludes (stdtypes.h): Handle wchar_t like the other types.
-
-       * function.c (assign_parms): Don't declare args_so_far register.
-
-Wed May 29 15:13:05 1991  Ken Raeburn  (raeburn at watch.com)
-
-       * cplus-tree.def (TEMPLATE_PARM_IDX): Deleted.
-       (TEMPLATE_TYPE_PARM): New node type, looks like a type node.
-       (TEMPLATE_CONST_PARM): New node type, looks like a const node.
-
-       * cplus-tree.h (IDENTIFIER_TYPE_VALUE_PTR): Inlined under gcc.
-       (TYPE_IDENTIFIER_PTR): Ditto.
-       (DECL_NESTED_TYPENAME_PTR): Ditto.
-       (struct lang_type): New bitfield `use_template'.
-       (CLASSTYPE_USE_TEMPLATE): Accessor macro for above.
-       (struct lang_decl): New field `template_info'.
-       (DECL_TEMPLATE_INFO): Accessor macro for above.
-       (TEMPLATE_EXPANSION_NAME_P): Deleted.
-       (push_overloaded_decl_top_level): Added declaration.
-       (TEMPLATE_TYPE_TPARMLIST, TEMPLATE_TYPE_IDX,
-       TEMPLATE_TYPE_SET_INFO, TEMPLATE_CONST_TPARMLIST,
-       TEMPLATE_CONST_IDX, TEMPLATE_CONST_SET_INFO): New macros for
-       accessing fields of TEMPLATE_..._PARM nodes.
-       (struct pending_inline): New fields for names and values to bind
-       to them while processing.
-       (struct template_info): Definition moved here from cplus-pt.c.
-       (instantiate_template): Added declaration.
-       (instantiate_class_template): Ditto.
-       (processing_template_{decl,defn}): New variable declarations.
-
-       * print-tree.c (print_node): Provide missing argument to
-       print_node for `bitpos' field.  Display `virtual' flag, and (for
-       function and method types) `class' field; these are only used by
-       C++ that I'm aware of, but are defined in common code, so they
-       should be displayed here.
-
-       * cplus-parse.y (template_def): Separate set of derivations, for
-       class and function templates.  Template_def is a type of extdef;
-       extern_lang_string before template_def is not permitted.
-       (fn_tmpl_end): New nonterminal, anything that signals the end of
-       the portion of a template that we should parse.
-       (yyprint): Define only if YYDEBUG.  Handle TYPESPEC.
-       (datadef): Complain at class template override declaration if that
-       specialization has already been produced by expansion.  Template
-       definitions no longer belong here.
-       (tmpl.2): Always call instantiate_class_template; let it decide
-       whether or not to go through with it.
-       (template_instantiation): Put decl in global scope only if not
-       already there.
-       (typespec, scoped_typename): Scoped typename inside template type
-       should be a scoped_typename, not a typespec.  However, a
-       template_type should be allowed as a typespec.
-       (structsp): Don't undo template name overload here.  Deleted
-       derivation from template_type.
-       (named_class_head_sans_basetype): Don't overload template name.
-       (LC): Do it here.
-       (notype_declarator): For scoped_id derivations, don't call
-       build_push_scope if the scoped_id is a SCOPE_REF.
-       (scoped_id): Moved old typespec-from-template_type rule here.
-       Call resolve_scope_to_name only if template parms aren't involved.
-
-       * cplus-pt.c (struct template_info): Definition deleted.
-       (templates, current_template_info): Variables deleted.
-       (processing_template_{decl,defn}): New variables.
-       (push_template_decls, pop_template_decls): Accept parmlist and
-       arglist as separate arguments, instead of deriving both from the
-       template.  If class_level is non-zero, push and pop a level,
-       making it transparent to tags.  Removed some pointless checks from
-       pop_template_decls that are only needed in push_template_decls,
-       and some assertions from both.  Callers changed.
-       (uses_template_parms): Return non-zero iff argument refers to any
-       TEMPLATE_*_PARM nodes.
-       (tsubst): Walk tree, substituting for template parms, returning
-       new tree.
-       (type_unification): Rewritten a bit, to make it work.  New
-       argument nsubsts is pointer to place to record number of
-       substitutions made when matching.
-       (unify): Renamed from unify1.  Rewritten completely, to work.
-       Still may need extending for some tree node types.
-       (do_pending_expansions): At end-of-file, expand any templates not
-       yet expanded which were actually needed.  Needs work to accomodate
-       latest specs.
-       (process_template_parm): Simplified slightly.  Non-type parms
-       should be marked read-only; aggregate types are not allowed, since
-       equality checks don't work.
-       (end_template_parm_list): Moved to after process_template_parm.
-       Push a level, and push decls for TEMPLATE_*_PARMs.  Set
-       processing_template_decl flag.
-       (end_template_decl): For non-class templates, build a
-       TEMPLATE_DECL and store the regular decl in its result field.
-       Context and other values get copied over too.  Call poplevel to
-       get rid of the TEMPLATE_*_PARM decls, and call
-       dont_forget_overload to avoid losing the declaration later.  Clear
-       processing_template_decl flag.  Call get_pending_sizes, so later
-       function compilation doesn't try to evaluate sizes of templates.
-       (mangle_class_name_for_template): Convert type/non-type check from
-       switch to if test.  Added support for ENUMERAL_TYPE, REAL_TYPE,
-       and POINTER_TYPE parms.
-       (instantiate_class_template): Renamed from old
-       instantiate_template.  Don't expand if type size is set, or if
-       being-defined flag is set, or use-template flag is non-zero.  If
-       other-template parms are used in the parm list, construct a simple
-       RECORD_TYPE node and return it.  Catch case of template declared
-       but not defined before use.  Renamed argument from class to
-       classname.  Set processing_template_defn flag.
-       (instantiate_template): New routine; constructs new decl node
-       given TEMPLATE_DECL node and template arg vector.
-       (end_template_instantiation):  Set use-template field to 2 ("did
-       use template").  Clear processing_template_defn flag.
-       (reinit_parse_for_template): Get template-info ptr from decl node.
-       Store template parm vector in it.
-       (pending_template_expansions): List of templates that may need
-       expanding later for function or class data definitions.
-
-       * cplus-method.c (build_overload_value): Ensure tree code is
-       PARM_DECL.  Handle ENUMERAL_TYPE like INTEGER_TYPE.  For DImode
-       values, compare against integer_zero_node instead of constructing
-       another one.  Added support for POINTER_TYPEs.  If not
-       REAL_IS_NOT_DOUBLE, support real values as well.
-       (build_overload_name): Accept TEMPLATE_*_PARM nodes, but generate
-       a string that should cause some assembler errors.
-
-       * cplus-ptree.c (print_lang_decl): Retrieve template-info from its
-       new place.
-       (print_lang_type): For TEMPLATE_TYPE_PARM, print its (short) info
-       and return.  For RECORD_TYPE, print use-template and interface-*
-       fields.
+Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * cplus-search.c (push_class_decls): Don't call
-       push_template_decls; the bindings of template parameter names
-       should be associated with the template body, not with the class.
-       Do overload the template name, however.
-       (pop_class_decls): Don't call pop_template_decls.
-
-       * cplus-call.c (build_method_call): Changed to recognize
-       constructor of template class.
-       (build_overload_call): Add in number of template substitutions as
-       extra cost of a candidate function.  For template decls, try
-       unification and instantiation before evaluating cost of result.
-       This too is incorrect in terms of the spec, but it's a starting
-       point for later work.
-
-       * cplus-class.c (finish_struct): If structure is named, undo
-       overload of its name as a template.
-       (pushclass): If prev_class_type was a template class, pop it; the
-       decls are handled wrong and should be re-entered.
-
-       * cplus-decl.c (poplevel): Assert that the current level is not
-       global.
-       (push_to_top_level): Include global scope when looking for old
-       values, because class bindings aren't listed in any other one
-       place.
-       (push_overloaded_decl_top_level): New function; like
-       push_overloaded_decl, but places decl in global binding level.
-       (dont_forget_overload): New function; removes decl from list of
-       overloads to be forgotten when scope is exited.
-       (start_decl): If template parms are used, construct a
-       TEMPLATE_DECL node referencing the current decl.  For function
-       templates, call push_overloaded_decl; for class template members,
-       chain them into the class template definition.
-       (grokdeclarator): Don't try determining size of a
-       TEMPLATE_CONST_PARM node.  For template class-data decls,
-       construct a phony VAR_DECL node and return it.
-
-       * cplus-decl2.c (grokfield): For static class data, use
-       build_overload_name result, instead of copying class name, since
-       the latter could be a human-readable template class name.  (If
-       NEW_OVERLOAD_SCHEME is not defined, do this only if the class has
-       a template-derived name.)
-
-       * cplus-lex.c (pending_template_obstack): New variable; obstack
-       for pending-template stuff to be saved to end-of-file.
-       (init_lex): Initialize it.
-       (default_def): New variable; used for default definition of copy
-       constructors and destructors.
-       (do_pending_inlines): Figure out whether text is in an obstack,
-       and which one, for calling feed_input.  Push template decls if
-       needed, as specified in pending_inline data.  Pass current
-       pending_inlines pointer back in PRE_PARSED_FUNCTION_DECL instead
-       of next.
-       (process_next_inline): Ditto.  Pop pending inline data if needed.
-       (store_pending_inline): New function.  Decides which obstack to
-       store a pending definition on, and which list to chain it into.
-       (reinit_parse_for_method): Call it.
-       (reinit_parse_for_block): If character passed in is '=', look for
-       a semicolon to end the block; don't require a {} block.  Don't pad
-       to 8 bytes on USG, since we aren't feeding input via stdio any
-       more.  Also, use newlines instead of # directives for advancing
-       line number only a few lines.
-       (cons_up_default_function): Punt padding for USG stdio, since we
-       aren't using it any more.  Use default_def for definition.  Call
-       store_pending_inline to save it away.
-       (identifier_type): For TEMPLATE_DECL, DECL_RESULT field non-null
-       indicates a non-type template, so don't return PTYPENAME.
-       (yylex): If end-of-file and input isn't redirected, call
-       do_pending_expansions and maybe start yylex over.  Don't check
-       TEMPLATE_EXPANSION_NAME_P; a proper name transformation system
-       will eliminate conflicts.  Try for SCOPED_TYPENAME with PTYPENAME
-       too.
-
-Wed May 29 11:48:34 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * cccp.c (do_include): Check that ->control_macro is non-zero.
-
-       * gcc.c (process_command): Use `error' in last change.
-
-Wed May 29 11:10:12 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (movdi): Accept CONST_INT.
-       * out-m88k.c (output_load_const_dimode): Accept CONST_INT.
-       (output_call): Don't use #plt for jsr.
-
-Wed May 29 00:51:36 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * cplus-type2.c (build_functional_cast): Give error if functional
-       cast is missing argument.
-
-       * cplus-tree.h (interface_unknown): Add a declaration for this
-       variable.
-
-       * cplus-type2.c (store_init_value): Normally initialized PIC data
-       must be laid into the text segment and then copied into the data
-       segment.  But cecause of special things we do for ctors and dtors
-       (the only things that can reference such things), we can leave
-       vtables in initialized data space.
-
-       * cplus-decl.c (finish_decl): Use #pragma interface knowledge if
-       available for processing initialized variables of type const.
-
-Tue May 28 18:39:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * sched.c ({true,anti,output}_dependence): Correct MEM_IN_STRUCT_P
-       code; only avoid conflict if MEM_IN_STRUCT_P ref has varying address.
-
-       * protoize.c (stat): Remove declaration of stat; it is defined
-       differently (no const in arg 1) on some machines.
-
-       * combine.c (simplify_shift_const): Avoid infinite loops by quitting
-       when COUNT becomes zero; delete now-unnecessary tests on COUNT.
-
-       * flow.c (last_mem_set): New variable.
-       (propagate_block): Initialize it.
-       Show calls can change memory.
-       (insn_dead_p): Remove unneeded arg STRICT_LOW_OK; don't treat
-       STRICT_LOW_PART differently than ZERO_EXTRACT.
-       All callers changed.
-       If insn stores into the same, nonvolatile, MEM as recorded in
-       last_mem_set, it is dead.
-       (mark_set_1): If writing into register mentioned in last_mem_set or
-       writing into memory, clear last_mem_set.
-       Record last MEM written.
-       (find_auto_inc): New function, from mark_used_regs.
-       Add support for pre-increment and pre-decrement.
-       (mark_used_regs, case MEM): Clear last_mem_set.
-       Call find_auto_inc; move code to there.
-       (mark_used_regs, case SET): Don't call recursively on MEM if it is
-       SET_DEST, instead call find_auto_inc ourselves.
-
-Tue May 28 17:29:52 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
-
-       * gnulib1.c (__fixsfsi, __cmpsf2, __extendsfdf2): Add declarations
-       for intify.
-
-       * gcc.c (default_compilers): Accept `.cxx' as a C++ extension.
-
-Tue May 28 17:05:28 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (movstrsi): Pass original MEM expressions.
-       * out-m88k.c (expand_block_move, block_move_{sequence,no_loop,loop}):
-       Use original MEM expressions to set RTX_UNCHANGING_P, MEM_VOLATILE_P,
-       and MEM_IN_STRUCT_P.
-
-       * out-m88k.c (emit_bcnd): Use bxx when optimizing so jump_optimize
-       will work on more cases.  Change this back when jump_optimize uses
-       get_condition to find the values being compared.
-
-       * m88k.md: Don't use operand0 or operand1.
-
-Tue May 28 16:00:56 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
-
-       * emit-rtl.c (try_split): Make sure `after' exists before checking
-       to see if it is a BARRIER.
-
-Tue May 28 15:08:44 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * gcc.c (process_command): Warn if -x follows last input file.
-
-       * cccp.c: Don't include file twice if a #ifndef would make it a no-op.
-       (struct file_name_list): New field, control_macro.
-       Initialize it where these structures are created.
-       (struct if_stack): Likewise.
-       (do_include): If file already known, check its control macro if any.
-       Don't include the file if the macro is now defined.
-       (do_xifdef): Detect case of successful #ifndef at start of file.
-       (condition_skip): Accept macro name as new arg.  Record in if_stack.
-       (do_endif): Detect being effectively at end of file.
-       (record_control_macro): New function.  Called from do_endif.
-
-       * calls.c (store_one_arg): Set used after calling push_rounding.
-
-       * sparc.md (floating move peepholes): Allow `r' for operand 2.
-
-       * arm.md, tm-arm.h, out-arm.c, xm-arm.h: New files.
-       * configure (arm): New alternative.
-
-Tue May 28 11:53:21 1991  Michael Meissner  (meissner at osf.org)
-
-       * tm-decstatn.h (CPP_PREDEFINES): Add Ultrix 4.2 support.
-
-       * tm-mips.h (cmp_type, branch_cmp, branch_type): Global variables
-       and type to record what type of comparison is being done.
-       (mips_print_operand_punct): New array to specify whether a
-       character is valid for print_operand as punctuation.
-       (set_nomacro, set_noat, set_noreorder): New variables to record
-       whether a .set nomacro, .set noat, or .set noreorder has been
-       done.
-       (dslots_{filled,total}_{load,jump}): New global variables to
-       remember how many delay slots exist and are filled for the -mstats
-       option.
-       (CC1_SPEC): Combine %{O:...} %{O*:...} cases.  For -G32, pass -G
-       32.  Add dummy pattern for -save-temps to avoid error message.
-       (DBX_DEBUGGING_INFO): Define this all the time.
-       (SDB_ALLOW_FORWARD_REFERENCES): Define this for MIPS ECOFF support.
-       (SDB_ALLOW_UNKNOWN_REFERENCES): Define this for MIPS ECOFF support.
-       (TARGET_SWITCHES): Add -mstats to print interesting statistics.
-       Add -mmemcpy to force memcpy to be called.  Add -mdebug[fghij].
-       Add -mno- version of switches.
-       (DATA_ALIGNMENT): Align all char/short arrays/unions/structures,
-       rather than just char arrays.
-       (BYTE_LOADS_ZERO_EXTEND): Define this.
-       (CONST_OK_FOR_LETTER_P): 'N' returns true if power of 2.
-       (EXTRA_CONSTRAINT): Redefine 'Q' to be 1 word memory references,
-       'R' to be multiword memory references.
-       (struct frame_info): Add initialized field.
-       (current_frame_info): New global structure to hold frame info.
-       (INITIAL_FRAME_POINTER_OFFSET): Use current_frame_info.
-       (INIT_CUMULATIVE_ARGS): Pass LIBNAME to init_cumulative_args.
-       (DELAY_SLOTS_FOR_EPILOGUE): Define this to fill j $r31 delay slot.
-       (ELIGIBLE_FOR_EPILOGUE_DELAY): Ditto.
-       (ENCODE_SEGMENT_INFO): Don't flag references to 0-sized arrays as
-       being in the small data segment.
-       (CONST_COSTS): Reword to be more accurate.
-       (RTX_COSTS): Define this.
-       (ADDRESS_COST): Define this.
-       (CLASS_CMP_OP, CLASS_EQUALITY_OP, CLASS_UNS_CMP_OP): New bits for
-       rtx_classify to classify various comparison operators.
-       (FINAL_PRESCAN_INSN): Define this to collect info for -mstats.
-       (NOTICE_UPDATE_CC): Only do CC_STATUS_INIT if the insn is a
+       Fix bug exposed by reload.c no longer rounding the frame
+       size to BIGGEST_ALIGNMENT:
+       * sh.c (rounded_frame_size): New function.
+       (sh_expand_prologue, sh_expand_epilogue): Use it.
+       (initial_elimination_offset): Likewise.
+
+Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
+       * sh-protos.h (sh_need_epilogue): Declare.
+       * sh.c (sh_need_epilogue_known): New static variable.
+       (sh_need_epilogue): New function.
+       (function_epilogue): Clear need_epilogue_known.
+       * sh.md (return): Split into expander / insn pattern.
+       Make the expander conditional on ! sh_need_epilogue ().
+
+2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * machmode.h (get_mode_alignment): Declare.
+       (GET_MODE_ALIGNMENT): Call it.
+       * stor-layout.c (get_mode_alignment): New function. Make
+       sure alignment is always power of 2.
+
+2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * i386.h: Remove useless definition of "I386" and misleading
+       comment above it.
+
+2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
+       under which TREE_PERMANENT will be set.
+       * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
+       build1): Use TREE_SET_PERMANENT.
+       * print-tree.c (print_node): Don't report value of
+       TREE_PERMANENT if ggc_p is true.
+
+       * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
+       decide whether to give a type a new alias set.
+       * objc/objc-act.c (build_objc_string_object): Never copy the string.
+       * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
+       of value of 'obstack'.
+
+
+2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
+
+2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
+       * cpplib.c (cpp_get_token): Produce them.
+       * cppexp.c (cpp_lex): Handle them.
+
+2000-02-23  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c (arm_comp_type_attributes): Simply and
+       comment tests on type attributes.
+
+Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * final.c (shorten_branches): Make value passed to LOOP_ALIGN
+       conform to documentation.
+       * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
+       to check for special cases.
+       * sh-protos.h (sh_loop_align): Declare.
+       * sh.c (sh_loop_align): Define.
+
+2000-02-22  Andrew Haley  <aph@cygnus.com>
+
+       * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
+       (SIZE_TYPE): Is 32 bits when using -mgp32.
+       (PTRDIFF_TYPE): Ditto.
+
+Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
+
+2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
+       BIGGEST_FIELD_ALIGNMENT a constant.
+
+2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (output_line_info): Put the marker for the end of
+       the line number info at the actual end.
+       (gen_struct_or_union_type_die): Use decl_function_context
+       to check for local classes.
+       * dwarfout.c (output_type): Likewise.
+
+Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
+       for arguments with a mode, but no type.
+       (FUNCTION_ARG_CALLEE_COPIES): Similarly.
+       * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
+       * pa/long_double.h: New file.
+       * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
+       both have 128bit wide long doubles.
+       * configure: Rebuilt.
+
+2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
+
+       * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
+       fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
+       (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
+
+       * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
+
+       * integrate.c (compare_blocks, find_block): Likewise.
+
+       * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
+
+       * rtl.h (set_file_and_line_for_stmt): Constify a char*.
+
+       * stmt.c (stmt_status, set_file_and_line_for_stmt,
+       expand_asm_operands): Likewise.
+
+Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * predict.c (estimate_probability): Added the pointer heuristic to
+       the collection of static branch predictors.
+
+2000-02-21  Catherine Moore  <clm@cygnus.com>
+
+       * config/mips/mips.h (ASM_SPEC): Add -mfix700.
+       * invoke.texi (-mfix7000): Document.
+
+2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * diagnostic.c (init_output_buffer): Make it possible to output at
+       least 32 characters if we're given a too long prefix.
+
+2000-02-20  Mark Mitchell  <mark@codesourcery.com>
+
+       * varasm.c (initializer_constant_valid_p): Call
+       lang_expand_constant to simplify the constant.
+
+2000-02-20  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/inclhack.def(stdio_va_list):
+       typedef needs to be disabled.
+       * fixinc/inclhack.sh: regen
+       * fixinc/fixincl.x: regen
+
+2000-02-20  Geoff Keating  <geoffk@cygnus.com>
+
+       * print-rtl.c (print_rtx): Don't print addresses when
+       flag_dump_unnumbered.
+
+2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * sparc.c (sparc_output_scratch_registers): Mark parameter with
+       ATTRIBUTE_UNUSED.
+       (sparc_va_arg, sparc_flat_output_function_prologue,
+       sparc_flat_output_function_epilogue): Cast value to unsigned in
        comparison.
-       (EXTRA_CC_MODES): Define new modes CC_EQmode, CC_FPmode, CC_0mode.
-       (EXTRA_CC_NAMES): Define this.
-       (SELECT_CC_MODE): Define this.
-       (PRINT_OPERAND_PUNCT_VALID_P): Redefine this to index into
-       mips_print_operand_punct.
-       (DBR_OUTPUT_SEQEND): Reset .set reorder, .set macro as appropriate.
-
-       * out-mips.c (branch_cmp, branch_type): New Global variables
-       and type to record what type of comparison is being done.
-       (mips_print_operand_punct): New array to specify whether a
-       character is valid for print_operand as punctuation.
-       (set_nomacro, set_noat, set_noreorder): New variables to record
-       whether a .set nomacro, .set noat, or .set noreorder has been
-       done.
-       (dslots_{filled,total}_{load,jump}): New global variables to
-       remember how many delay slots exist and are filled for the -mstats
-       option.
-       (reg_or_0_operand): Rewrite to add support for CONST_DOUBLE.
-       (mips_const_double_ok): Allow normal FP constants (not Infinity,
-       Nan, etc) to be used as operands when using the MIPS assembler.
-       (simple_memory_operand): Combine GP memory references from
-       gp_memory_operand.  Delete gp_memory_operand.
-       (equality_op): Return true if EQ or NE.
-       (cmp_op): Return true if comparison operator.
-       (uns_cmp_op): Return true if unsigned comparison.
-       (mips_move_1word): New name for mips_move_instructions.  Also, loads
-       of HImode/QImode use unsigned loads, rather than signed loads, so
-       that BYTE_LOADS_ZERO_EXTEND can be defined.  Use %z to get name of
-       $0, instead of hardwiring it.  Explicitly use lui where appropriate.
-       (mips_move_2words): New name for mips_move_2words_instructions.  Use
-       %z to get name of $0, instead of hardwiring it.
-       (mips_address_cost): New function to define ADDRESS_COST macro.
-       (gen_conditional_branch): New function to generate all of the tests
-       and branches.
-       (block_move_sequence): New function to generate straight line code
-       for block moves.
-       (block_move_call): New function to set up a call to memcpy/bcopy as
-       appropriate for block moves.
-       (expand_block_move): New function which is called from the movstrsi
-       define_expand, to set up block moves.  At present, unless -mmemcpy
-       is used, moves of less than 32 bytes, get straight line code, all
-       others get a call.
-       (init_cumulative_args): Take libname as third argument.
-       (function_arg_partial_nregs): Fix bug, to not return a negative
-       number when passing small structs in registers.
-       (compare_collect, compare_restore): Remove these functions, since
-       they are no longer called.
-       (override_options): Initialize mips_rtx_classify for all of the
-       comparison operator bits.  Initialize mips_print_operand_punct to
-       return TRUE for each of the valid punctuation characters used in
-       print_operand.
-       (print_operand): %X now prints 32 bit ints in hex format.  %z now
-       prints $0 if the operand is the constant integer 0.  %(, %) now turn
-       on/off both .set noreorder/.set nomacro.  %<, %> turns on/off .set
-       nomacro.  %* turns on both .set noreorder and .set nomacro if
-       filling delay slots.  %! turns on .set nomacro if filling delay
-       slots.
-       (compute_frame_size, save_restore, function_prologue,
-       function_epilogue): Change the calling sequence of
-       compute_frame_size to save everything in a global structure, which
-       has an initialized field to indicate that compute_frame_size needs
-       to be called.
-       (function_prologue): INIT_CUMULATIVE_ARGS now takes 3 args.
-       (function_epilogue): If current_function_epilogue_delay_list is
-       non-null, use that to fill the final delay slot.  Also, make sure
-       the various asm .set's are reset properly.  Write interesting
-       statistics out to stderr if -mstats.
-       (mips_epilogue_delay_slots): New function to return # of delay slots
-       the epilogue needs.
-       (null_epilogue):  Return true if the function has a null epilogue,
-       which allows the optimizer to omit jumps to the final j $31 if no
-       stack was created.
-
-       * mips.md (type attribute): Redo how the type attributes work, and
-       change some names.
-       (mode attribute): New attribute to describe the insn's result mode.
-       (length attribute): New attribute to give insn length in words.
-       (dslot attribute): New attribute to return whether an insn needs a
-       delay slot.
-       (define_delay): Use dslot and length attributes to determine if a
-       delay slot is needed.
-       (define_function_unit): Define all of the function units now.
-       (all patterns): Provide new attribute definitions.
-       (all memory reference patterns): modify alternatives to use 'Q' for
-       1 word instructions, 'R' for multiword instructions.
-       (unnamed patterns): Provide names for all patterns, so that -dp will
-       pinpoint exactly which pattern is used.
-       (*divsi3, *divmodsi4, *modsi3): If optimizing and not -mdebugc, use
-       the *divmodsi4 patterns, so that the opimizer will only use 1 divide
-       if doing a = b / c; d = b % c;  This replaces the peepholes, which
-       previously were used for this.  If not optimizing, use the normal
-       div/mod patterns.
-       (zero_extendqihi2, extendqihi2): Allow zero/sign extending from
-       memory.
-       (fixuns_trunc{df,sf}si2): Use generator patterns to generate
-       appropriate branches.
-       (movsi_ulw, movsi_usw): New patterns to generate the appropriate
-       unaligned load/store for use in the block move expansion.
-       (mov*): Provide all possible combinations of moves.
-       (movstrsi): New pattern to generate block moves.
-       (negsi2): Change to a define_expand, which uses minus.
-       (one_cmpsli2): Change to a define_expand, which use the nor pattern.
-       (cmp*, b*): Redo comparison/branch completely to save things in
-       global variables, call the common C code to expand the branch, and
-       provide match_operators to do the actual branch.
-       (s*): Provide for the ability to set a register with an integer
-       comparison, without using a branch.
-
-       * make-decrose (AUX_OUTPUT2): Delete macro, since aux-output.c is
-       always compiled separately now.
-       (LANGUAGES): Suppress G++, Objc temporarily.
-       (cse.o): Rebuild cse if the config files change, to get new cost
-       functions, no longer rebuild calls/function since the FUNCTION_ARG
-       macros just call functions in out-mips.c.
-       (SRCS): Change $(AUX_OUTPUT2_SRC) to aux-output.c.
-
-       * make-mips (AUX_OUTPUT2): Delete macro, since aux-output.c is
-       always compiler separately now.
-       (CONFIG2_H): Add rules to rebuild selected modules when the
-       tm-mips.h file changes.
-       (mips-tfile): Rules to build mips-tfile.
-       (mips-tdump): Rules to build mips-tdump.
-       (LANGUAGES): Suppress G++, Objc temporarily, build mips-tfile.
-
-       * mips-tfile.c (whole file): New file to put the MIPS specific debug
-       information into the object file, after the assembler has been run.
-       This is needed because the MIPS assembler provides no method of
-       setting up the debug information for local variables.  This is
-       enabled by the make-mips Makefile modifier.
-
-       * mips-tdump.c (whole file): New file to dump the contents of the
-       MIPS ECOFF symbol table in a symbolic format.  This is not currently
-       built by default, but make-mips contains rules to build it.
-
-       * tm-decrose.h (MD_EXEC_PREFIX): Change to use the test prefix
-       /usr/ccs/gcc-2.00/gcc- instead of the release prefix /usr/ccs/gcc.
-       (WCHAR_TYPE_SIZE): Define as 16.
-       (WCHAR_UNSIGNED): Define as 1.
-       (DBX_DEBUGGING_INFO): Define moved to tm-mips.h.
-
-
-Tue May 28 06:26:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * expmed.c (store_bit_field, extract_bit_field): If -fforce-mem
-       specified, copy OP0 into register (and back again, for store).
-
-       * sched.c (memrefs_conflict_p, {true,anti,output}_dependence): Add
-       missing parens.
-
-       * reload.c (find_reloads): Turn usage of reg_preferred_class back on
-       now that the code has been refined.
-
-Mon May 27 12:41:14 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * c-typeck.c (build_binary_op_nodefault): Set converted for shifts,
-       so op1 is not converted to the result type.
-       Clean up some warning messages.
-
-       * expr.c (expand_expr): Use temp stack slot for BLKmode SAVE_EXPR.
-
-       * Makefile.in (alloca.o): Use new vars ALLOCA_FLAGS and ALLOCA_FINISH.
-
-Mon May 27 05:42:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * sched.c ({read,true,anti,output}_dependence): Remove unused arg INSN.
-       All callers changed.
+       (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
+
+       * sparc.md: Add default case in switch.
+
+2000-02-19  Richard Henderson  <rth@cygnus.com>
+
+       * c-typeck.c (add_pending_init): Don't abort for multiple
+       fields at the same offset.
+       (pending_init_member): Test the correct member.
+
+2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
+       instead of SImode.
+       (start_catch_handler) : Same.
+
+2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
+
+       * Makefile.in: Have flow.o depend on $(EXPR_H)
+
+Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
+       * c-decl.c (duplicate_decls, finish_enum): Likewise.
+       (finish_decl): Remove -Wlarger-than code from here.
+       * flags.h (id_clash_len): Now int.
+       (larger_than_size): Now HOST_WIDE_INT.
+       * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
+       Clean up checking to see if in table.
+       (make_bit_field_ref): Remove extra parm to bitsize_int.
+       * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
+       * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
+       * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
+       and for computing size of decl.
+       * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
+       Move -Wlarger-than code to here.
+       (layout_record): Remove extra arg to bitsize_int.
+       Set TYPE_BINFO_SIZE_UNIT.
+       (layout_union): Remove extra arg to bitsize_int.
+       Use proper type for size of QUAL_UNION.
+       (layout_type): Remove extra arg to bitsize_int.
+       * toplev.c (id_clash_len): Now int.
+       (larger_than_size): Now HOST_WIDE_INT.
+       (decode_W_option): Clean up id-clash and larger-than- cases.
+       * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
+       (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
+       * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
+       (struct tree_decl): New field size_unit.
+       (size_int_wide): No HIGH operand; NUMBER is now signed.
+       (size_int_2): Deleted.
+       (size_int, bitsize_int): Don't use it and rework args.
+       * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
+
+Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
+
+2000-02-18  Geoff Keating  <geoffk@cygnus.com>
+
+       * invoke.texi (Warning Options): Add an explanation of why
+       you might want the -Wfloat-equal flag.
+
+Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
+       * cppinit.c (new_pending_define): Add cast to avoid warning.
+       * expmed.c (extract_bit_field): Likewise.
+       * flow.c (enum reorder_skip_type): New type.
+       (skip_insns_between_blcok): New it.
+       Rework to avoid warning about possibly undefined variable.
+       * function.c (assign_parms): Make thisparm_boundary unsigned.
+       * genrecog.c (write_switch): Cast XWINT result to int.
+       * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
+       * mips-tfile.c (init_file): Make two versions of FDR initializer:
+       one for MIPS and one for Alpha.
+       (get_tag, copy_object): Add casts to avoid warnings.
+       * optabs.c (init_one_libfunc): Cast NAME to (char *).
+       * reload.c (find_reloads): Make TYPE enum reload_type.
+       * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
+       * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
+       * varasm.c (compare_constant_1): Add cast to avoid warning.
+       * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
+       to (char *).
+       (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
+       Cast switch operand of size to int.
+       (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
+       * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
+       in unhandled case.
+
+2000-02-18  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
+       anything for an alignment of zero.
+
+       * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
+       anything for an alignment of zero.
+
+2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
+
+       * gcc.texi (Bug Reporting): Refer to bugs.html.
+       (Bug Lists): Likewise.
+       * system.h (GCCBUGURL): New preprocessor define.
+       * rtl.c (fancy_abort): Use it.
+       * gcc.c (main): Likewise.
+
+2000-02-18  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
+       (life_analysis_1): Subsume into ...
+       (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
+       Use update_life_info for the relaxation.
+       (update_life_info): Update REG_BASIC_BLOCK for registers live on
+       entry and regs_live_at_setjmp.
+       (set_noop_p): Simplify.
+       (notice_stack_pointer_modification_1): Renamed from s/_1//.
+       (record_volatile_insns): Split into ...
+       (delete_noop_moves): ... here,
+       (notice_stack_pointer_modification): ... here,
+       (insn_dead_p): ... and here.
+       (propagate_block): Don't query INSN_VOLATILE.
+       (mark_used_regs): Mind !PROP_REG_INFO.
+       * toplev.c (rest_of_compilation): Call mark_constant_function here,
+       not in life_analysis.
+
+Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
+
+       * loop.c (canonicalize_condition): New function,
+       broken out of get_condition.
+       (get_condition): Use it.
+       * expr.h (canonicalize_condition): Prototype it.
+
+       * tree.h (tree_int_cst_msb): Declare.
+       * tree.c (tree_int_cst_msb): New function.
 
-       * combine.c (subst, case PLUS): Fix typo in (plus (plus X C) Y) case.
-       (subst, case MULT): Distribute MULT over PLUS to try to simplify it.
+2000-02-17  Mark Mitchell  <mark@codesourcery.com>
 
-Mon May 27 05:15:16 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
+       isn't set.
 
-       * tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept a SYMBOL_REF
-       sum if FLAG_PIC is not 1.  This forces the -fPIC to take effect,
-       even when the optimizer knows how to stitch together HIGH and LO_SUM
-       combinations.
-       (PRINT_OPERAND): Move body to out-sparc.c.
-       * out-sparc.c (print_operand): New function, implementing actions of
-       old PRINT_OPERAND macro.  Comments written for all cases.
-       (reg_unused_after): Don't do anything special with JUMP_INSNs.  Only
-       do something special with CALL_INSN if REGNO is a call-used reg.
+       * invoke.texi (-fmessage-length=n): Document.
 
-       * cplus-type2.c (store_init_value): Back out 23 Feb change, which
-       was completely backward.
+2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
 
-       * dbxout.c, cplus-dbxout.c (dbxout_parms): Also test that TREE_TYPE
-       (PARMS) is not ERROR_MARK_NODE.
+       * bitmap.c (bitmap_operation): Don't leak bitmap elements.
 
-       * cplus-init.c (build_up_reference): Check FLAGS parameter to see if
-       we can accept building a reference to a constructor-generated
-       temporary.
-       (various places): Change calls to `build_up_reference' that used to
-       use an explicit `1' to use LOOKUP_PROTECT instead.
-       (build_offset_ref): Use IDENTIFIER_TYPE_VALUE macro to the the type
-       associated with CNAME.
+2000-02-17  Mark Mitchell  <mark@codesourcery.com>
 
-       * cplus-class.c (build_vbase_path): Fix 11 May change by only
-       changing TREE_TYPE (EXPR) if NULL_EXPR.  We might build different
-       vbase paths for the same expr in multiple inheritance
-       initialization.
+       * function.c (thread_prologue_and_epilogue_insns): Put a line note
+       after the prologue.
 
-       * Makefile.in: Change sed script so it matches '^# ' instead of just
-       '^#'.  This allows processing of md files with #if/#endif controls
-       in their C function bodies.
+2000-02-17  Nick Clifton  <nickc@cygnus.com>
 
-       * cplus-tree.c (build_cplus_new): Set TREE_SIDE_EFFECTS on RVAL.
+       * config/arm/thumb.c: Replace includes of system headers with
+       #include "system.h".
 
-       * stmt.c (warn_if_unused_value): Don't warn about EXIT_EXPRs.
-       (expand_decl_cleanup): Add missing type declarations for parameters.
+2000-02-16  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-call.c, cplus-class.c, cplus-dbxout.c, cplus-edsel.c: Include
-       stdio.h after cplus-tree.h since the latter references printf.
-       * cplus-search.c, cplus-xref.c: Likewise.
-       * cplus-class.c (prev_class_type): Not static; defined in cplus-tree.h.
-       * cplus-decl.c (builtin_function, auto_function): Don't put & in
-       front of function name.
-       * cplus-typeck.c (comptypes,comp_target_types): Likewise.
-       * cplus-search.c (report_ambiguous_mi_virtuals): Likewise, for arrays.
+       * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
+       Add crtbeginS.o and crtendS.o.
+       * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
+       (ENDFILE_SPEC): Use crtendS.o.
+       * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
 
-Sun May 26 22:47:35 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
+       (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
+       shared and present.
+       (__dso_handle): New variable.
+       * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
+       bias to __CTOR_END__.
 
-       * cplus-decl.c (make_temporary_for_reference): New function.  Split
-       out code from `grok_reference_init' so we could call it in two
-       places: where it was called before, and when initializing a
-       reference through a constructor for a temporary.
-       (grokdeclarator): Give error message instead of aborting if user
-       gave method qualifiers for function decl.
-       (start_function): Switch to temporary obstack before computing
-       destructor and constructor labels, and before building the
-       function's RESULT_DECL.
+2000-02-16  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-decl.c (store_parm_decls): Make a cleanup that controls the
-       action of the garbage collector.  This ensures that the call to
-       __gc_pop doesn't get skipped in the function issues a return stmt.
-       * cplus-gc.c (expand_gc_prologue_and_epilogue): Work with new
-       cleanup model.
+       * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
 
-       * cplus-gc.c (build_i_desc): Figure out whether the i_desc should
-       constitute a defn of its type or not.
+Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * cplus-typeck.c (c_expand_return): Look through TARGET_EXPR as well
-       as NEW_EXPR for returning addresses of local variables.
+       * longlong.h (__clz_tab): Declare as static to match definition.
 
-       * reload.c (find_reloads): Intialized `goal_alternative_swapped'
-       where `swapped' is initialized to zero.
+2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
 
-Sun May 26 21:29:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
+       (XREF_FILE_NAME): Define.
 
-       * recog.c (const_double_operand): Fix typo.
-       * reload1.c (choose_reload_regs): Fix typo--swap #endif with }.
+       * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
+       (EH_FRAME_SECTION_ASM_OP): Define.
+       (IDENT_ASM_OP): Define.
+       (TEXT_SECTION_ASM_OP): Define.
+       (CPP_SPEC): Define.
+       (CTORS_SECTION_ASM_OP): Define.
+       (CTOR_SECTION_FUNCTION): Use it.
+       (DTORS_SECTION_ASM_OP): Define.
+       (DTOR_SECTION_FUNCTION): Use it.
 
-       * loop.c (init_loop): Multiply copy_cost by 2.
-       (general_induction_var): Use rtx_cost directly.
-       (expr_benefit): Function deleted.
+2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * m68k.md (andsi3): Generate bclr if appropriate.
+       * reg-stack.c (emit_swap_insn): Do not put a new insn before a
+       NOTE_BASIC_BLOCK.
 
-       * cccp.c (do_undef): Just a warning, if deleting something unusual.
+       * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
+       debug_bb_n): New functions.
+       (dump_flow_info, print_rtl_with_bb): Use dump_regset.
+       * basic-block.h: Prototype new functions.
 
-Sun May 26 18:51:33 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
 
-       * expr.c (force_operand): When calling recursively, use
-       a temporary to force evaluation of calls.  The C language
-       allows `f (g (x), g (y))' to be evaluated in different orders
-       on different hosts, which could lead to different code
-       generation for different hosts.
+       * configure.in: Add support for avr target.
+       * configure: Rebuilt.
 
-       * recog.c (const_double_operand): New function for recognizing
-       CONST_DOUBLE rtx's.
+       * invoke.texi: Add AVR invocation docs.
+       * install.texi: Add information about AVR.
+       * md.texi: Add AVR constraint letters description.
+       * extend.texi: Add description for AVR specific attributes.
 
-       * expmed.c (expand_mult_add): Add new parameter TARGET which is a
-       suggestion of where to store the result; pass it to expand_expr.
-       * loop.c (emit_iv_add_mult): Pass REG to expand_mult_add call as
-       target for the result.
+2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
 
-       * gmicro.md, old-sparc.md, pyr.md: Delete obsolete UMULT patterns.
+       * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
 
-       * expmed.c (expand_mult): Convert DImode constants to a CONST_INT
-       if possible, so that multiplies by these can be optimized by the
-       existing code.
+2000-02-16  Nick Clifton  <nickc@cygnus.com>
 
-Sun May 26 00:59:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
+       (make_insn_raw): Move RTL check here.
 
-       * gcc.c (process_command): -save-temps is always valid.
+2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * varasm.c (output_constructor): Don't crash if val == 0.
+       * version.c: Include gansidecl.h and version.h.
 
-       * cse.c (refers_to_mem_p): Handle constant addresses.
+       * version.h: Wrap entire file in macro __GCC_VERSION_H__.
 
-       * cccp.c (main): Don't store thru last_include if null.
+       * configure.in (gcc_version): When setting, narrow search to
+       lines containing `version_string'.
 
-Sat May 25 06:33:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * Makefile.in (mainversion): Likewise.
+       (GCC_H): New variable.
+       (gcc.h): Delete target.
+       (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
+       (version.o): Depend on version.h.
+       (dbxout.o): Don't depend on gcc.h.
 
-       * reload.c (find_reloads): Don't assume we have at least two operands
-       when we check for a simple copy.
+Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
+                         Michael Meissner  <meissner@cygnus.com>
 
-       * sched.c (update_reg_known_value): Deleted.
-       (init_alias_analysis): If have REG_EQUIV note, can always use NOTE's
-       value irrespective of number of sets.
-       Take known value from note, not SET_SRC.
-       (memrefs_conflict_p): Remove gotos.
-       ASHIFT can't occur in an address.
-       (true_dependence, anti_dependence, output_dependence): Take into
-       account the fact that a MEM_IN_STRUCT_P reference cannot conflict
-       with a non-MEM_IN_STRUCT_P reference at a fixed address.
+       * md.texi (Simple Constraints): Add item about whitespace.
+       * genoutput.c (strip_whitespace): New.
+       (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
+       strip_whitespace for constraints.
+       Test pointer using NULL, not 0.
 
-Fri May 24 11:34:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
 
-       * Makefile.in (cplus-tab.c): Put back -d option.
+       * cpplib.c (do_line): Pedwarn for #line > 32767.
 
-Fri May 24 06:46:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * c-lex.c (readescape): Warn about '\x', but do not reject it.
 
-       * rtl.c (rtx_alloc): Ensure we keep the obstack aligned.
+2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
-Fri May 24 00:17:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
+       to default cpp spec.
+       (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
+       * cpp.texi: Document __GNUC_PATCHLEVEL__.
+       * cpp.1: Likewise.
 
-       * reload1.c (choose_reload_regs): Try with inheritance, then without.
-       #if 0 the code to avoid inheritance in certain cases.
+       * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
+       default spec.
+
+2000-02-15  Denis Chertykov  <denisc@overta.ru>
+
+       * configure.in: Add support for avr target.
+
+Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-Fri May 24 00:13:40 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
+       (sh_addr_diff_vec_mode): Don't declare.
+       * sh.c (sh_addr_diff_vec_mode): Delete.
+
+Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
+
+Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
+       (smulsi3_highpart_i): Name.
+       (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
+       (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
+       (smulsi3_highpart, umulsi3_highpart): Likewise.
+
+       (mulsidi3_i, umulsidi3_i): Make rtl describe operation
+       correctly independent of endianness.
+       (mulsidi3, umulsidi3): Now define_insn.  Hide details that
+       confuse the optimizers.
+       (mulsidi3+1, umulsidi3+1): New define_split.
+
+Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
+
+       * config/sh/sh.md: Guard insn splits against illegal registers.
+       * config/sh/sh.h: Correct comment about macros.
+
+Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+                         Andrew MacLeod  <amacleod@cygnus.com>
+
+       * Makefile.in (lcm.o): Depend on insn-attr.h.
+       * basic-block.h (optimize_mode_switching): Declare.
+       * lcm.c (tm_p.h, insn-attr.h): #include.
+       (seginfo, bb_info): New structs.
+       (antic, transp, comp, delete, insert) : New file-scope static variables.
+       (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
+       (reg_becomes_live, optimize_mode_switching): Likewise.
+       * tm.texi: Add description of mode switching macros.
+       * toplev.c (rest_of_compilation): Call optimize_mode_switching.
+
+       * sh-protos.h (remove_dead_before_cse): Remove prototype.
+       (fldi_ok, fpscr_set_from_mem): New prototypes.
+       * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
+       (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
+       Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
+       (sh_flag_remove_dead_before_cse): Remove declaration.
+       (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
+       (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
+       (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
+       * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
+       (barrier_align): Allow for JUMP_INSNS containing a parallel.
+       (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
+       (fldi_ok): New function.
+       (get_fpscr_rtx): Add fpscr_rtx as GC root.
+       (emit_sf_insn): Only generate fpu switches when optimize < 1.
+       (emit_df_insn): Likewise.
+       (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
+       (sh_flag_remove_dead_before_cse): Delete.
+       (get_free_reg, fpscr_set_from_mem): New functions.
+       * sh.md (movdf, movsf): Remove no_new_pseudos code.
+       (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
+
+2000-02-15  Loren Rittle  <ljrittle@acm.org>
+
+       * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
+
+2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
+       cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
+
+       * cccp.c: Include version.h and/or don't declare `version_string'.
+       * collect2.c: Likewise.
+       * alpha.c: Likewise.
+       * arm/aof.h: Likewise.
+       * arm/coff.h: Likewise.
+       * arm/elf.h: Likewise.
+       * arm/pe.h: Likewise.
+       * arm/tcoff.h: Likewise.
+       * arm/telf.h: Likewise.
+       * arm/tpe.h: Likewise.
+       * arm/vxarm.h: Likewise.
+       * convex/convex.c: Likewise.
+       * i386/dgux.c: Likewise.
+       * i386/sun386.h: Likewise.
+       * m88k/m88k.c: Likewise.
+       * mcore/mcore-pe.h: Likewise.
+       * mips/mips.h: Likewise.
+       * romp/romp.h: Likewise.
+       * sh/sh.c: Likewise.
+       * cpphash.c: Likewise.
+       * cppinit.c: Likewise.
+       * dwarf2out.c: Likewise.
+       * dwarfout.c: Likewise.
+       * gcc.c: Likewise.
+       * gcc.h: Likewise.
+       * mips-tfile.c: Likewise.
+       * protoize.c: Likewise.
+       * toplev.c: Likewise.
+       * tree.h: Likewise.
 
-       * out-i386.c (split_di): Check for CONST_DOUBLE before CONSTANT_P.
+       * version.c (version_string): Constify a char*.
 
-       * tm-i386.h (LIMIT_RELOAD_CLASS): new macro.
-       (PREFERRED_RELOAD_CLASS): a CONST_DOUBLE can appear in narrower
-       classes than GENERAL_REGS.
+       * version.h: New file.
 
-       * reload.c (push_reload): Limit reload class even if the SUBREG has
-       already been stripped.
+2000-02-14  Nick Clifton  <nickc@cygnus.com>
 
-Thu May 23 11:08:21 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+       * configure.in: Add mcore-elf and mcore-pe targets.
+       * configure: Regenerate.
 
-       * sched.c (schedule_insns): Don't schedule a block if the only insn is
-       a CODE_LABEL.
+       * NEWS: Add note that MCore port has been contributed.
 
-Thu May 23 07:54:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * invoke.texi: Document command line switches for MCore port.
+       * install.texi: Add MCore to list of supported targets.
 
-       * reload1.c (choose_reload_regs): Process reload in first pass if
-       a subsequent reload requires fewer registers.
-       Change criteria for processing from being a strict superset to 
-       having an intersecting, non-equal class.
-       Ignore optional and turned-off reloads in loop to see what is forced
-       to be allocated in first pass.
+2000-02-14  Geoff Keating  <geoffk@cygnus.com>
 
-       * toplev.c (compile_file): Fix typo in length of string to allocate
-       for sched2 dump's name.
+       * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
+       then we will need to import the frame handling functions.
+       (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
+       to import the frames themselves.
 
-       * jump.c (find_cross_jump): Don't crash if single_set returns 0.
+Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
+                         Jason Eckhardt  <jle@cygnus.com>
 
-       * recog.c (general_operand): A SUBREG of a constant is never valid.
+       * basic_block.h: Added prototype for reorder_basic_blocks.
+       * toplev.c: Changes to add -freorder-blocks and graph dump after
+       block reordering is done.
+       * flow.c (reorder_block_def): New structure for use during block
+       reordering.
+       (REORDER_BLOCK_*): New macros to access members of above structure.
+       (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
+       make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
+       functions for block reordering.
 
-       * local-alloc.c (qty_compare, qty_compare_1): Make priority function
-       the same as in global-alloc: quantities with shorter lives are
-       allocated first.  This can speed up some code by a factor of three.
+Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-Wed May 22 17:40:49 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * gcc.texi (Passes): Fix typo.
+       * md.texi (Standard Names): Ditto.
+       * tm.texi (Storage Layout): Ditto.
 
-       * reload1.c (emit_reload_insns): Fix some minor bugs in making
-       REG_DEAD notes and recording insn that does store; code sometimes
-       assumed that each call to gen_move_insn produced at most one insn.
+2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
 
-Wed May 22 16:51:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * cpplib.c (do_define): Only free the old definition if it
+       actually had one.
 
-       * reload.c (push_reload): Support LIMIT_RELOAD_CLASS.
+2000-02-13   Neil Booth  <NeilB@earthling.net>
 
-Wed May 22 14:14:51 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+       * cppfiles.c (read_and_prescan): When emitting deferred
+       newlines, test speccase[] again instead of checking each
+       possible whitespace character in turn.  When we encounter \r,
+       look behind for \n first, then ahead.
 
-       * jump.c (jump_optimize): Update the three simplifications that
-       start with the "if (...) x = 1;" case.  Add comments explaining how
-       to make them more machine independent, and comments explaining how
-       they might fail in the future.  Ifdef out the second case, and add
-       code explaining why it does not work.
+2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * rtl.h: Put definition of FUNCTION_FLAGS_USES_CONST_POOL here.
-       * integrate.c: Remove definition of it here.
+       * cse.c (cse_altered): New internal flag.
+       (cse_insn): Set it if we changed an insn.
+       (cse_main): Clear cse_altered before each basic block.
+       Only garbage collect if cse_altered is true afterward.
 
-       * integrate.h: New fields in struct inline_remap, min_insnno and
-       max_insnno, which indicate the range of insns covered by insn_map.
-       * integrate.c (expand_inline_function): Set min_insnno and max_insnno.
+Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
-Wed May 22 12:31:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
 
-       * tm-vaxv.h (ASM_OUTPUT_LOCAL): Use data_section.
+Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * protoize.c (fancy_abort): Define it.
-       * objc-parse.y (yyprint, set_yydebug): New functions.
+       * combine.c (simplify_comparison): Fix typo.
 
-       * tree.h (gettags, get_permanent_types, get_temporary_types):
-       Declare them.
+Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
 
-       * Makefile.in (protoize.o, unprotoize.o):
-       Use the standard flags and include dirs.  Don't use -Wall.
-       * protoize.c (abort): Declaration deleted.
+       * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
+       consistently.
 
-       * cccp.c (main): Ensure `next' field in directory list is initialized.
+2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Wed May 22 09:27:49 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+       * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
+       previously inserted node instead of root node.  Caller changed.
 
-       * expmed.c (synth_mult): Return cost of -1 if shift is too
-       expensive.
+2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Wed May 22 07:53:52 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
 
-       * out-sparc.c (output_move_double): More SImode->Pmode fixes.
+2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Wed May 22 02:43:02 1991  Micheal Tiemann  (tiemann at wookumz.gnu.ai.mit.edu)
+       * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
+       __dereg_frame_dtor): Add prototype argument.
 
-       * Makefile.in, emit-rtl.c, explow.c, final.c, global-alloc.c,
-       gnulib2.c, hard-reg-set.h, regclass.c, reload1.c, cccp.c: Fix typos
-       and indentation.
+       * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
 
-Wed May 22 00:14:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
 
-       * combine.c (try_combine): Add to last change; handle subreg
-       in src as well as in dest of i3.
+       * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
 
-Tue May 21 22:32:08 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * gthr-vxworks.h (__gthread_once): Likewise.
 
-       * m68k.md (dbra): Rewrite pattern so it reflects simplifications that
-       combine will make.
+       * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
 
-Tue May 21 10:44:05 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * loop.c (strength_reduce): When a loop-vtop note is encountered,
-       reset `not_every_iteration'.
+       * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
+       (ix86_expand_epilogue): ... here. Use mov instead of add to restore
+       stack pointer in functions w/o saved registers, output LEAVE more often
+       on TARGET_USE_LEAVE machines.
 
-Tue May 21 00:17:31 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
 
-       * c-decl.c (init_decl_processing): Always use long type for size_t.
+       * config/arm/arm.c (arm_init_cumulative_args); New function:
+       Initlaise the CUMULATIE_ARGS strcuture for a function
+       definition.
+       (arm_function_arg): New function: Determine where to place a
+       function's argument.  Also handles deciding the function's
+       call cookie.
+       (current_file_function_operand): New function: Return true if
+       the symbol is a function which has already been compiled.
+       (arm_is_long_call_p): New function: Return true if the
+       indicated function should be called via a long call.
+       (arm_valid_type_attribute_p): New function: Return true if the
+       attribute is a valid, arm specific, attribute.
+       (arm_comp_type_attribute): New function: Return true if the
+       two types have compatible, arm specific, attributes.
 
-       * varasm.c (assemble_variable): Use ASM_DECLARE_OBJECT_NAME.
+       * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
+       structure.
+       (FUNCTION_ARG): Redefine to call arm_function_arg.
+       (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
+       structure field.
+       (INIT_CUMULATIVE_ARGS): Redefine to call
+       arm_init_cumulative_args.
+       (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
+       field.
+       (SETUP_INCOMING_VARARGS): Redefine to use correct structure
+       field.
+       (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
+       functions.
+       (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
+       (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
+       (COMP_TYPE_ATTRIBUTES): Define.
 
-       * protoize.c: Include config.h.
-       (chmod, kill): Declarations deleted.
-       They aren't needed, and can conflict with system headers.
-       (wait): BSD declaration deleted.
-       (save_def_or_dec): Add missing fprintf arg.
+       * config/arm/arm.md (call): Call arm_is_long_call_p to decide
+       if a long call is needed.
+       (call_value): Call arm_is_long_call_p to decide if a long call
+       is needed.
+       (call_symbol): Call arm_is_long_call_p to decide if a long call
+       is needed.
 
-       * tm-next.h (EXTRA_FORMAT_FUNCTIONS): Fix typo.
+       * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
 
-       * protoize.c: Use USG and VMS as most files do.
-       Don't expect BSD to be necessary defined outside this file.
-       Define getwd using getcwd, not vice-versa, to be like dbxout.c.
-       * cccp.c, SYSCALLS.c: Use USG and VMS as most files do.
-       Don't expect BSD to be necessary defined outside this file.
+2000-02-11  Denis Chertykov  <denisc@overta.ru>
 
-Mon May 20 16:54:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * README.AVR: New file with information about the avr ports.
+       * config/avr: New directory with avr port files.
 
-       * tm-i386.h, tm-att386.h, tm-bsd386.h, tm-sun386.h (ASM_BYTE_OP):
-       Renamed from ASM_BYTE.
-       * varasm.c (ASM_BYTE_OP): Likewise.
+2000-02-11  Andreas Jaeger  <aj@suse.de>
 
-       * c-decl.c, cplus-class.c (finish_struct): Typo:
-       Had PCC_BIT_FIELD_MATTERS which is now PCC_BITFIELD_TYPE_MATTERS.
+       * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
 
-       * gcc.c (handle_braces): Don't deref input_suffix if null.
+2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
 
-Mon May 20 15:19:27 1991  Michael I Bushnell  (mib at geech.gnu.ai.mit.edu)
+       * cpphash.c: Fix formatting, update commentary.
+       (dump_definition): Take three separate arguments instead of a
+       MACRODEF structure argument.
+       * cpphash.h: Update prototype of dump_definition.
+       * cppinit.c (cpp_finish): Update call of dump_definition.
 
-       * cccp.c (pcfinclude): STRINGDEF struct is now longword aligned.
+       * cpplib.c (do_define): Always create new hash entry with
+       T_MACRO type.  Remove redundant check for redefinition of
+       poisoned identifier.  Update call of dump_definition.
+       (do_undef): Don't call check_macro_name.  Rename sym_length to
+       len.
+       (do_error, do_warning): Don't use copy_rest_of_line or
+       SKIP_WHITE_SPACE.
+       (do_warning): Don't use pedwarn for the actual warning,
+       only the notice about its not being in the standard.  (Fixes
+       bug with #warning in system headers.)
+       (do_ident): Stricter argument checking - accept only a single
+       string after #ident.  Also, macro-expand the line.
+       (do_xifdef): Use cpp_defined.  De-obfuscate.
 
-Mon May 20 14:26:18 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       (do_pragma): Split out specific pragma handling to separate
+       functions.  Use get_directive_token.  Update commentary.  Do
+       not pass on #pragma once or #pragma poison to the front end.
+       (do_pragma_once, do_pragma_implementation, do_pragma_poison,
+       do_pragma_default): New.
 
-       * sparc.md: Remove all arithmetic, logical, and shift patterns for
-       sub-SImode operands.  Also fix some DImode patterns.
+Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * out-sparc.c (emit_move_sequence): Simplified considerably.
+       * jump.c (jump_optimize_1): The first operand in a relational
+       can be a CONST_INT.
+       * optabs.c (emit_conditional_move): Handle relationals which
+       have a known true/false result.
 
-       * rtl.c (rtx_alloc): Inline-code an optimized obstack_alloc.
+2000-02-11  Geoff Keating  <geoffk@cygnus.com>
 
-       * cplus-lex.c (make_{pointer,reference}_declaration): Call
-       `build_parse_node' instead of `build1' so memory can be freed.
+       * function.c (thread_prologue_and_epilogue_insns): Don't insert
+       a RETURN insn into a block which already ends with a jump.
 
-       * cplus-parse.y: Remove unneeded epsilon rules to produce an average
-       15% reduction in the number of reductions performed.
+2000-02-11  Geoff Keating  <geoffk@cygnus.com>
 
-       * cplus-parse.y (RETURN_INIT): Use new interface to speed up
-       grammar.
-       * cplus-decl.c (store_return_init): Use new interface.
+       * haifa-sched.c (BUF_LEN): Increase a lot.
 
-Mon May 20 11:16:34 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+2000-02-11  Nick Clifton  <nickc@cygnus.com>
 
-       * sched.c (schedule_block): A register which dies in a CALL_INSN
-       does not cross calls.  A single insn block must be scheduled, to
-       ensure that register lifetime info is corrected updated.
+       * configure.in: Add tm_p_file specification for thumb targets.
+       * configure: Regenerate.
 
-Mon May 20 06:50:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/arm/thumb-protos.h: New file: Prototypes for exported
+       functions defined in thumb.c.
 
-       * combine.c (try_combine): Don't combine when I1 and I2 both feed
-       into I3 and I1 uses the register set in I2.
+2000-02-11  Robert Lipe  <robertl@sco.com>
 
-       * reload.c (find_reloads): Prefer pseudos over other things we may
-       reload.
+       * Makefile.in (bootstrap-lean): Remove additional files.
+       (bootstrap2-lean): Likewise.
+       (VOL_FILES): List of files for above.
 
-Mon May 20 02:02:15 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-11  Nathan Sidwell  <nathan@acm.org>
 
-       * combine.c (try_combine): Test MODES_TIEABLE_P when i3 src is subreg.
+       * cpphash.c (special_symbol): Remove spurious argument to
+       cpp_lookup.
 
-       * m68k.md (trunc*): Don't set cc if use wider insn.
+2000-02-11  Joel Sherrill (joel@OARcorp.com>
 
-Sun May 19 14:45:46 1991  Ron Guilmette  (rfg at ncd.com)
+       * configure.in: (i*86-*-rtems*): Swapped elf and coff
+       stanzas.
+       * configure: Rebuilt.
 
-       * Makefile.in (clean): Delete stage1...stage4.
-       (realclean): Delete cexp.output.
+2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
 
-       * fixincludes: Handle BSD43__IO* and BSD43_CTRL like IO* and CTRL.
+       * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
 
-Sun May 19 15:00:05 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * reload1.c (count_possible_groups): New function.
-       (reload): Call it twice.  This checks for possible groups
-       after maybe spilling some single regs.
+       * pa.c, pa.h: Remove trigraph sequences within comments.
+
+Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
+
+       * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
+
+Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
+
+       * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
+
+2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
+
+2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
+       (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
+       (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
+       (ASM_FILE_END): Use c4x_file_end.
+       * config/c4x/c4x.c (c4x_global_label): New function.
+       (c4x_external_ref, c4x_file_end): Likewise.
+
+       * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
+       (c4x_external_ref, c4x_end_file): Likewise.
+
+2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c: Don't include cpphash.h.
+       (parse_charconst, cpp_lex): Use cpp_defined.
+       (cpp_lex): Use get_directive_token throughout.  Remove
+       unnecessary cases from switch.  Move assertion-handling code
+       down to OTHER case.
+       (cpp_parse_expr): If we see '+' or '-', check the context to
+       determine if they are unary or binary operators.  Streamline
+       the jumps a bit.  Do not call skip_rest_of_line.
+
+       * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
+       static.  Export get_directive_token.  Update commentary.
+       (cpp_defined): New function.
+       (do_define): Remove reference to T_PCSTRING.  Call
+       free_definition to release memory for old definition, when
+       redefining a macro.
+       (eval_if_expression): Set only_seen_white to 0 before calling
+       cpp_parse_expr.  Call skip_rest_of_line after it returns.
+       (cpp_read_check_assertion): Don't preserve a pointer into the
+       token buffer across a call to cpp_get_token.
 
-       * configure (magnum, m3230): Aliases for mips/mips.
+       * Makefile.in (cppexp.o): Don't depend on cpphash.h.
+       * cppfiles.c (redundant_include_p): Use cpp_defined.
+       * cpphash.c (free_definition): New function.
+       (delete_macro): Use it.  Update commentary.
+       * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
+       free_definition.
+       * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
+       from enum node_type.  Prototype cpp_defined and get_directive_token.
+       Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
 
-       * fixincludes (machine/cpu.h):
-       Create in proper dir.  Fix mips/cpu.h too.
+       * fix-header.c (check_macro_names): Use cpp_defined.
+       (read_scan_file): Set inhibit_warnings and inhibit_errors in
+       the options structure.
 
-       * reload.c (find_reloads): Turn off usage of reg_preferred_class.
+2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
-Sun May 19 09:51:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
 
-       * flow.c (mark_used_regs): Continue putting REG_DEAD notes on 
-       fixed registers.
+2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
 
-       * regclass.c (reg_class_record): Don't count classes in which objects
-       won't fit.
+       * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
+       rather than die->die_tag.
 
-       * reload.c (find_reloads): Pre-compute preferred classes for each
-       operand; if operand 1 is copied to operand 0, merge the classes.
-       REJECT is now only 1/3 as costly as LOSERS; ? adds 3 to REJECT so
-       that it's semantics don't change.
+Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * expr.c (compare_from_rtx): Do EQ and NE comparisons unsigned since
-       they are usually cheaper and will cse with comparisons against zero
-       which are already unsigned.
+       * combine.c (make_extraction, force_to_mode): Avoid warning on
+       mixed-signedness conditionals.
+       (make_field_assignment, nonzero_bits): Likewise.
+       * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
+       (store_split_bit_field, extract_split_bit_field): Likewise.
+       (extract_fixed_bit_field, store_bit_field,
+       * expr.c: Change alignment to be unsigned everywhere.
+       (move_by_pieces, store_constructor_field, store_constructor):
+       Alignment parm is unsigned.
+       (emit_block_move, emit_group_load, emit_group_store): Likewise.
+       (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
+       (do_compare_rtx_and_jump): Likewise.
+       (move_by_pieces_ninsns, clear_by_pieces): Likewise.
+       Compare align with GET_MODE_ALIGNMENT.
+       (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
+       (get_inner_reference): Likewise.
+       (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
+       (expand_assignment): Local vars for alignment now unsigned.
+       (store_constructor, store_field, expand_expr, do_jump): Likewise.
+       (do_compare_and_jump): Likewise.
+       (store_field): Call new function expr_align.
+       * expr.h (emit_block_move, emit_group_load, emit_group_store):
+       Alignment arg now unsigned.
+       (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
+       (do_compare_rtx_and_jump, store_bit_field): Likewise.
+       (extract_bit_field): Likewise.
+       * fold-const.c (add_double): Add cast to eliminate signedness warning.
+       * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
+       (get_best_mode): Alignment arg is unsigned.
+       * rtl.h (move_by_pieces): Likewise.
+       * store-layout.c (maximum_field_alignment, set_alignment):
+       Now unsigned.
+       (layout_decl): Alignment arg is now unsigned.
+       Remove unneeded casts.
+       (layout_record, layout_union, layout_type): Remove unneeded casts.
+       Local alignment variables now unsigned.
+       (get_best_mode): Alignment arg now unsigned.
+       * tree.c (expr_align): New function.
+       * tree.h (expr_align): Likewise.
+       (maximum_field_alignment, set_alignment): Now unsigned.
+       (get_inner_reference): Alignment argument is now pointer to unsigned.
+       * varasm.c (assemble_variable): Add cast to eliminate warning.
+
+Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
+       then store directly into op0.
+
+       * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
+       the CALL_INSN, and emit the note immediately after it.
+
+2000-02-10  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/thumb.md (epilogue): Include a (return) in the
+       generated insn, and emit it using emit_jump_insn not
+       emit_insn.
+
+Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (assign_temp): Change zero-sized arrays to size 1.
+       * integrate.c (expand_inline_function): Do not update
+       stack_alignment_needed
+       * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
+       add some sanity checking, remove optimization for function with
+       zero frame size.
+
+2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * flow.c (mark_regs_live_at_end): Delete unused variables.
+
+       * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
+
+       * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
+       in macro FRAME_GROWS_DOWNWARD.
+
+       * stmt.c (expand_end_bindings): Delete unused variable.
+
+       * unroll.c (iteration_info): Mark parameter `loop' with
+       ATTRIBUTE_UNUSED.
+
+2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * fixinc/server.c (load_data): Return NULL if the marker line is
+       not found.
+       (run_shell): If load_data returns NULL, retry the command once, in
+       a new shell.
+
+       * configure: Rebuilt.
+
+2000-02-09  Bruce Korb  <bkorb@gnu.org>
+
+       * gcc/fixincludes:  ** DELETED **
+       * gcc/fixcpp:  ** DELETED **
+       * gcc/fixinc-nt.sed:  ** DELETED **
+       * gcc/just-fixinc:  ** DELETED **
+       * gcc/Makefile.in:  Removed out-dated commentary
+       * gcc/configure.in: Removed fast-fixincludes disablement.
+       * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
+
+2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
+       * function.c (thread_prologue_and_epilogue_insns): Uncomment
+       last change.
+
+2000-02-09  Richard Henderson  <rth@cygnus.com>
+
+       * jump.c (delete_insn): Don't delete user labels at -O0.
+
+2000-02-09  Robert Lipe  <robertl@sco.com>
+
+       * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
+       Don't link with HOST_LIBS.
+
+2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * configure.in: Correct --help text for --with-dwarf2.
+       Put tm-dwarf2.h after other tm files, if it's requested.
+       * configure: Regenerate.
+       * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
+       defining it.
+
+2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.h: Provide HASHNODE typedef and forward decl of
+       struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
+       DEFINITION, struct hashnode, struct macrodef, struct
+       definition, scan_decls prototype, default defn of
+       INCLUDE_LEN_FUDGE moved elsewhere.
 
-       * reload1.c (choose_reload_regs): Don't try to access reload_out
-       for disabled reload (reload_strict_low may not have been cleared).
+       * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
+       definition, and struct hashnode moved here. Remove the unused
+       'predefined' field from struct definition.  Replace the 'args'
+       union with its sole member.  All users updated (cpphash.c).
+       Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
+       multiple include guard.
 
-       * reload1.c (choose_reload_regs): Don't let optional reloads inherit
-       spill regs until all non-optional reloads have been allocated spill
-       regs.
-       We can use find_equiv_reg even if must_reuse, we just can't get a
-       spill reg that way.
-
-       * expr.c (do_tablejump): When using LABEL_REF in arithmetic, make it
-       in Pmode instead of VOIDmode.
-
-       * function.c (fixup_var_refs_1): Don't try to make paradoxical
-       memory SUBREGs; instead keep SUBREG_REG a pseudo and copy between
-       memory and the pseudo.
-       (fixup_memory_subreg): Abort if we try making paradoxical SUBREGs.
-
-       * reorg.c (redundant_insn_p): Insns we pass may reference resources
-       set by INSN; it is sufficient that they not set resources in INSN.
-
-Sun May 19 08:06:17 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * tm-sparc.h (STRUCT_VALUE): Change SImode to Pmode here, and in
-       other places.
-       (FIRST_PARM_OFFSET): Change 4 to UNITS_PER_WORD here, and in other
-       places.
-       (ROUND_ADVANCE): New macro to compute how far to advance the arg
-       pointer for a give parameter.
-       (FUNCTION_ARG): Use PARM_BOUNDARY instead of 32.
-       (EXTRA_CONSTRAINT): Don't depend on `reload_completed'.
-       * sparc.md (various places): Change many DImode predicates from
-       `general_operand' to `register_operand'.
-
-       * jump.c (find_cross_jump): Fixed 18 May change to use
-       `validate_change' to make sure we get valid, initialized values
-       regardless of which path we choose.
-
-Sat May 18 15:07:29 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * cccp.c: Rename FATAL_EXIT_CODE to FAILURE_EXIT_CODE.
-
-       * gnulib1.c: Rename SFVALUE to FLOAT_VALUE_TYPE.
-       (union flt_or_value): New type.
-       (*): Use that instead of flt_or_int in most places.
-       Delete some variables `intify' that aren't needed.
-       * tm-i386.h: Rename SFVALUE to FLOAT_VALUE_TYPE.
-
-       * stor-layout.c (layout_record): BITFIELD_NBYTES_LIMITED now 1 or 0.
-
-       * rtl.h (struct rtx_def): Drop SHORT_ENUM_BUG; keep ONLY_INT_FIELDS.
-
-       * loop.c (add_cost, copy_cost):
-       Variables replace old macros *_BENEFIT and COPY_PENALTY.
-       (init_loop): New function to set the variables.
-       (expr_benefit): Use rtx_cost.
-       * toplev.c (compile_file): Call init_loop.
-       * cse.c (rtx_cost): Treat mult by 2**n as a shift by default.
-
-       * toplev.c (output_file_directive):
-       Typo in ASM_OUTPUT_MAIN_SOURCE_FILENAME.
-
-       * gnulib2.c [L_trampoline]: Rename function to __trampoline.
-       Always compile it even if empty.  Make it global.
-
-Sat May 18 14:11:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * reload.c (find_reloads): Remove unnecessary test when increasing
-       cost of alternative due to non-preferred register class.
-
-       * reload1.c (choose_reload_regs): Fix typo.
-
-       * tm-rs6000.h: Add hard registers for the 8 CR fields; add classes
-       CR0_REGS and CR_REGS.
-       Don't use CC0; add CCUNSmode and CCFPmode.
-       (FIXED_REGISTERS): r31 (fp) is no longer fixed.
-       (REG_CLASS_FROM_LETTER): Remove 'd' for GENERAL_REGS; 'r' already
-       means this.
-       (CONST_DOUBLE_OK_FOR_LETTER): If we can move a constant in two insns
-       for DF or one insn for SF, let it match 'G'.
-       (SECONDARY_RELOAD_CLASS): Define this new macro.
-       (FUNCTION_ARG): Fix typo in testing nargs_prototype.
-       (LEGITIMATE_CONSTANT_P): Always return 1.
-       (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Do not define.
-       * rs6000.md: Don't use CC0; instead use a pseudo which will be assigned
-       to CR_REGS or CR0_REGS.  Make variants of arithmetic insns that
-       set only the condition code and that set both the condition code
-       and a normal result.
-       Delete "cc" attribute and add "type" attribute.
-       Define delays for cc-setting insns and for loads.
-       Replace `d' constraint with `r'.
-       Delete patterns for HImode and QImode arithmetic operations.
-       Handle putting "easy" DFmode or SFmode constant into a register.
-       Rework compare and branches; add scc insns.
-       Fix up decrement-and-branch insns, but they still won't be used yet.
-       (call insns): Use pseudo for "lr" in indirect calls.
-       (movdf, movsf): Explictly handle need to use memory to copy between
-       general and FP registers.
-       * out-rs6000.c (next_insn_tests_no_unsigned, unsigned_comparisons_p):
-       Deleted.
-       (update_cc): Likewise.
-       (gen_reg_operand): Tighen up a bit.
-       (cc_reg_operand, reg_or_u_short_operand, easy_fp_constant): New fns.
-       (fp_reg_or_mem_operand, mem_or_easy_const_operand): Likewise.
-       (call_operand): Accept pseudo register.
-       (branch_comparison_operator, scc_comparison_operator): New functions.
-       (secondary_reload_class, ccr_bit, must_save_cr): Likewise.
-       (print_operand, case 'w', 'u'): Support CONST_DOUBLE.
-       (print_operand, cases 'W', 'f', 'F', 'R', 't', 'T', 'C', 'D'):
-       New cases.
-       (print_operand, cases 'j' and 'J'): Now use for bit number in CCR.
-       (output_{pro,epi}logue): If we call function to save/restore fpr's,
-       we need to save/restore LR.
-       Save CR if we modify the call-saved fields.
-
-       * romp.md: Delete HImode and QImode arithmetic operations.
-       (swapxi): Delete; obsolete and never used.
-
-       * tm-a29k.h (TARGET_SWITCHES): Change -mnodw to -mndw.
-       Add -m{no-,}reuse-arg-regs.
-       (SECONDARY_RELOAD_CLASS): Provide a definition for this new macro.
-       * a29k.md: Delete all HImode and QImode arithmetic operations.
-       * out-a29k.c (secondary_reload_class): New function.
-       (incoming_reg): Look at TARGET_NO_REUSE_ARGS.
-
-       * reload1.c (eliminate_regs): Don't remove a PLUS unless inside an
-       address since it would need to change INSN_CODE and can't do it here.
-
-       * reorg.c (uid_to_ruid, max_uid): New vars.
-       (mostly_true_jump): Refine prediction slightly.
-       Use uid_to_ruid map to accurately see if branches are backward.
-       (relax_delay_slots): Pass condition to mostly_true_jump.
-       (dbr_schedule): Allocate and build uid_to_ruid map.
-
-Sat May 18 12:54:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * cse.c (insert): "Unchanging" pseudos count as constant.
-
-       * tree.c (make_node): Rewrite end as a switch.
-
-Sat May 18 03:51:06 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * cse.c (FIXED_BASE_PLUS_P): Since this is used when called from
-       `expand_inline_function', also catch the case where the base
-       register is VIRTUAL_STACK_VARS_RTX.
-       (simplify_binary_operation): In EQ and NE case, convert a COMPARE
-       operand to something we can optimize.
-       (refers_to_mem_p): Handle the case when `base' is a LO_SUM.
-       * integrate.c (FIXED_BASE_PLUS_P): Define this to recognize offsets
-       from the various virtual registers.
-       (expand_inline_function): Expand exprs using EXPAND_SUM so as to get
-       stack frame addresses instead of pseudos.  This yields much better
-       cse (at little cost) for GNU C++.  Also, test FIXED_BASE_PLUS_P as
-       an alternative to CONSTANT_P to record a known register value.
-       * jump.c (find_cross_jump): If we are processing a cross jump and
-       the insns fail to match, try looking for a REG_EQUAL note that makes
-       them equivalent insns.  If found, keep going.  This is important for
-       merging cleanup codes when one cleanup path gets frame address in a
-       register when the other path gets the frame address explicitly.
-
-       * cplus-init.c (build_delete): Fixed residual use of 1-based
-       indexing to use 0-based indexing instead.
-
-       * cplus-decl2.c (grokclassfn): Fix raeburn's May 12 change so that
-       destructors still have the same name.
-
-       * cplus-decl.c (decls_match): Remove dependence on MERGED.
-
-       * cplus-class.c (build_vbase_path): Fixed bug in computing offsets
-       for exprs which are FIXED_TYPE_P.
-       (build_vfn_ref): Change initializer for REF from 0 to NULL_TREE.
-
-       * cplus-decl.c (maybe_build_cleanup): Add LOOKUP_NONVIRTUAL to flags
-       argument in call to `build_delete' if DECL does not use virtual
-       baseclasses.  If it does, we go through a function call to save
-       space, unless FLAG_EXPENSIVEO_OPTIMIZATIONS is nonzero.  ??Better
-       approach is to know, in expand_cleanups, to clear `flag_no_inline'
-       during the cleanup's expansion.
-
-       * cplus-*.c (various places): Add LOOKUP_DESTRUCTOR to all places
-       where we know we are calling a destructor for a non-null object.
-
-       * stmt.c (fixup_gotos): Run destructors on cleanups that come
-       from the block being exited, in addition to any inner blocks
-       for which LABEL is now defined.
-       (expand_return): Take care of destructors that occur in the
-       current binding level.
-       (fixup_cleanups): If we emitted no insns, don't change *BEFORE_JUMP.
-
-       * rtlanal.c: Define `target_flags' here...
-       * toplev.c: ...not here.  This enables us to link gen* programs
-       which might, through rtlanal.o, pull in references to `target_flags'
-       that are never used.
-
-       * function.c: Add declaration for `current_function_uses_const_pool'.
-       * expr.h: Add extern declaration for that variable.
-       * function.h (struct function): Add a slot named
-       `uses_const_pool' for `current_function_uses_const_pool'.
-       * function.c ({push,pop}_function_context): save and restore the
-       value of `current_function_uses_const_pool'.
-       * rtl.h (FUNCTION_FLAGS_USES_CONST_POOL): Defined to be 0200.
-       * integrate.c (initialize_for_inline):
-       FUNCTION_FLAGS_USES_CONST_POOL now contributes to the value of
-       `function_flags'.
-       (output_inline_function): Restore `current_function_uses_const_pool'
-       from `function_flags'.
-       (save_for_inline_copying): Only call `save_constants' if
-       `current_function_uses_const_pool' is nonzero.
-       (save_for_inline_nocopy): Ditto.
-       (save_constants): Tweaked to perform its treewalk faster.  Notably,
-       it no longer accepts ptrs to NULL rtl.  All callers changed.
-       * varasm.c (force_const_mem): Set `current_function_uses_const_pool'
-       if we create a constant pool reference.
-
-       * cplus-parse.y, c-parse.y: Add new function `set_yydebug'.  If
-       YYDEBUG is defined, sets `yydebug' to VALUE.  Otherwise, prints
-       warning that operation is invalid.
-       * toplev.c (main): Call `set_yydebug' instead of setting `yydebug'
-       directly.  This allows user to turn YYDEBUG off for faster parsing.
-
-       * cse.c (simplify_binary_operation): Eliminate abort when passed
-       DImode operands.
-
-Fri May 17 21:56:41 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * hard-reg-set.h (reg_class_superunion): New var.
-       * regclass.c (init_reg_sets): Compute reg_class_superunion.
-       (reg_classes_intersect_p): New function.
-
-       * reload.c (find_reloads): Alternative is discouraged if it puts
-       a pseudo in a register class it doesn't prefer.
-
-       * reload1.c (basic_block_needs): Now an array, per register class.
-       (reload): Compute separate basic_block_needs for each class.
-       (spill_hard_reg): If pseudo is only in one block, see if that block
-       needs a spill register of a class containing the hard reg; leave the
-       pseudo alone if not.
-
-       * reload1.c (reload_mode, reload_nregs): New vars.
-       (reload_reg_class_lower): Use them.
-       (allocate_reload_reg): New function.
-       (choose_reload_regs): Track size and class of any groups.  We
-       can inherit reloads if we are the size of the largest group or
-       if our class is disjoint from those needed for groups.
-       Try all inherits first before all spill register allocations
-       unless there is a later reload with a smaller class; call
-       allocate_reload_reg to do the actual allocation.
-       Use new vars above.
-       (emit_reload_insns): Delete output reload even if we weren't
-       storing to memory.
-
-       * reload.h (reload_secondary_reload, reload_secondary_p): New vars.
-       * reload.c (push_reload): If secondary reload register is needed,
-       make a secondary reload.
-       * reload1.c (reload): Reload with reload_secondary_p nonzero is in use.
-       (choose_reload_regs): Likewise.
-       (emit_reload_insns): Handle secondary reloads, when needed.
-
-       * reload1.c (reload): Add pass to remove death notes for things that
-       are no longer registers or don't die if we must preserve death notes.
-       (emit_reload_insns): Refine REG_DEAD notes to be more accurate; make
-       notes for secondary reloads.
-
-       * reload1.c (emit_reload_insns): Abort for output reloads for jumps;
-       we have to implement this at some point.
-
-Fri May 17 20:08:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * protoize.c: Handle ultrix like BSD.
-
-Fri May 17 15:56:41 1991  Richard Stallman  (rms at geech.gnu.ai.mit.edu)
-
-       * Pass library function name to INIT_CUMULATIVE_ARGS.
-       * calls.c (expand_call): Pass extra arg to INIT_CUMULATIVE_ARGS.
-       * expr.c (emit_library_call): Likewise.
-       * function.c (assign_parms): Likewise.
-       * tm-*.h (INIT_CUMULATIVE_ARGS): Accept the extra arg.
-       (INIT_CUMULATIVE_INCOMING_ARGS): Likewise, just for symmetry.
+       * cpphash.c (hashf): Make static; use better algorithm; drop
+       HASHSIZE parameter; return an unsigned int.
+       (cpp_lookup): Drop HASH parameter.  PFILE parameter is
+       used. Calculate HASHSIZE modulus here.
+       (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
+       here.
+       (create_definition): Drop PREDEFINITION parameter.
+       * cpplib.c (do_define): Don't calculate a hash value here.
+       Don't pass (keyword == NULL) to create_definition.
+
+       * scan.h: Prototype scan_decls here.
+       * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
+       * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
+       callers of cpp_lookup and cpp_install updated.
+
+       * cpphash.c (macarg): Hoist all the flag diddling out of the
+       function...
+       (macroexpand): ... and out of the loop that calls macarg.
+       Skip over the initial paren before macro arguments with
+       cpp_get_non_space_token; point may be some distance before
+       that paren.  Abort if it's not there.
+
+       * cpplib.c (parse_clear_mark): Delete function.
+       (parse_set_mark, parse_goto_mark): Make static.
+       (ACTIVE_MARK_P): New macro.
+       (skip_block_comment, skip_line_comment): Do not bump the line
+       if ACTIVE_MARK_P is true.
+       (cpp_pop_buffer): The buffer to be popped may not have an
+       active mark.
+       (cpp_get_token): When looking for the initial paren before
+       macro arguments, only set a mark in a file buffer, Always
+       return to that mark before proceeding to call macroexpand or
+       return a NAME token.
+
+       * cpplib.h: Remove prototypes of parse_set_mark,
+       parse_clear_mark, parse_goto_mark.
+       (struct cpp_options): Rename 'put_out_comments' to
+       'discard_comments' and invert its sense.
+       * cppinit.c, cpphash.c, cpplib.c: All users of
+       put_out_comments changed to use discard_comments, with
+       opposite sense.
+
+2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * function.c (thread_prologue_and_epilogue_insns): Don't delete
+       the edge from a block that both jumps and falls through to the
+       fallthru block.
+
+2000-02-09  Scott Bambrough  <scottb@netwinder.org>
+
+       * config/arm/arm.md (movsi): In PIC mode, make sure that a
+       constant source address is legitimate.
+
+2000-02-09  Philip Blundell  <pb@futuretv.com>
+
+       * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
+       correctly.
+
+       * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
+       generating PIC.
+       (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
+
+2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
+       ends with a newline and a NUL.  Don't be so clever manipulating
+       strings.
+
+Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
+       not to BIGGEST_ALIGNMENT.
+
+2000-02-08  Geoff Keating  <geoffk@cygnus.com>
+
+       * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
+       * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
+       (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
+       (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
+       * frame.c (execute_cfa_insn): Handle
+       DW_CFA_GNU_negative_offset_extended.
+
+2000-02-08  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (tidy_fallthru_edges): Split out from ...
+       (delete_unreachable_blocks): ... here.
+       (find_basic_blocks): Use it.
+
+Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
+
+2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
+       (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
+       (fix-header.o): Don't depend on cpphash.h.
+
+       * scan.c (hashstr): New function.
+       * scan.h: Prototype it.
+       * fix-header.c: Don't include cpphash.h.  Use hashstr.
+       * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
+       hashstr.  Report hash table statistics.  Add private
+       definition of xrealloc.
+
+2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * i386.h (TARGET_SWITCHES): Fix typo in option name.
 
-Fri May 17 15:41:22 1991  James Van Artsdalen  (james at bigtex.cactus.org)
+2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * tm-i386v4.h (ASM_OUTPUT_COMMON): Don't attempt alignment on a
-       three byte boundary.
+       * function.c (thread_prologue_and_epilogue_insns): Don't replace
+       jumps with returns unless they are jumps to the fallthru block.
 
-Fri May 17 15:25:16 1991  Tom Wood  (wood at dg-rtp.dg.com)
+Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
 
-       * function.c (assign_stack_local, assign_outer_stack_local): Make
-       the alignment in bytes.
+       * i386.md (addqi3_cc): Fix constraints.
 
-Fri May 17 14:31:00 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * cplus-class.c (build_vbase_path): Only build a COND_EXPR if
-       NONNULL is zero.
-       (resolves_to_fixed_type_p): Check TREE_HAS_CONSTRUCTOR for
-       CALL_EXPRs and INDIRECT_REFs.
+       * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
 
-       * cplus-call.c (build_method_call): Add call to `constructor_name'
-       if BASETYPE changes.
-       * cplus-init.c (build_new): Add LOOKUP_NONVIRTUAL to FLAGS argument
-       to `build_method_call'.  Constructors are never virtual.  Also, set
-       TREE_HAS_CONSTRUCTOR bit for return value from `build_method_call'.
+2000-02-07  Mark Mitchell  <mark@codesourcery.com>
 
-Thu May 16 21:36:10 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
+       carriage return after a macro name.
 
-       * rtl.h (CONSTANT_P): Now true for a CONST_DOUBLE.
-       * combine.c, cse.c, emit-rtl.c, expr.c, integrate.c, loop.c:
-       Update for new meaning of CONSTANT_P to include CONST_DOUBLE.
-       * optabs.c, recog.c, reload.c, reload1.c, rtl.h, rtlanal.c:
+2000-02-07  Fred Fish  <fnf@be.com>
+
+       * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
+       so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
+
+2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (deps_output): Count spacers in deps_column.
+
+2000-02-07  Neil Booth  <NeilB@earthling.net>
+
+       * cppinit.c (initialize_dependency_output): If there is no
+       suffix, don't try to look for known suffixes.  Use strrchr.
+       (cpp_start_read): Remove duplicate initialization.
+
+Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (compute_argument_block_size): New argument
+       preferred_stack_boundary.
+       (expand_call): update cfun->preferred_stack_boundary, update call of
+       compute_argument_block_size
+       (emit_library_call): Increate cfun->preferred_stack_boundary
+       to PREFERRED_STACK_BOUNDARY
+       (emit_library_call_value): Likewise.
+       * explow.c (allocate_dynamic_stack_spave): Likewise.
+       * function.c (prepare_function_start): Set
+       cfun->preferred_stack_boundary
+       * function.h (struct function): Add preferred_stack_boundary field.
+       * integrate.c (expand_inline_function): Update
+       cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
+       (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
+       * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
+
+2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
+       cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
+       cpp_pedwarn, cpp_pedwarn_with_line,
+       cpp_pedwarn_with_file_and_line): Move to cpperror.c.
+       (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
+       v_cpp_error_with_line, v_cpp_warning_with_line,
+       cpp_message_from_errno, cpp_perror_with_name): Delete.
+
+       * cpperror.c (cpp_print_containing_files): Take starting
+       buffer as argument.
+       (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
+       (v_cpp_message): Now called directly by all entry points.
+       Remove -1 case.
+       (cpp_pfatal_with_name, cpp_message): Delete.
+       (cpp_notice_from_errno, cpp_ice): New functions.
+       (cpp_notice): Is now for reporting error conditions, just
+       without an associated file.
+       (cpp_error, cpp_error_with_line): Don't do anything if
+       opts->inhibit_errors is on.
+       (cpp_pedwarn_with_file_and_line): Take column argument also.
+
+       * cpplib.h: Update prototypes of exported functions.
+       (struct cpp_options): Add inhibit_errors.
+
+       * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
+       non-error messages.  Include intl.h.
+
+       * cppinit.c, cppmain.c: Likewise.  Also, use
+       cpp_notice_from_errno instead of cpp_perror_with_name or
+       cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
+
+       * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
+       report internal errors.
+
+       * cpplib.c (do_define): Switch bcopy to memcpy.
+       Give cpp_pedwarn_with_file_and_line a dummy column argument.
+
+       * cpplib.c (copy_rest_of_line): Revert previous change: don't
+       bail out early if we hit a line comment.
+
+2000-02-06  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
+       * basic-block.h: Declare them.
+       * emit-rtl.h (active_insn_p): New.
+       (next_active_insn, prev_active_insn): Use it.
+       * rtl.h: Declare it.
+       * function.c (emit_return_into_block): New.
+       (thread_prologue_and_epilogue_insns): Insert return insns instead
+       of epilogues when possible.
+       * jump.c (jump_optimize_1): Remove code to insert a return insn
+       on the fallthru to the exit block.
+
+       * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
+       and for non-empty stack frames.
+       * i386.md (return): Expand to return-pop as needed.
+
+2000-02-06  Richard Henderson  <rth@cygnus.com>
+
+       * simplify-rtx.c (simplify_relational_operation): Canonicalize
+       constant to op1 for testing.
+
+2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
+       (fixuns_truncqfqi2): Use it.
+
+2000-02-06  Richard Henderson  <rth@cygnus.com>
+
+       * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
+       as a TYPE_LEA insn.
+
+       * i386.md (widening and peepholes): Mask the constant instead of
+       using gen_lowpart.
+
+2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
+       input pointer before possibly branching off to the backslash
+       code.
+       * cpphash.c (macroexpand): Correctly delete \r escapes when
+       stringifying parameters.
+       * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
+       if we can; bail out early if we hit a line comment.
+       (handle_directive): Treat '# 123' in an .S file just like
+       '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
+       Return 1 for '# not_a_directive'.
+       (get_directive_token): Pop macro buffers here, so that
+       cpp_get_token can't sneakily move past a newline.
+       Add sanity checks.
+       (cpp_get_token): goto randomchar if handle_directive returns 0.
+
+       * cppalloc.c: Update copyright.
+       * cpplib.c: Merge all the static function prototypes into one
+       block.
+       * cpplib.h: Remove #if 0 block.
+
+       * cpperror.c: Remove #ifdef EMACS block.
+       * cppmain.c: Likewise.
+       * cpphash.c: Remove #if 0 blocks.
+       * cppinit.c: Remove #if 0 blocks, and the -lint option.
+       * cpplib.c: Remove #if 0 blocks and code referencing
+       pcp_inside_if or for_lint.  Remove duplicate error message.
+       Fix error messages for #else after #else or #elif.  Reformat.
+       Remove archaic TODO list.
+       * cpplib.h: Remove pcp_inside_if and for_lint flags.
+
+2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * i386/osf1elf.h: Add missing backslash to multiline string.
+
+2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
+
+2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (c-common.o): Depend on $(EXPR_H).
+
+       * c-common.c: Include expr.h.
+
+       * c-pragma.c (mark_align_stack): Add prototype.
+
+       * caller-save.c (add_stored_regs): Likewise.
+
+       * combine.c (record_promoted_value): Likewise.
+
+       * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
        Likewise.
-       * romp.md, rs6000.md, out-alliant.c, out-convex.c: Likewise.
-       * out-gmicro.c, out-i386.c, out-i860.c, out-m68k.c: Likewise.
-       * out-sparc.c, out-spur.c, out-tahoe.c: Likewise.
-
-       * combine.c (SUBST, SUBST_INT): If INTO equals NEWVAL, don't
-       record the substitution.
-       (try_combine, subst, make_compound_operation, simplify_and_const_int):
-       No longer need check for changes before using SUBST macro.
-       (simplify_shift_count): Likewise.
-
-       * integrate.c (copy_rtx_and_substitute, case CONST): If what
-       was originally a constant becomes something that is not a constant
-       when passed through a recursive call, return it without the CONST.
-
-       * rtl.c (copy_most_rtx): New function.
-       * rtl.h (copy_most_rtx): Declare it.
-       * function.c (fixup_var_refs_1, case MEM): If a MEM contains VAR,
-       ensure the MEM isn't shared by copying it.
-
-       * expmed.c (expand_divmod): If doing MOD, produce divide result
-       into unique pseudo so that we might CSE the division.
-
-Thu May 16 12:01:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * reload.c (push_reload): Try find_dummy_reload before dead regs.
-
-       * function.c (assign_stack_local*): Use GET_MODE_ALIGNMENT.
-       Use CEIL_ROUND consistently.
-       Don't force word alignment even if STRICT_ALIGNMENT (experiment).
-
-Thu May 16 10:31:04 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
-
-       * unroll.c (unroll_loop): Don't abort if start label does not
-       immediately follow LOOP_BEG note.  This can happen as a result of
-       jump threading.
-       * reorg.c (mostly_true_jump): Eliminate repeated test in second loop.
-
-       * sched.c (priority): Abort if find a NOTE in a groups of insns that
-       must be scheduled together.
-       (free_pending_lists): New function.  Moves every *_LIST rtx on the
-       pending lists to the free list.
-       (add_insn_mem_dependence): Get a *_LIST from the free list instead
-       of creating one if possible.
-       (sched_analyze_1): Don't move an insn across a call if it uses a
-       register that is not already live across calls. 
-       (sched_analyze_insn): Likewise.
-       (sched_analyze_1): When flusing the pending lists, put the *_LIST
-       rtx on the free list.
-       (sched_analyze): Likewise.
-       (schedule_block): Likewise.
-       (sched_analyze_2): For a cc0 setter/user pair, put a copy of all
-       dependencies on the first insn onto the second insn.
-       (sched_analyze_insn): Likewise for call sequences.
-       (sched_analyze_insn): Handle REG_INC notes just like SETs.
-       (sched_note_set): Handle hard registers same as psuedo regs.
-       (attach_deaths): Likewise.  Don't add REG_DEAD notes to the frame
-       pointer, arg pointer or stack pointer.
-       (schedule_block): Likewise.
-       (rank_for_schedule): Do not check whether each insn of a sequence
-       that must be scheduled together is ready.  They will only reach here
-       if they are all already ready.
-       (schedule_block): After reload, don't need to give special treatment
-       to insns at function start which set up the function parameters.
-       Don't treat tail specially if it is part of a group that must be
-       scheduled together.
-       When a group of instructions is scheduled together, run the lifetime
-       analysis code on every instruction in the group from last to first.
-       A call_insn kills all call_used and global regs except those
-       explicitly used by the call_insn.
-       (schedule_insn): Initialize new variables.  If USE_C_ALLOCA, free
-       alloced memory immediately after each schedule_block call, not once
-       at the end.
-
-       * rtl.c (add_dependence): When adding a dependence that points to an
-       insn that is part of a sequence that must be scheduled together,
-       make the dependence point to the last insn of the sequence instead.
-
-Wed May 15 13:08:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * combine.c (simplify_and_const_int): If we have
-       (and (OP (lshiftrt X Y) Z) C), for OP of IOR, XOR, and NOT, commute
-       OP and LSHIFTRT to put AND and LSHIFTRT adjacent to try to form
-       ZERO_EXTRACT.
-
-       * combine.c (subst, gen_lowpart_for_combine, get_last_value_validate):
-       Use object's mode instead of VOIDmode when we make
-       (clobber (const_int 0)) in case someone uses the mode for significant
-       bits.
-       * rtlanal.c (side_effects_p): Reject non-VOIDmode CLOBBERs.
-
-       * rtlanal.c (reg_set_p_1): Remove test for `reg_set_reg' being MEM.
-       (reg_set_p): Abort if passed a MEM.
-
-       * toplev.c (strip_off_ending): Strip trailing ".f".
-
-Wed May 15 12:54:18 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * cplus-typeck.c (build_modify_expr_1): If the TREE_TYPE of the
-       recursive result is an ARRAY_TYPE, change it to void_type_node so
-       build_compound_expr doesn't lose when calling default_conversion.
-
-       * cplus-tree.h (lang_type): Remove AS_LIST field from lang_type.
-       Use TYPE_MAX_VALUE field of type instead.
-       (TREE_REFERENCE_EXPR): New macro.
-
-       * cplus-parse.y (LC): If we are not in temporary allocation, call
-       permanent_allocation.  This frees up any PARM_DECL nodes that were
-       allocated since we processed an inline function.  NOTE: we still
-       have to clean up these parms from inline functions that did not go
-       inline.
 
-       * cplus-decl.c (store_parm_decls): Since we no longer push an extra
-       binding level if ! PARMS_HAVE_CLEANUPS, test CLEANUP_LABEL to figure
-       out how far up the binding countours we must look.
-       (init_decl_processing): If FLAG_NO_INLINE is nonzero, set
-       FLAG_DEFAULT_INLINE to zero.
+       * cppinit.c (new_pending_define): Likewise.
 
-       * cplus-class.c (finish_struct_bits): Copy TYPE_MIN_VALUE and
-       TYPE_MAX_VALUE.  These actually hold C++-related data that's moved
-       up from the lang_type data structure.
+       * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
 
-       * cplus-*.c: Change REFERENCE_EXPR to CONVERT_EXPR.  Set
-       TREE_REFERENCE_EXPR bit to indicate a CONVERT_EXPR that's really the
-       address of a C++ reference expression.
+       * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
+       AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
+       AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
+       class_scope_p): Likewise.
 
-Wed May 15 12:30:26 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * dwarf2out.h (dwarf2out_set_demangle_name_func,
+       dwarf2out_add_library_unit_info): Likewise.
 
-       * tm-sparc.h (FIXED_REGISTERS): Register 0 is not fixed; it is used
-       for the condition code, not to represent the fixed %g0.
+       * ggc.h (ggc_page_print_statistics): Likewise.
 
-Tue May 14 18:59:06 1991  Jim Wilson  (wilson at sphagnum.cygnus.com)
+       * haifa-sched.c (propagate_deps): Likewise.
 
-       * explow.c (find_next_ref): Start search at first insn after INSN.
+       * reg-stack.c (next_flags_user, record_label_references): Likewise.
 
-       * jump.c (jump_optimize): Update the three simplications that start
-       with the "if (...) x = 1; else {...} if (x) ..." case, so that when
-       HAVE_cc0 is not defined, they do not accept TST insns (which could
-       just be a register to register move).  They should only accept insns
-       with the COMPARE operator.
+       * rtl.h (set_stack_check_libfunc): Likewise.
 
-Tue May 14 14:51:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * toplev.h (set_fatal_function): Likewise.
 
-       * cse.c (simplify_binary_operation): Don't abort when comparing
-       two CONST_DOUBLE values.
+       * toplev.c (set_fatal_function): Delete prototype.
 
-Tue May 14 11:35:47 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
 
-       * c-common.c (decl_attributes): Fix typo in name of attribute.
-       It should be `aligned'.  Also don't crash on unknown attribute.
+2000-02-05  Geoff Keating  <geoffk@cygnus.com>
 
-       * expmed.c (init_expmed): Make a separate object to free back to.
+       * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
+       (FUNC_END): Likewise.
 
-       * hard-reg-set.h (HOST_BITS_PER_LONG_LONG): Provide default definition.
+2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * toplev.c (main): Implement -gdwarf.
+       * caller-save.c: Include tm_p.h.
 
-Tue May 14 06:32:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * flow.c (mark_used_regs): Don't make REG_DEAD notes for fixed regs.
+       * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
 
-       * combine.c (subst): Convert (not (ashift C X)) to (or (rotate ..))
-       and similarly for (not (lshiftrt C X)).
-       (make_field_assignment): Make corresponding change in how we recognize
-       bitfield assignment of single bit to zero.
+2000-02-04  Neil Booth  <NeilB@earthling.net>
 
-       * combine.c (merge_outer_ops): New function.
-       (simplify_shift_const): Use merge_outer_ops to generalize and
-       simplify handling of outer_ops.
-       Try using distributive law followed by invert distributive law
-       to simplify combinations of logical operations and shifts.
+       * cccp.c (main): Check 'dir' for a NULL pointer before passing
+       it to strcmp.
 
-       * emit-rtl.c (gen_highpart): Correct conditional that says when we
-       can get the bits of a DFmode object; copy from gen_lowpart.
+2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cse.c (simplify_binary_operation, case MULT): Simplify zero case.
-       (simplify_binary_operation, case DIV): In 0/x, return zero in proper
-       mode.
+       * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
+       * genflags.c: Use the max_operand_1 logic from genemit.c to
+       calculate how many arguments gen_insn prototypes have.  Remove
+       NO_MD_PROTOTYPES ifdefs from the generated file.
+       * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
+       file.  Cast gen_insn initializers to insn_gen_fn.
+       * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
+       * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
 
-       * combine.c (simplify_comparison): Can only extend comparison
-       to wider mode if equality comparison or test of sign bit.
+2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Tue May 14 03:26:36 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * fixinc/Makefile.in (HDR): Add machname.h.
+       (clean): Likewise.
 
-       * cplus-tree.h (lang_type): Change to use TREE_VEC to hold basetype
-       info.
-       (CLASSTYPE_N_BASECLASSES, CLASSTYPE_BASECLASS): Changed accordingly.
-       Baseclasses are now counted [0..n) instead of [1..n].
-       (CLASSTYPE_BASETYPECLASSES): Deleted.
-       * cplus-*.c (various places): Change code to work with new
-       representation for basetypes.
+2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * toplev.c (main): Handle `-gdwarf' as a debug option.
+       * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
+       (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
+       (c4x_cpu_version): Ditto.
+       * config/c4x/c4x-protos.h: ... here.
 
-       * cse.c (insert): Treat pseudos marked RTX_UNCHANGING_P as being
-       const.
+2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
 
-Mon May 13 22:44:18 1991  Jim Wilson  (wilson at ok.cygnus.com)
+       * dwarf2out.c (add_abstract_origin_attribute): Don't call
+       gen_abstract_function on our context if we're a nested function.
 
-       * mips.md: In the div/mod peepholes, don't apply the peephole if the
-       first operation overwrites one of its two operands.
+2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Mon May 13 12:14:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * expmed.c (store_bit_field, extract_bit_field):
-       Set volatile_p while checking predicates.
-       * recog.h (volatile_p): Declare it.
-       * explow.c (force_not_mem): Do nothing with BLKmode.
-
-       * SYSCALLS.c (u_int): Don't define on DGUX--already defined.
-
-       * m68k.md (zero_extend*): Don't make the subreg in the template.
-       Make it explicitly, and handle subregs as operand 0.
-
-       * tm-convex.h (MODES_TIEABLE_P): Fix typos.
-
-       * loop.c (check_dbra_loop): To check for a loop with a `break', use
-       loop_number_exit_label, not the uid_luid of each label, since loop
-       unrolling may have created new labels with no uid_luid.
-
-       * expr.c (push_block): Fixed typo in last change.
-
-Mon May 13 12:07:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * combine.c (subst): If we can't change comparison code, see if
-       we can instead surround our operation with an XOR.
-
-       * combine.c (make_compound_operation, simplify_and_const_int):
-       Ensure shift counts are non-negative and in range before using them
-       to perform shifts.
-       (simplify_comparison): Likewise.
-
-       * combine.c (try_combine): See if we have previously merged a
-       compare and arithmetic operation.  If so try to take it apart to
-       allow further combines (such as making a branch-and-decrement).
-
-       * combine.c (try_combine): Don't make VOIDmode register if our split
-       point is a constant.
-
-       * combine.c (subst): Use COMBINE_RTX_EQUAL_P to see if SET_DEST
-       is our register; two hard regs might have different rtx.
-
-       * combine.c (subst): Generalize associative law handling to
-       cases not involving constants.
-
-       * combine.c (expand_compound_operation): If we would return a
-       (clobber (const_int 0)), return what we were given.
-
-       * combine.c (simplify_shift_const): Clean up by removing fallthrough.
-
-Mon May 13 10:26:00 1991  James Van Artsdalen  (james at bigtex.cactus.org)
-
-       * i386.md (all calls to output_move_double): call return
-       value to avoid spurious compiler warnings.
-       Allow REG in all alternatives of operand 0 where possible.
-       Remove patterns to recognize increment/decrement.
-       (addsi3, addhi3, addqi3): Do this in here instead.
-       (floatdidf2): New pattern.
-       (adddi3, subdi3, negdi2): New patterns.
-       (umulsi3, umulhi3): Remove obsolete UMULT patterns.
-       (divM3, udivM3, divmodM4, udivmodM4): Use "r" constraint instead
-       of "x" or "abc".
-       (sqrtsf2, sqrtdf2): New patterns.
-       (ashldi3, ashrdi3, lshldi3, lshrdi3): New patterns
-       (All shift and rotate patterns): Don't use reg name explicitly in
-       output string: use %N operand reference.
-       (ashlM3, lshlM3): Use `add' instead of `shl'/`sal' if possible.
-       (insv): Fix output constraint.  Clarify source.  Disable for now -
-       makes worse code.
-       (SImode bit test, all Scond patterns): Allow MEM operands too.
-       (seq, sne): Handle CC_Z_IN_NOT_C.
-       (jump, indirect_jump, tablejump): Align code on word boundary
-       after unconditional jumps.
-       (`loop' patterns): Delete - will never be useful on i386.
-       (call_pop, call_value_pop): New patterns.
-       (return): New pattern: Do `return' if simple epilogue.  But only if
-       the real function epilogue isn't next.
-       (movstrsi): Do word moves, not just bytes, if count is unknown.
-       (ffsM2): New patterns.
-
-       * out-i386.c (FP_TOP, AT_SP, RET, RETCOM, POP_ONE_FP,
-       FP_CALL1, FP_CALL): Move to tm-i386.h for use by i386.md.
-       (output_movf, fp_call_internal, output_fix_trunc, split_di):
-       No longer static - called from i386.md.
-       (via_memory): Finish return value change.
-       (output_move_const_double): Delete unused function.
-       (simple_386_epilogue): New predicate.
-       (function_prologue): Allocate frame regardless of whether or not
-       there is a frame pointer.
-       Use output_asm_insn instead of fprintf to push registers.
-       (function_epilogue): Likewise.
-       If there is a frame pointer, don't necessarily fix %esp just to
-       pop a reg - use offset from frame pointer.
-       Fix -fomit-frame-pointer support.
-       Fix RETURN_POPS_ARGS case where args > 32K bytes.
-       (print_operand): A LABEL_REF gets an OFFSET_PREFIX too.
-       (print_operand_address): %esp can only be base reg, never index.
-       (split_di): New function.
-
-       * tm-i386.h: Remove references to obsolete tm-compaq.h file.
-       (TARGET_486): New flag.
-       (TARGET_SWITCHES): New options -m486, -mno486, -m386.
-       (SMALL_REGISTER_CLASSES): New macro.
-       (ASM_OUTPUT_LOOP_ALIGN): New macro.
-       (all reg macros, ARG_POINTER_REGNUM): Create argument pointer,
-       to be eliminated in favor of %esp or %ebp.
-       (HARD_REGNO_NREGS, REGNO_REG_CLASS): Use FP_REGNO_P.
-       (REGISTER_MOVE_COSTS): It is expensive to move between integer and
-       float registers.
-       (FP_REGNO_P): Detect only the FP regs.
-       (all class macros): Delete obsolete classes ABC_REGS & ABCI_REGS.
-       (REG_CLASS_FROM_LETTER): Add `S' for SIREG, remove `x' for ABCI_REGS.
-       (CONST_OK_FOR_LETTER_P): Add `J' for DImode shifts.
-       (FIRST_PARM_OFFSET): Offset now zero.
-       (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
-       Use generalized scheme to eliminate frame and arg pointers.
-       (INITIAL_FRAME_POINTER_OFFSET): Delete.
-       (REG_OK_FOR_BASE_P): allow virtual arg pointer.
-       (FP_TOP, AT_SP, RET, RETCOM, POP_ONE_FP, FP_CALL1, FP_CALL):
-       Moved here from out-i386.c for use by i386.md.
-
-       * tm-compaq.h: Delete obsolete file.
-
-Sun May 12 18:38:41 1991  Ken Raeburn  (raeburn at watch.com)
-
-       * cplus-decl.c (print_binding_level, print_binding_stack,
-       print_other_binding_stack): New debugging routines; dump one or
-       more binding levels to stderr.
-
-       * cplus-decl.c (push_to_top_level): New routine; saves copies of
-       all class and local bindings, and some other state, and clears the
-       real values, to effectively move to global scope.
-       (pop_from_top_level): Restore the saved state.
-
-       * cplus-decl.c (adjust_type_value): No longer static.  Abort if
-       current_binding_level is class binding level; need to investigate
-       that situation further.
-
-       * cplus-decl.c (finish_function): Check that the binding level being
-       popped really is a function-parameter binding level.
-
-       * cplus-tree.h (DESTRUCTOR_DECL_PREFIX): Replaces
-       DESTRUCTOR_DECL_FORMAT; used as a prefix before the class name.
-       * cplus-decl2.c (grokclassfn): Use it, and call build_overload_name
-       rather than just copying the class name.
-
-       * cplus-method.c (fndecl_as_string): Use TREE_TYPE rather than
-       indirecting through type name and the identifier's associated type,
-       since the latter may have changed.
-       (build_nested_name): New argument, text_end; callers changed.  Call
-       build_overload_identifier rather than copying class name.
-       (build_overload_value): Strip non-lvalue nodes for all arguments.
-       Fixed up the handling of negative DImode values.
-       (build_overload_identifier): New function.  Copy class name (with
-       length) if non-template, or build a name from template parameters.
-       (build_overload_name): Call build_overload_identifier for class
-       names.
-
-       * cplus-parse.y: Added comment about use of $$ for $1.
-       (template_type_name): Removed useless precedence specificiation.
-       (template_arg_list): Wrap TREE_LIST nodes around all arguments in
-       the list.
-       (template_arg): Call groktypename on type names.  For expressions,
-       specify "UNARY" precedence.
-       (PRE_PARSED_CLASS_DECL handling): Put a copy of the new class decl
-       into global scope, to avoid recursive expansion, since we start in a
-       non-global scope set up for the parameters.
-
-       * cplus-pt.c (coerce_template_parms): New function.  Converts
-       template arguments to appropriate types, returns a vector containing
-       results.
-       (mangle_class_name_for_template): Removed nparms argument.
-       Changed to deal with arglist as vector.  No longer call
-       groktypename.  Some initial code added for PARM_DECL (non-type)
-       parameters; work not completed.
-       (lookup_template_class): Call coerce_template_parms.  Removed some
-       unused code.
-       (push_template_decls, pop_template_decls): Fixed to deal with
-       arglist as vector.  More code for non-type parameters.
-       (instantiate_template): Push to top binding level before pushing any
-       declarations.
-       (end_template_instantiation): Pop from top level, then push the new
-       decl at top level.
-
-       * cplus-tree.h (struct lang_identifier): Renamed field "template" to
-       "class_template_info"; accessor macros changed.
-
-       * cplus-pt.c (struct template_info): Renamed from "template".
-       Removed unused fields.
-
-Sun May 12 17:38:46 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * unroll.c (copy_loop_body): Fix typo: had `==' for `='.
-
-Sun May 12 17:05:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * genattrtab.c (gen_attr): Clear has_asm_insn field in new object.
-
-Sun May 12 04:21:52 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * hard-reg-set.h (HARD_CONST): New macro.  Converts integer
-       constants to appropriate type for use with HARD_REG_SET.
-       ({SET,CLEAR,TEST}_HARD_REG_BIT): Use this macro where appropriate.
-       (GO_IF_HARD_REG_SUBSET): Ditto.
-       (HARD_REG_SET): Add new case if FIRST_PSEUDO_REGISTER <=
-       HOST_BITS_PER_LONGLONG.
-       * global-alloc.c: Pass HARD_CONST (0) instead of 0 to functions
-       which are looking for a HARD_REG_SET argument.
-       * reorg.c (resource_conflicts_p): Change comparison of HARD_REG_SET
-       value to compare against HARD_CONST.
-
-       * all xm-*.h files: Added HOST_BITS_PER_LONGLONG where
-       HOST_BITS_PER_LONG was defined.
-       * tm-sparc.h (REG_CLASS_CONTENTS): Fixed in case we're using long
-       long HARD_REG_SETs.
-
-       * toplev.c (main): support -gdwarf switch.
-
-       * longlong.h (umulsidi3): SPARC .umul routine returns the value in
-       WORD_LITTLE_ENDIAN form, so swap.  Other word-endian changes for
-       inline mul routines.
-
-       * gnulib2.c (__divdi3): If C is nonzero, negate whole division
-       instead of returning negation of quotient.
-
-Sat May 11 20:06:08 1991  Torbjorn Granlund  (tege at krishna.sics.se)
-
-       * expmed.c (outside of functions): New vars: lea_cost, lea_max_mul.
-       (init_expmed): Initialize lea_cost and lea_max_mul. 
-       (synth_mult): Use them.
-
-Sat May 11 20:11:41 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
-
-       * cplus-class.c (build_vbase_path): Rewritten and simplified.
-       * cplus-cvt.c (build_up_reference): Try to get away without building
-       a NOP_EXPR around the return value of `build_component_addr'.
-       Ditto for return value from `convert_pointer_to'.
-
-       * cplus-decl.c (void_zero_node): New node.  Used in conditional
-       expressions where one arm must do nothing.
-       * various places: replace calls that built this node dynamically to
-       just use the global copy.
-       * cplus-tree.h (void_zero_node): Declare it globally.
-
-       (maybe_build_cleanup): Don't call `convert_force' on the return
-       value of `build_unary_op'.  We should have license to modify its
-       type without harm.
-       * cplus-gc.c (protect_value_from_gc): Same idea for VAR_DECL and
-       PARM_DECL nodes.
-
-       * toplev.c (f_options): Add choice for -fPIC.
-
-       * varasm.c (assemble_function): If it's a function name that's the
-       first global name, strip of a leading '*' if there is one.
-
-       * reload.c (find_reloads): Fix comment.
+       * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
+       * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
 
-       * stmt.c (expand_return): Call `any_pending_cleanups' with argument.
-
-       * expr.c (expand_expr): In TARGET_EXPR case, If TARGET is null and
-       DECL already has rtl, use that as the target.
-       (expand_expr): In BIND_EXPR try using expand_{start,end}_bindings to
-       catch cleanups...otherwise fixup_cleanups must be modified to deal
-       with cleanups not in any contours.
+2000-02-04  Bruce Korb  <bkorb@gnu.org>
 
-Sat May 11 15:09:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * fixinc/genfixes(machname.h):
+       Move the functionality from gen-machine.h into this file.
+       UNdef MN_NAME_PAT if there are no names to change.
+       Also, be a little kinder when AutoGen is not present.
 
-       * out-i386.c (via_memory): Return a memref to the stack.
-       (fp_call_internal): Change call to via_memory.
+       * fixinc/Makefile.in(machname.h):
+       Change the generation rule to use genfixes.
 
-       * expr.c (push_block): New arg BELOW specifies padding direction.
-       All callers changed.
-       (emit_push_insn): Pass an interesting value for BELOW.
+       * fixinc/fixfixes.c(machine_name):
+       machine_name_fix's functionality now dependent upon whether
+       MN_NAME_PAT is defined.
 
-       * c-parse.y (typespec): Pass the TYPE_DECL for a typedef name.
-       * c-decl.c (grokdeclarator): Handle TYPE_DECL in declspecs.
+       * fixinc/fixtests.c(machine_name):
+       ditto.
 
-Thu May  9 15:17:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * fixinc/fixlib.c(mn_get_regexps): conditional on definition
+       of MN_NAME_PAT.
 
-       * m88k.md (zero_extend pattern): Compute correct constant.
+       * fixinc/fixlib.h(mn_get_regexps):
+       ditto
 
-Thu May  9 07:44:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * fixinc/gen-machine.h: DELETED
 
-       * combine.c (subst): Remove WAS_REPLACED; always check the rtl
-       for specific cases of interest and don't use TO and FROM when
-       looking into the rtl.
+2000-02-04  Jan Hubicka  <jh@suse.cz>
+           Richard Henderson  <rth@cygnus.com>
 
-       * combine.c (subst, case MEM): Call make_compound_operation here
-       so any ASHIFTs will be MULTs for mode_dependant_address_p calls later.
-       (subst, case PLUS): Remove cases already done elsewhere.
+       * i386.c (SAVE_REGS_FIRST): Remove.
+       (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
+       (ix86_compute_frame_size): Likewise.
+       (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
+       (ix86_emit_restore_regs): Remove.
+       (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
+       when a frame pointer is in use.
+       (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
+       instead of pop to restore a register when profitable; emit leave
+       when profitable.
+       (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
+       as a TYPE_LEA insn.
+       (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
+       * i386.md (prologue_allocate_stack): Remove.
+       (epilogue_deallocate_stack): Remove.
+       (pro_epilogue_adjust_stack): New.
 
-       * expmed.c (emit_store_flag): Don't let the delete_insns_since call
-       we do kill insns to do an auto-inc.
+2000-02-04  Richard Henderson  <rth@cygnus.com>
 
-       * flow.c (propagate_block): Don't treat global regs as clobbered
-       over a CALL_INSN even if call-clobbered. 
+       * function.c (diddle_return_value): Rework to use a callback function.
+       Use current_function_return_rtx if it's been set up.
+       (do_clobber_return_reg, clobber_return_register): New.
+       (do_use_return_reg, use_return_register): New.
+       (expand_function_end): Use them.
+       * stmt.c (expand_null_return): Likewise.
+       * function.h: Declare them.
+       * flow.c (mark_regs_live_at_end): Use diddle_return_value.
+       (mark_reg): Change arguments as appropriate for callback.
+       * integrate.c (expand_inline_function): Revert 19 Jan change.
 
-       * stmt.c (expand_end_stmt_expr): Correctly handle the case where an
-       expression statement  is just an auto-inc of a var.
+Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * sparc.md (fix_trunc[sd]fsi2): Finish change to use MATCH_SCRATCH
-       by eliminating DEFINE_EXPAND and making DEFINE_INSN a named pattern.
+       * tm.texi (Values in Registers): Fix typo: "fo" "for".
+       (Misc): Say the scheduler, not the Haifa scheduler.
 
-Wed May  8 13:31:23 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * cccp.c (rescan): Handle symbols before // as before /*.
+       * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
+       when in_mem is set.  Update all callers.
 
-       * Makefile.in (objc-parse.o): Specify the command.
+2000-02-04  Richard Henderson  <rth@cygnus.com>
 
-       * c-parse.y (typespec): Fix previous change.
+       * i386/openbsd.h (INT_ASM_OP): Define.
 
-       * reload1.c (choose_reload_regs): Use spillregs in round robin.
+Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-Wed May  8 11:00:29 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * tm.texi: Fix various typos.
 
-       * cplus-lex.c (tree_node_kinds): Renamed to `tree_node_counts'.
+Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
 
-Wed May  8 05:50:29 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
+       (MD_STARTFILE_PREFIX_1): New macro.
 
-       * integrate.c (copy_rtx_and_substitute): Don't round frame size.
+Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * loop.c: Must include insn-flags.h to get
-       HAVE_decrement_and_branch_until_zero.
-       * Makefile.in (loop.o): Likewise.
+       * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
+       destination when needed.
+       (strmovsi, strsetsi): New expander.
+       (strmovsi_1, strsetsi_1): New pattern.
+       * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
+       TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
+       (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
+       * invoke.texi (align-stringops, inline-all-stringops): Document.
 
-       * expmed.c (expand_divmod): Use LOG instead of INTVAL (OP1)
-       once we start generating rtl.
+Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
 
-Wed May  8 05:38:06 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * i386/netbsd.h (INT_ASM_OP): Define.
 
-       * cplus-decl.c (duplicate_decls): Don't crash on duplicate
-       TEMPLATE_DECLs.
-       (globalize_nested_type): Handle globalizing types when
-       CLASS_BINDING_LEVEL goes out of effect.
-       (init_decl_processing): Comment out decls for ABS, FABS and LABS.
-       They conflict with libg++ inlines.
+2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cplus-decl2.c (build_push_scope): Fix bug in last change.
-       (finish_file): Make the dummy decl that we tack on to the global
-       scope a TYPE_DECL instead of a VAR_DECL.  Fake global VAR_DECLs are
-       problematic on some machines (i.e. MIPS).
+       * cpplib.h (cpp_reader): Add new flag, no_directives.
+       * cpphash.c (macarg): Set it.
+       * cpplib.c (handle_directive): If no_directives is on and we
+       find a directive, issue an error and discard the line.
 
-       * cplus-init.c (init_vfields): Use TREE_TYPE (VFIELDS) to find the
-       type for which the VFIELD was last distinguished.  This picks up
-       cases where single inheritance overrides base class vtables and the
-       base class does not get a new vtable for the override.
+Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
 
-       * cplus-parse.y (named_class_head_sans_basetype): Handle a
-       `template_type_name' by itself.  This happens with e.g.
-       friend class Stack<T>.
+       * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
+       FP constants.  Add ! TARGET_FPU check for FP constants.
 
-       * cplus-pt.c (mangle_class_name_for_template): Put ',' between
-       parameters.
-       (push_template_decls): Don't crash if ARGLIST is ERROR_MARK_NODE.
+2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * cplus-class.c (finish_base_struct): Compute MAX_HAS_VIRTUAL by
-       looking at all the base classes relevant to VFIELDS.
-       (build_vbase_path): Initialize NONNULL to zero.
+       * flow.c (find_basic_blocks): Don't kill label_value_list
+       here.
+       (cleanup_cfg): Kill it here.
 
-Tue May  7 23:47:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-       * stmt.c (any_pending_cleanups): Don't fail if block_stack is empty.
+       * expr.c (store_field): Ensure ALIGN is no stricter than the
+       alignment of EXP.
 
-Tue May  7 22:46:16 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-02-02  Richard Henderson  <rth@cygnus.com>
 
-       * cse.c (simplify_binary_operation; case EQ, NE): Don't assume
-       the address of a symbol is non-zero.
+       * jump.c (delete_insn): Partially revert 19 Jan change;
+       don't convert unused code labels to notes at -O0.
 
-       * sched.c (schedule_insns): Ensure we free memory used by
-       schedule_block when using the C alloca.
+2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
-Tue May  7 14:13:57 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
+       split_all_insns to recreate REG_LABEL notes for flow2 pass.
 
-       * reload1.c (mark_reload_reg_in_use): New arg MODE.  Mark all the regs.
-       (choose_reload_regs): Pass that arg; don't loop here.
+2000-02-01  Richard Henderson  <rth@cygnus.com>
 
-       * c-parse.y (typespec): Convert a TYPENAME to its meaning.
+       * i386.c (general_no_elim_operand): New.
+       (nonmemory_no_elim_operand): New.
+       (ix86_expand_move): Copy eliminable operands before a push.
+       * i386-protos.h: Declare new functions.
+       * i386.h (CAN_ELIMINATE): Simplify.
+       (PREDICATE_CODES): Update.
+       * i386.md (push insns): Don't allow eliminable register operands.
 
-       * fold-const.c (fold): Don't assume symbolic constant is nonzero.
+2000-02-01  Richard Henderson  <rth@cygnus.com>
 
-       * c-typeck.c (c_expand_asm_operands): Convert arrays, fcns to pointers.
+       * flow.c (mark_regs_live_at_end): Follow expand_function_end and
+       replace BLKmode with DECL_RTL's mode.
 
-Mon May  6 23:29:21 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cse.c (cse_insn): Only make a REG_WAS_0 note if the previous
-       set was to the same register, not just the same quantity;
-       if previous REG_WAS_0 note, update back pointer.
-       If setting a register to a constant, update QTY_CONST and
-       QTY_CONST_INSN so it points to the last set.
-       In special case for (set REG0 REG1), ensure any REG_WAS_0 notes are
-       updated correctly.
+       * frame.c (find_fde): Convert for loop to do-while so compiler
+       sees it's always executed at least once.
+       * libgcc2.c (BBINBUFSIZE): Kill.
+       (__bb_init_prg): Use fgets.
+       (__bb_exit_trace_func): Don't paste strings.
+       * unroll.c (unroll_loop): Initialize unroll_type, not
+       unroll_number, and tweak logic to match.
 
-       * genrecog.c (make_insn_sequence): Don't clobber `i' when it is
-       still needed.
+       * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
+       all failure paths.
+       (ix86_flags_dependant): Likewise.  Disentangle control flow.
+       (ix86_sched_reorder): Break guts out to
+       ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
+       (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
+       any possible use.
 
-       * out-vax.c (print_operand_address): Fix bug in last change in handling
-       (plus (reg) (reg)).
+       * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
+       use string concatenation.  Don't save and restore esi.
 
-Mon May  6 16:41:50 1991  Torbjorn Granlund  (tege at zevs.sics.se)
+       * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
+       (machname.h): Remove script to separate file.  Use two-step
+       sequence so target is not created if script fails.
+       * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
+       identifiers are defined.
+       * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
+       an empty string, machine_name doesn't need to do anything at
+       all.
+       (is_cxx_header): Add more cases to regexp.
+       * fixinc/fixlib.h: Update prototype.
+       * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
+       mn_get_regexps.
+       * fixinc/fixincl.c: Define NO_BOGOSITY.
 
-       * expmed.c (synth_mult): Make it handle t == 0. Improve comments.
-       Use (max_cost <= add_cost) instead of (max_cost < add_cost) to
-       determine if we should fail early (to better prune the search).  
-       Remove loop with n from factor synthesis.  Remove -2 bias from m
-       loop (for clearity).  Add code to use load-effective-address
-       instructions.  Use bit-fiddling instead of loop to determine q in
-       the last synthesis case.
+       * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
+       (hp_sysfile): Add missing comma.
+       (math_exception): Put the wrapper ifdefs at the beginning and
+       the end of the file.
+       * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
 
-Mon May  6 11:21:45 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-01  Richard Henderson  <rth@cygnus.com>
 
-       * c-typeck.c (convert_for_assignment): Reword an error message.
+       * sparc.c (fp_zero_operand): Turn into a normal predicate.
+       Use CONST0_RTX.  Update all callers.
+       * sparc.h, sparc-protos.h: Update accordingly.
+       * sparc.md (fp mov insns): Use fp_zero_operand directly
+       where applicable.
 
-       * c-typeck.c (build_conditional_expr): Typo in last change.
+Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * Makefile.in (enquire, enquire.o): Depend on gnulib.
+       * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
+       example.
 
-Sun May 5 17:28:22 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * make-cc1.com: Update for GCC 2.0; build insn-attr.h, insn-attrtab.c.
-       Compile and add obj to linker list: c-aux-info.c, c-common.c, c-lang.c,
-       aux-output.c, calls.c, dwarfout.c, function.c, reorg.c, sched.c,
-       sdbout.c, unroll.c, insn-attrtab.c.  Remove references to symout.c.
+       * Makefile.in (specs.ready): New target.
+       (fixinc.sh): Depend on `specs.ready' instead of `specs'.
 
-Sun May  5 15:32:01 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * Makefile.in (rest.encap): Make gnulib before float.h.
+       * fixinc.irix: Use unique filenames for writing into /tmp,
+       * fixinc.ptx: Likewise.
+       * fixinc.sco: Likewise.
+       * fixinc.svr4: Likewise.
+       * fixinc.winnt: Likewise.
 
-       * c-typeck.c (build_conditional_expr):
-       Don't assume symbolic constant is nonzero.
+2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * reload1.c (choose_reload_regs): Ignore avoid_return_reg.
-       (reload_as_needed, reload): Don't bother setting avoid_return_reg.
+       * tsystem.h: New file.
 
-Sun May  5 14:30:14 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)
+       * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
+       s-crtS): Depend on tsystem.h.
 
-       * cplus-class.c (prev_class_type): Declare this to be static.
-       (build_vbase_path): Test NONNULL to decide whether a COND_EXPR is
-       actually needed.
-       (finish_struct): Another sort of hard virtual function to deal with
-       is one which comes from the non-leftmost baseclass, and who's index
-       is different between that class and the main derived class.  Use new
-       variable DOING_HARD_VIRTUALS to control when we punt and when we
-       plow through.
-       (modify_vtable_entry): If we find at this point that we have a hard
-       virtual function, just put it on the list PENDING_HARD_VIRTUALS if
-       DOING_HARD_VIRTUALS is nonzero.
-       (fixed_type_p): Handle SAVE_EXPR, RTL_EXPR, PLUS_EXPR, MINUS_EXPR,
-       NOP_EXPR and CONVERT_EXPR.
-       (pushclass): Fixed comment.  Also change test for whether this is
-       the top-level class scope from an obscure one to an obvious one, and
-       add comment.
-       (pushclass,popclass): Now always allocate a binding level.  Later
-       we'll have to rewrite this to actually use it.
+       * crtstuff.c: Include tsystem.h.
+       * frame.c: Likewise.
+       * libgcc2.c: Likewise.
 
-       * cplus-gc.c (type_needs_gc_entry): Don't need a GC entry for
-       ERROR_MARK_NODE.
+Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * cplus-init.c (build_new): Set TREE_CALLS_NEW on RTL_EXPR.  This
-       gives us a case that `fixed_type_p' can grok.
+       * builtins.c (expand_builtin_memset): Expand for variable sized
+       lengths too.
 
-       * cplus-lex.c (identifier_type): Make this __inline if compiling
-       with GNU C.
-       (tree_node_kinds): Renamed to `tree_node_counts'.
+2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
 
-       * cplus-parse.y (various places): Take advantage of default rule
-       `$$ = $1', and where possible, use $$ instead of $1.
-       Also, back out change for setting `looking_for_typename' to 1 at top
-       level.
+       * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
+       on ABI.
 
-       * cplus-decl2.c (build_push_scope): If the user gives X::foo in X's
-       scope, don't return a SCOPE_REF.  Just return `foo' instead.
+Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * cplus-decl.c (init_decl_processing): Don't define `alloca' as a
-       built-in function until libg++ header files agree with its built-in
-       type.
-       (finish_decl): Don't crash if TYPE is error_mark_node.
+       * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
 
-       * fold-const.c (split_tree): When splitting the tree, don't call
-       convert if the TYPE_MODEs are the smae.  This screws up C++ where
-       conversion of one pointer type to another can cause the pointer's
-       value to change.
+       * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
 
-       * tree.c (get_identifier): Speed up `get_identifier' by about a
-       factor of 2.  This becomes noticable with the long names used for
-       C++ overloading.
-       (tree_cons): Make this most frequent user of `make_node' perform its
-       actions inline.
-
-       * calls.c (expand_call): Eliminate many (most) calls to strcmp by
-       being smarter about when to call it.  Also, don't call `push_block'
-       in the trivial case when it's not needed.
-
-Sun May  5 08:51:14 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * expr.c (convert_to_mode): Fix (for the second time) test for when
-       gen_lowpart should be called.
-
-       * cse.c (find_best_addr): Try to fold address.
-       (fold_rtx): Do associativity and (not (not ...)) checks here.
-       (cse_insn): Not here.
-
-       * combine.c (recog_for_combine): New parameter, PNOTES.
-       When we add a CLOBBER, put a REG_UNUSED note for it in *PNOTES.
-       (try_combine): Call recog_for_combine with new parameter.
-       Delete any now-invalid REG_UNUSED notes in OTHER_INSN and add any
-       required new ones.
-       Add REG_NOTES to I3 and I2 due to added CLOBBERs.
-       (remove_death): Call new function, remove_note.
-       (move_deaths): Don't get confused by a CLOBBER.
-       (distribute_notes): Don't make duplicate REG_UNUSED notes.
-       Don't put a REG_DEAD note on an insn when the register is
-       partially modified, but remains valid.
-
-       * rtlanal.c (remove_note): New function.
-
-       * combine.c (try_combine): When making a PARALLEL that does a compare
-       and arithmetic, don't simplify the COMPARE.
-
-       * combine.c (try_combine): Validate that I1DEST isn't being
-       modified invalidly.
+2000-01-31  Chandra Chavva <cchavva@cygnus.com>
 
-       * combine.c (simplify_comparison): In ZERO_EXTRACT case, add missing
-       test for equality comparison against zero; also invert comparison
-       condition.
-       If we can't do a comparison in a narrower mode, but we know that
-       some wider bits are zero, see if we can do it in a wider more.
+       * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
+       case 3->2 combining (combining with splitting) in which 2 is CC0
+       setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
+       checked at the begining of the function with the aid of calling
+       function 'can_combine_p'.
 
-       * cse.c (simplify_binary_operation): Remove obsolete code to convert
-       negative shift counts to the opposite shift.
-       Don't fold invalid shifts since they may trap (e.g., on Vax).
+2000-01-31  Dave Brolley  <brolley@redhat.com>
 
-       * reload1.c (emit_reload_insns): Use rtx_equal_p to see if a result
-       is already in the desired register.
+       * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
 
-       * combine.c (find_split_point): Add two more ways to split an insn.
+2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
 
-       * combine.c (gen_binary): Put a complex operand first in addition to
-       putting constants second, just like subst would do.
+       * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
+       new label.
 
-       * combine.c (significant_bits): Correct computation of significant bits
-       for division operations.
+2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * combine.c (apply_distributive_law): Reject complex SUBREGs.
-       SUBREG distributes over logical and addition operations.
+       * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
 
-       * combine.c (subst; case AND, IOR, XOR): Add some boolean
-       arithmetic simplifications.
-
-       * expr.c (do_jump): ADDRESS_EXPR is not always zero, unfortunately.
-
-       * expr.c (do_store_flag): In case where we are testing a single bit,
-       don't convert to output mode until after we do the shift.
-       
-       * optabs.c (expand_binop, expand_unop, expand_fix): Compare
-       enum insn_code objects against CODE_FOR_nothing instead of 0.
-
-       * romp.md (bit_insv): Use CC0 in standard way; i.e., in NE.
-
-Sat May 4 20:41:12 1991    (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
-
-       * c-aux-info.c (gen_aux_info_record): Use getcwd on VMS a la USG.
-       * dbxout.c: Same here.
-       * xm-vms.h: Define unlink as remove
-       (GCC_INCLUDE_DIR): Provide a dummy definition.
-
-Sat May  4 16:46:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * combine.c (can_combine_p, try_combine): Use SMALL_REGISTER_CLASSES
-       to indicate when it is valid to do combines involving hard registers.
-       * cse.c (canon_hash): #ifdef SMALL_REGISTER_CLASSES, don't record
-       hard registers unless they are fp, ap, sp or are fixed.
-       * loop.c (valid_initial_value_p): #ifdef SMALL_REGISTER_CLASSES, 
-       hard register aren't valid initial values.
-       * reload1.c (reload): Initialize FORBIDDEN_REGS depending on
-       whether we have small register classes or not.
-
-       * ns32k.md: Replace const_int with const_int_operand.
-       Remove HImode extractions.
-       Remove patterns assigning an AND to CC0.
-       (andcbxx3): Remove name and eliminate case with NOT as second operand.
-       (sbitx, cbitx): Remove patterns involving IOR and ASHIFT; add patterns
-       with ZERO_EXTRACT as destination.
-       (ibitx): Put ASHIFT as first operand in XOR.
-       (bitfield compare): Remove comparison of 1 bit field with 1; combine
-       converts this to comparison with zero.
-       (and-compare-branch): Fold PLUS or MINUS into constant, like combine
-       will do.
-       Remove patterns for reversed cases.
-       * out-ns32k.c (const_int): Deleted.
-       
-       * rtlanal.c (reg_used_between_p, reg_set_between_p): Use GET_RTX_CLASS.
-       (reg_set_p_1): If we are setting a MEM, don't think we are setting
-       registers used in its address.
-
-       * m68k.md (cmpsf, cmpdf, tstsf, tstdf for FPA): Use MATCH_SCRATCH.
-       * sparc.md (memory store patterns): Likewise.
-
-       * function.c (assign_parms): Function is varargs function if the
-       last parameter is `__builtin_va_alist_' instead of checking the first
-       parameter.  Normally, this is the same, but some functions in MACH
-       have named parameters before va_alist.
-
-       * combine.c (simplify_comparison): Remove abort on paradoxical SUBREGs
-       now that we know they can occur.
-
-       * reload.c (decompose): Handle SCRATCH; it can't conflict with
-       anything.
-       (find_reloads): All operands can set earlyclobber, not just REG & MEM.
-       Add support for "X" constraint.
-       SCRATCH does not match "g" constraint.
+       * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
+       PROTO -> PARAMS.
 
-Sat May  4 14:03:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * enquire.c (EPROP): Avoid a <= out if bad is set.
+       * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
+       i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
+       i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
+       i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
+       i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
+       i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
+       i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
+       i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
+       i386/vxi386.h, i386/win-nt.h, i386/win32.h:
+       Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
 
-       * SYSCALLS.c: Test bsd4_2 along with BSD.
-
-Fri May  3 14:26:51 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * c-decl.c (pushdecl): Stop looping on type if find error mark.
-
-       * loop.c (invariant_p): An address with a PLUS is not the same as
-       MEM_IN_STRUCT_P being set.
-
-       * tree.h (TREE_NO_UNUSED_WARNING): New macro.
-       * stmt.c (warn_if_unused_value): That flag suppresses warnings.
-       * c-typeck.c (build_unary_op): Set flag when converting postinc.
-
-Fri May  3 08:09:47 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
+       Add %(cpp_cpu) to CPP_SPEC.
 
-       * tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Remove workarounds for
-       register elimination problems.
-
-Fri May  3 07:14:22 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * a29k.md: Fix typo in dmac pattern.
-       Make many define_splits that convert DFmode and DImode to one word
-       at a time to operate only after reload completes to improve reg alloc.
-       (movdf): Correct typo in mfacc.
-       (rotlsi3): Count is QImode, not SImode.
-
-       * tm-a29kunix.h (BIGGEST_ALIGNMENT): Change to 64.
-       
-       * tm-romp.h (OPTIMIZATION_OPTIONS): Enable insn scheduling.
-       (register definitions): No longer need dummy register and class;
-       register numbers for FP register change.
-       * romp.md: Use MATCH_SCRATCH instead of allocating pseudos
-       to the dummy register class or base register depending on alternative.
-       (FP insns): Add missing "=" to constraints in CLOBBERs.
-       (extendqisi2, extendqihi2): Now DEFINE_EXPAND.
-       (mc03 peephole): Can do if right shift >= 24 bits.
-       * out-romp.c (reg_15_operand): Remove special case for FP delay slot.
-       (romp_sa_size, output_fpop, output_loadsave_fpops, output_fpops):
-       Change floating-point register numbers.
-
-       * combine.c (simplify_shift_const, case for shifts): Verify that 
-       the host word size is wide enough.
-       Properly handle (ashift (subreg (ashiftrt ...) ...) ...).
-
-       * out-vax.c (print_operand_address, case PLUS): Handle all addresses
-       accepted by GO_IF_LEGITIMATE_ADDRESS.
-
-       * explow.c (plus_constant): force_const_mem does not necessarily
-       return a valid address.
-       * integrate.c (copy_rtx_and_substitute): Likewise.
+       * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
+       Add %(cc1_cpu) to CC1_SPEC.
 
-       * Makefile.in (local-alloc.o): Includes output.h.
-       * rtl.def (SCRATCH, MATCH_SCRATCH): New RTL codes.
-       * regs.h (max_scratch): Add definition.
-       * genconfig.c (walk_insn_part): Handle MATCH_SCRATCH.
-       * genextract.c (walk_rtx): Likewise.
-       * genemit.c (max_operand_1): Likewise.
-       (gen_exp): Emit a SCRATCH for for MATCH_SCRATCH.
-       (gen_insn): We can create (clobber (scratch)).
-       * genoutput.c (scan_operands): Handle MATCH_SCRATCH;
-       use switch instead of if's.
-       * genrecog.c (make_insn_sequence): We can created (clobber (scratch)).
-       (add_to_sequence): Handle MATCH_SCRATCH.
-       * flow.c (life_analysis): Initialize max_scratch.
-       (propagate_block): Update max_scratch with count from this block.
-       (mark_set_1): Make REG_UNUSED note for SCRATCH and count it.
-       * local-alloc.c: Include output.h.
-       (qty_scratch_rtx): New variable.
-       (alloc_qty): Rename INSN_NUMBER to BIRTH since that's what it is.
-       (alloc_qty_for_scratch): New function.
-       (local_alloc): Account for quantities needed for SCRATCH.
-       Allocate and initialize qty_scratch_rtx.
-       (block_alloc): Allocate quantities for SCRATCH operands.
-       (requires_inout_p): Add "X" constraint.
-       * recog.c (scratch_operand): New function.
-       (constrain_operands): SCRATCH matches a register constraint unless
-       strict.
-       Add "X" constraint.
-       * regclass.c (reg_class_record): Add "X" constraint.
-       * reload1.c (emit_reload_insns): Add SCRATCH to test for operand that
-       dies right away; update REG_UNUSED note for SCRATCH.
-       Never need reload insn for SCRATCH, even if no REG_UNUSED note.
-       * rtlanal.c (reg_mentioned_p, reg_overlap_mentioned_p, rtx_equal_p):
-       Support SCRATCH.
-       (volatile_refs_p, side_effects_p, may_trap_p): Likewise.
-       (inequality_comparisons_p, replace_regs): Likewise.
-
-       * flow.c (mark_set_1): Don't do anything special with partial
-       assignments; this is already handled by mark_used_regs and we now
-       want to make LOG_LINKS for these.
-
-       * combine.c: Includes expr.h.
-       (expand_field_assignment, make_extraction): New functions.
-       (get_pos_from_mask, make_field_assignment): Likewise.
-       (can_combine_p): Remove special case for SUBREG in SET_DEST; call
-       expand_field_assignment instead.
-       (try_combine): Remove code to handle STRICT_LOW_PART here.
-       Call expand_field_assignment on SETs in I3.
-       (find_split_point): Split up simple cases of bitfield assignments.
-       (subst, case ZERO_EXTRACT): Remove processing of ZERO_EXTRACT in a
-       SET_DEST from here.
-       (subst, case SET): Try to convert this into a field assignment by
-       calling make_field_assignment.
-       No need to call make_compound_operation for COMPAREs;
-       make_compound_operation now returns an rtx and is no longer passed
-       a pointer.
-       Remove tests for ZERO_EXTRACT in SET_DEST.
-       (make_compound_operation): Now returns rtx and is passed rtx, instead
-       of rtx *.
-       Call make_extraction.
-       (simplify_comparison): Call make_compound_operation here and remove any
-       outermost SUBREGs that aren't doing anything.
-
-       * Makefile.in (combine.o): Includes expr.h.
-
-       * expr.c (convert_to_mode): Correct which cases can use gen_lowpart.
-
-       * final.c (final_scan_insn): Don't set INSN_DELETED_P after writing
-       insn.
-
-       * genoutput.c (main): Don't include aux-output.c in insn-output.c.
-       Include stdio.h before output.h.
-       (output_epilogue): Write definitions for all the predicates
-       placed in `insn_operand_predicate'.
-       * output.h: No longer need to define operand-predicate functions.
-       * configure: (m88k/dg): Only difference between xm-m88k{,dgux}.h was
-       definition of SEPARATE_AUX_OUTPUT, so we don't need xm-m88kdgux.h.
-       * xm-m88kdgux.h: Deleted.
-       Fix typo setting `target' in Makefile.
-       * Makefile.in (AUX_OUTPUT2): Deleted.
-       (OBJS): Remove AUX_OUTPUT2 and add aux-output.o.
-       (aux-output2.o): Now aux-output.o.
-       (insn-output.o): No longer depends on aux-output.c.
-       * make-m88kdgux (AUX_OUTPUT2): No longer define.
-       * tm-m68k.h, tm-romp.h, tm-sparc.h: Define functions in out-*.c and
-       used by insn-output.c.
-       * tm-m88k.h: Remove conditionalization for SEPARATE_AUX_OUTPUT; now
-       always done.
-       No longer define predicate functions; done by genoutput.c.
-       * tm-mips.h: No longer define SEPARATE_AUX_OUTPUT.
-       * out-*.c: Add includes previously present in insn-output.c.
-       * out-sparc.c (output_fp_move_double): No longer static.
-       (output_sized_memop): No longer need to define asm_out_file here.
-       (output_function_epilogue): Correct type; function is void, not char *.
-
-Fri May  3 01:05:44 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
-
-       * sdbout.c (sdbout_one_type): TYPE_FIELDs may contain other kinds of
-       _DECL nodes than just FIELD_DECL nodes (in GNU C++, at least).
-       Don't look through such nodes until further mods are made to handle
-       them better.
-
-Thu May  2 14:43:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * c-decl.c (finish_enum): Don't store enum type as type of value.
-
-       * c-parse.y (YYPRINT, yyprint): New macro and new function.
-
-       * expmed.c (expand_and): Handle both args constant.
-
-       * expr.c (store_field): Avoid refetching from bitfield if possible.
-
-       * math-68881.h (pow): Negate x if negative when taking log.
-
-       * expr.c (emit_move_insn): Fixed typo in `y1 = change_address' call.
-       Reenable the code to move objects word at a time.
-
-Thu May  2 12:29:16 1991  Eric Youngdale  (youngdale at v6550c.nrl.navy.mil)
-
-       * cccp.c (hack_vms_include_specification): Modified conversion of
-       unix filenames to VMS filenames, if no VMS device or directory is
-       present, and a unix style directory name is present, then use the
-       first unix directory name as the VMS device spec. This is only
-       used in '#include <...>' type includes, when the include file has
-       not been found in the standard locations.
-
-Thu May  2 10:06:47 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
-
-       * cplus-decl.c (init_decl_processing): Call init_gc_processing if
-       -fgc is requested.
-       * cplus-init.c (build_new): Argument to build_compound_expr must be
-       a TREE_LIST all the way.  The last elt of the chain cannot be an
-       _EXPR.
-
-Thu May  2 07:33:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * expr.c (expand_expr, case CONVERT_EXPR): Pass bitsize to store_field
-       instead of size in bytes.
-
-Wed May  1 13:33:58 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
-
-       * version.c: Bumped version number to 1.93.
-
-Wed May  1 12:26:36 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * gcc.c (link_command_spec): Pass plain -m to ld.
-
-       * c-decl.c (finish_enum): Clean up re-laying out of type.
-
-Wed May  1 08:04:44 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * Makefile.in: Handle new cplus-*.c files.
-
-       * cplus-typeck.c (common_base_type): Make this function recursive.
-       (build_component_ref): Test whether or not a FIELD_DECL, not whether
-       or not a VAR_DECL||CONST_DECL||TYPE_DECL.
-
-       * cplus-parse.y: Fixed grammar so that template type decls could be
-       used.  Previously, support existed for template decls following
-       types, but not as types.
-       * cplus-pt.c ({push,pop}_template_decls): New functions.
-       (instantiate_template): Call `push_template_decls'.
-       (end_template_instantiation): Let `poplevel' restore old bindings.
-       No need to clear out extra stuff.
-       (pushclass, popclass): Call `{push,pop}_template_decls' if the class
-       we are pushing or popping has template arguments.  These arguments
-       go at class level.
-
-       * cplus-method.c (build_opfncall): Test TRY_SECOND before testing
-       possibly uninitialized XARG2.
-
-       * cplus-lex.c (init_lex): Initialize NODE_TABLE, OPNAME_TAB and
-       ASSIGNOP_TAB to hold zero.  Since these come from malloc'd memory,
-       we cannot trust them to be initialized on startup.
+2000-01-28  Ulrich Drepper  <drepper@redhat.com>
 
-       * cplus-init.c (expand_aggr_init_1): When initializing through a
-       TARGET_EXPR for objects of the same type (e.g., X a = X (10);)
-       use EXP's DECL_RTL as the DECL_RTL of the TARGET_EXPR.
+       * c-decl.c (c_decode_option): Accept optional numeric argument to
+       -Wformat and set warn_format.
+       * c-common.c: Don't emit warning about non-constant printf format
+       string unless warn_format > 1.
 
-       * cplus-decl2.c (finish_file): Handle new flag `-fgnu-binutils'.
-       When zero, don't use GNU extensions to a.out format.  ???Should be
-       merged into varasm.c.
+2000-01-30  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-class.c: Added support for `dossiers'.  This support is
-       implemented by extending the virtual function table and by giving
-       all C++ objects a virtual function table to hold it's dossier.
-       * cplus-decl.c (record_builtin_type): New function to construct
-       dossier information for built-in types.
-       (output_builtin_tdesc_entries): To keep repeated information under
-       control, we only output this information for the file that contains
-       `main'.
-       (init_decl_processing): Many dossier-related changes.   
-       (init_lex): Recognize new reserved words `headof' and `classof' if
-       -fgc.
-       * cplus-parse.y: Grammar now recognizes `headof' and `classof'
-       expressions.
-       * cplus-method.c: Added dossier constructors here.
-       * cplus-tree.h (CLASSTYPE_DOSSIER): New macro: `dossier' is a new
-       field in lang_type.
-       * cplus-typeck.c (convert_for_assignment): Handle
-       `class_star_type_node'.
+       * alpha.md (return_internal): Allow after reload only.
 
-       * cplus-class.c: New variable current_class_depth.  Used to tell
-       what class nesting level the compiler is at.
-       * cplus-decl.c (grokdeclarator): Now supports references to decls
-       that come from nested types.  For example, int foo::bar (foo_tag);
-       where `foo_tag' is a tag that comes from foo.  Previously this was
-       supported only as int foo::bar (foo::foo_tag);
-       * cplus-decl2.c (build_push_scope): build a SCOPE_REF node while
-       pushing into the context for the scope.  When `grokdeclarator' sees
-       one of these nodes (distinuished by its TREE_COMPLEXITY being set to
-       the current_class_depth), it processes the decl and pops the scope.
+2000-01-30  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-class.c (build_vbase_path): Trust objects that are
-       `fixed_type_p'.  Also, don't assume an object is non-null unless
-       flag says this is explicitly so.  InterViews creates and may
-       manipulate (via delete) lots of null objects.
-       (build_vfn_reference): Use IS_AGGR_TYPE test on type, not in
-       INSTANCE.
-       (resolves_to_fixed_type_p): New argument NONNULL is used in case we
-       know and object to be non-zero.  All callers changed.
-
-       * cplus-call.c: New file, from file cplus-class.c.  Contains code to
-       generate method calls.
-       * cplus-class.h: New file, contains common declarations for
-       cplus-class.c and cplus-call.c.
-
-       * cplus-class.c (finish_struct_bits): Don't leave last_conversions
-       uninitialized.
-
-Tue Apr 30 17:14:00 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * expr.c (expand_expr):
-       Preserve volatility when changing ARRAY_REF to use a pointer.
-
-       * vax.md (indirect_jump): Use parens around register, not @.
-
-       * fixincludes (machine/cpu.h): Delete superfluous `static'.
-
-       * tm-decstatn.h (CPP_PREDEFINES): Define __mips and __LANGUAGE_C.
-
-       * explow.c (allocate_dynamic_stack_space): Compensate if
-       STACK_POINTER_OFFSET throws off the alignment.
-
-       * loop.c (strength_reduce): Typos setting not_every_iteration.
-
-Tue Apr 30 16:10:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * vax.md (bicb): Fix typo that caused operand not to be negated.
-       (jlbs/jlbc): Operand[0] cannot be a constant.
-
-       * rtl.h: Put NOTE_INSN_... codes in order.
-       (find_regno_note): Add missing definition.
-
-       * reload.c (find_reloads_address): Handle an indexed stack slot that
-       is made out of range by frame pointer elimination.
-
-Tue Apr 30 14:09:28 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * toplev.c (compile_file): Output gcc2_compiled, not gcc_compiled.
-       * tm-tower-as.h (ASM_IDENTIFY_GCC): Likewise.
-
-Tue Apr 30 13:56:40 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * varasm.c (output_addressed_constants): Return and indication of
-       whether the variable requires link-time relocations.
-       (assemble_variable, get_or_assign_label): Use this value when
-       choosing the section.  Use the data section for variables and
-       constants that are otherwise read-only when -fpic is given and
-       when link-time relocations are required.
-       * tm-*.h (SELECT_SECTION): Accept a new second parameter RELOC.
-
-Tue Apr 30 10:24:36 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * rtl.h (NOTE_INSN_LOOP_VTOP), rtl.c (note_insn_name): Add a new
-       note indicating the virtual top of a loop.
-       * jump.c (duplicate_loop_exit_test): Mark the duplicated exit code
-       in the loop as the virtual top of the converted loop.
-       (squeeze_notes): Move loop-vtop notes as well.
-       * loop.c (scan_loop): When a loop-vtop note is encountered, reset
-       `maybe_never' and `call_passed'.
-       (strength_reduce): Similarly, reset `not_every_iteration'.
-
-Tue Apr 30 08:15:50 1991  Michael Meissner  (meissner at osf.org)
-
-       * expr.c (do_store_flag): Move the join label after setting the
-       target value to 0, rather than before, which generates code that
-       always stores 0 into the target if the machine does not have a
-       builtin scc operation.
-
-Tue Apr 30 06:26:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * reload1.c (reload): When making reg_equiv_mem and reg_equiv_address
-       from reg_equiv_memory_loc, clear the one we aren't setting; it might
-       have been previously set.
-
-       * final.c (final_scan_insn): Correctly handle when the first insn in a
-       SEQUENCE is a JUMP_INSN that forces restoration of a comparison
-       previously thought unnecessary.
+       * i386.c (ix86_compute_frame_size): Omit padding1 if the
+       local frame size is zero.
 
-       * fold-const.c (fold, case PLUS_EXPR): If we have 2 * real_cst, 
-       fold into a new constant instead of making real_cst + real_cst.
+2000-01-30  Richard Henderson  <rth@cygnus.com>
 
-Mon Apr 29 23:09:17 1991  Ken Raeburn  (raeburn at watch.com)
+       * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
+       * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
+       * alpha.md (return): Turn into an expander.
+       (return_internal): Don't use $26.
+       (epilogue): Emit the return insn.
 
-       * cplus-decl.c (output_builtin_tdesc_entries): Corrected
-       declaration of permanent_obstack.
-       (init_decl_processing): Record declaration of int with name "int"
-       rather than null.
-       (finish_decl): Fix typo in comment.
+2000-01-30  Richard Henderson  <rth@cygnus.com>
 
-       * cplus-class.c (finish_struct): Made error message for union
-       member requiring constructor/destructor a little tidier.
-       (resolve_scope_to_name): Look at fields of current type as well as
-       tags, in case of local typedefs.
-       (build_method_call): Permit explicit call of destructor in class
-       that doesn't have one.  (That's what the ARM says....)
+       * alpha.md (negtf2, abstf2): Fix word order thinko.
+       (extendsftf2): New.
+       (trunctfsf2): Avoid intermediate rounding errors.
 
-       * cplus-decl.c (set_nested_typename): New function, extracted from
-       within pushtag.  Extended to deal with null classname.
-       (pushtag): Call it.
-       (pushdecl): For a TYPE_DECL, ensure that the nested typename gets
-       set.
-       (pushdecl_class_level): Ditto.
-       (constructor_name): Test various assertions.
-       (hack_incomplete_structures): If type is a class template, punt.
+2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cplus-input.c (getch): Renamed from get_character.  Callers
-       changed.
-       cplus-lex.c (old getch): Deleted.
-
-       * cplus-lex.c (save_pending_input, restore_pending_input): New
-       functions for saving and restoring lexer state.
-       (process_next_inline): Restore lexer state after each function.
-       cplus-pt.c (end_template_instantiation): Ditto.
-       cplus-input.c (struct input_source, getch, feed_input): Preserve
-       putback_char and lexer state.
-
-       * cplus-input.c (getch): Return magic cookie on end of saved input
-       for lexer to recognize.
-       cplus-lex.c (yylex): Turn it into END_OF_SAVED_INPUT.
-       (process_next_inline): Require it after inline function body.
-
-       * cplus-lex.c (do_pending_inlines): Don't save away current
-       file/line-no info; character input processing should do that.
-       (yyungetc): Turn conditional abort into assertion test.
-       (note_list_got_semicolon): Since variable "type" is available, use
-       it rather than recompute.
-       (identifier_type): Now static.
-       (yylex): Warn about conflicts with class template expansion names.
-
-       * cplus-parse.y (temporary_scope): New variable.
-       (object and scoped_id actions): Set it to current type.
-       (many other actions): Clear it.
-       (scoped_typename): Now derivable also from scoped_id and TYPENAME.
-       cplus-lex.c (yylex): If temporary_scope is set, use it to
-       determine type of current token being examined, instead of looking
-       always in the global scope.  (Can't properly do nested template
-       classes otherwise.)
-
-       * cplus-ptree.c (print_lang_decl): Print out template-info,
-       original-name, decl-main-variant, and pending-inline-info nodes if
-       not null.
-
-       * cplus-pt.c (mangle_class_name_for_template): For negative
-       numbers, use "m" prefix rather than printf's "-".
-       (overload_template_name): Test more assertions.  Use
-       SET_IDENTIFIER_TYPE_VALUE macro.
-       (lookup_template_class): Assert template decl node is non-null.
-       Push to permanent obstacks for new allocations.
-       (instantiate_template): Return new class type in a list.
-
-       * cplus-pt.c (undo_template_name_overload): Clear type local
-       definition of template name.
-       (end_template_instantiation): Call it.
-       cplus-parse.y (structsp actions): Ditto.
-       (named_class_head_sans_basetype): Don't call
-       overload_template_name here.
-       (named_class_head): Call xref_tag, to define a tag, before calling
-       it here.
-
-       * cplus-parse.y (tmpl.1, tmpl.2): Delete type declarations, since
-       they have no values.
-       (yyprint, YYPRINT): New function and macro to work with debugging
-       code added to bison.
-       (datadef -> template_header... actions): Assign yychar, rather
-       than calling yyungetc and yylex.  Require trailing semicolon.
-       (fn.def1 -> PRE_PARSED_FUNCTION_DECL action): Preserve all of
-       terminal value, instead of just TREE_PURPOSE.
-       (tmpl.1 action): Do instantiation only if '{' or ':' not found.
-       (template_instantiation): Call overload_template_name right away.
-       (primary -> .scope new '(' typename ')' '[' ...): Detect and warn
-       about this construct, which appears to be recognizeable, though
-       disallowed by the ARM.
-       (primary -> delete[]): Return error_mark_node.
-       (primary -> obj TYPESPEC::~TYPESPEC()): Catch, parse as valid.
-       Returned value not determined yet.
-       (typespec): No longer derived from PTYPENAME.
-       (LC): Added missing semicolon at end of rule.
-       (stmt): A PTYPENAME can also be used as a label name.
-
-Mon Apr 29 22:18:47 1991  James Van Artsdalen  (james at bigtex.cactus.org)
-
-       * tm-att386.h (ASM_OUTPUT_LOCAL): Align static local variables.
-
-Mon Apr 29 15:20:35 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * fold-const.c (fold): Don't assume an address is nonzero.
-       * cse.c (fold_rtx): Likewise.
-
-       * stmt.c (warn_if_unused_value): No warning for cast of cast of modify.
-
-       * Makefile.in (USER_H): Remove float.h.
-
-Mon Apr 29 13:46:48 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * loop.c (scan_loop): When see a REG_EQUAL note, check for both
-       the move_insn and the REG_RETVAL case, since they can occur together.
-       (move_movables): For the move_insn case, handle library calls just
-       like the older normal case code below, that is, skip to the end of a
-       library call when when see a REG_LIBCALL note, and delete an entire
-       library call if when see a REG_RETVAL note.
-
-Mon Apr 29 12:58:19 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * sched.c: (schedule_block): Rewrite code that computes which
-       registers are live at the end of the block.  Compute this from
-       basic_block_live_at_start info of current block, instead of from
-       all reachable blocks.  Previous code failed if one of the
-       reachable blocks consisted of dead code.
-       (sched_note_set): Set bb_live_regs when DEATH is false.
-
-       * sched.c: Update copyright.  Correct various problems with
-       indentation and white space.
-       (canon_rtx): Delete obsolete code handling INSN_LIST rtx.  Add
-       code to recurse on the operands of a PLUS rtx.
-       (find_symbolic_term): New function.  Recursively search an rtx for
-       a SYMBOL_REF or a LABEL_REF and return pointer to one if found.
-       (memrefs_conflict_p): No longer needs to call canon_rtx on
-       operands of a plus.  Now handles case of two addresses with
-       different base addresses.
-       (schedule_block): Don't set INSN_DELETED_P bit of ignored notes.
-       Verify that REG_DEAD notes have a register value.
-       (sched_analyze_1): Ifdef out obsolete code which calculates cc0
-       dependencies.
-       (sched_analyze): Likewise.
-       (schedule_block): Likewise.
-       (launch_links): Delete obsolete code for handling SPARC 'orcc' insns.
-
-Mon Apr 29 12:09:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * configure: Allow spaces between options and their args.
-
-Mon Apr 29 06:35:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * jump.c (jump_optimize): Don't emit jump to next insn; this would
-       cause jump_optimize to loop.
-       (jump_optimize, duplicate_loop_end_test, do_cross_jump): Never put
-       insn in jump_chain if its INSN_UID is too large.
-       (redirect_tablejump): Likewise.
-
-Sun Apr 28 08:00:01 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * cplus-decl.c (init_decl_processing): Merge changes in builtin
-       function handling to match the way that c-decl.c now works.
-       Also add global variables to support that change.
-       (define_function): Ditto.
-
-       * cplus-decl2.c: Add flags for gc and xref.
-       * cplus-tree.h (DECL_GC_OFFEST): New macro for gc.
-       * cplus-tree.h: Rearrange CLASSTYPE_ASSOC and CLASSTYPE_BASETYPES so
-       that the former now uses TYPE_LANG_SPECIFIC storage, and the latter
-       uses TYPE_BASETYPES.
-       * cplus-tree.h: Change overload names of new and delete to `nw' and
-       `dl'.  Formerly, `new' was being seen as `ne', the encoding for `not
-       equal'.
-
-       * cplus-xref.c: New file.  Adds support for generating
-       cross-reference information such as a class browser or program
-       analyzer would use.
-
-       * cplus-gc.c: New file.  Add support for garbage collection.
-       * cplus-decl.c (finish_decl): Tie decls to their places in the
-       garbage collector.
-       * cplus-init.c (build_new): Added hooks for gc.
-       * cplus-typeck.c (convert_arguments): protect arguments from the
-       garbage collector if -fgc.
-       (build_modify_expr): More gc-related changes.
-
-Fri Apr 26 07:31:26 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * integrate.c (expand_inline_function): Add missing increment of I.
-
-Thu Apr 25 11:07:11 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (various patterns): Use nonimmediate_operand in place of
-       reg_or_nonsymb_mem_operand and constraint `m' in place of `Q'.
-       * tm-m88k.h (EXTRA_CONSTRAINT): Only needed for a call address.
-       * out-m88k.c: reg_or_nonsymb_mem_operand and symbolic_memory_p are
-       now unused.
-
-       * m88k.md (symbolic store patterns): These patterns are all
-       unnecessary and are deleted.
-       * out-m88k.c (emit_move_sequence): Eliminate the case that
-       generated a CLOBBER.  This was intended to use the symbolic store
-       patterns, but isn't needed.
-       (symbolic_memory_operand): Delete, no longer used.
-       (output_prologue): Don't check for suspicious register elimination
-       changes.
-       * tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Treat the frame pointer
-       like the argument pointer as both may change to REG+SMALLINT.
-
-Tue Apr 23 15:08:03 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * out-sparc.c (output_scc_insn): Clean up and expand comments.
-       Don't assume that JUMP_LABEL fields are always valid, they aren't
-       when compiling without optimization.
-
-Mon Apr 22 13:56:43 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * cplus-class.c (prepare_fresh_vtable): Thoroughly update virtual
-       function tables that come from baseclasses to contain the latest
-       overrides from derived classes.  This was done (in a different way)
-       for virtual baseclasses, but left undone for non-virtual
-       baseclasses.
-       (finish_struct_bits): Use assoc lists instead of class basetype list
-       to walk through the classes base classes.  This gives us more
-       relavant classes to check against.
-       * cplus-init.c (init_vfields): New function to recursively walk
-       objects and make sure their vfields are initialized.
-       * cplus-init.c (emit_base_init): Call `init_vfields' from top level.
-
-       * cplus-tree.h (TYPE_IDENTIFIER): New macro, gives the
-       IDENTIFIER_NODE for a given aggr TYPE.
-       * cplus-class.c (add_method): Use TYPE_IDENTIFIER.
-       * cplus-cvt.c (various places): Ditto.
-
-       * cplus-class.c (finish_struct): Add TYPE_DECLs to the list of a
-       class's members that come from the types implicitly declared tags.
-
-       * cplus-decl.c (grokdeclarator): If a function is declared `static
-       inline', don't give it global visibility, regardless of what #pragma
-       interface/implementation suggests.
-
-       * cplus-decl.c (finish_function): ??? Questionable change for PIC:
-       don't let constructors and destructors that manipulate vtables go
-       inline, since this somehow reduces page sharing.  Really???
-
-       * cplus-except.c (init_exception_processing): Use `pushdecl' to
-       install global info that this function sets up.  That way later
-       decls can override this info (such as with an inline function).
-
-       * cplus-init.c (build_vec_delete): Set TREE_SIDE_EFFECTS of
-       controller.  Otherwise the loop won't execute.
-
-       * cplus-method.c (prepare_inline): Rewritten and simplified.
-       (do_inline_method_hair): Ditto.
-
-       * cplus-tree.c (lang_output_debug_info): Only output nested type if
-       we would also output enclosing type.
-
-       * cplus-typekc.c (c_expand_return): Use pseudo for intermediate
-       return value if necessary.  GCC can't read the function return
-       registers in an inline functino when the return value is being
-       ignored.
-
-Mon Apr 22 14:36:01 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * sched.c (init_alias_analysis): Handle REG_EQUIV notes just like
-       REG_EQUAL notes.
-
-       * sched.c (sched_analyze_2): Don't recurse on constant rtx's.
-       This is necessary so that the cc0_rtx in CONST_DOUBLEs won't be seen.
-       (sched_analyze): Call sched_analyze_insn for JUMP_INSNS also, so
-       that cc0 users will get an automatic dependence on their previous
-       insn.
-       (launch_links): Ifdef out special treatment of insns which set the
-       condition codes.  This is obsolete, and was SPARC specific anyways.
-       (new_sometimes_live): Clarify code that aborts if regno is greater
-       than max_regno.
-       (schedule_block): If the last insn sets cc0, then it must always
-       be left in place.
-       (new_insn_dead_notes): New function.  Determines whether a SET or
-       CLOBBER in an insn created by splitting needs a REG_DEAD or
-       REG_UNUSED note added.
-       (update_links): Ignore REG_EQUIV and REG_EQUAL notes on insns that
-       have more than one set.  Generalize flow analysis of the sets in
-       the new insns so that it can handle new insns which have multiple
-       sets or new clobbers.
-
-Mon Apr 22 08:15:50 1991  Michael Meissner  (meissner at osf.org)
-
-       * gcc.c (input_suffix): New global var; holds current file's suffix.
-       (handle_braces): Substitute X in %{.S:X} if the current file has
-       suffix .S.  Similarly, substitute X in %{!.S:X} if the current file
-       does not have suffix .S.
-       (validate_switches): Ignore .S part in %{.S:X} construct.
-
-Sat Apr 20 14:41:17 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
-
-       * final.c (leaf_function_p): Define this in any event.
-
-Sat Apr 20 10:45:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * loop.c (check_dbra_loop): Use GET_RTX_CLASS when appropriate.
-       Check for setting biv with single_set rather than only allowing a SET.
-       If a loop has a `break', we can't reverse it.
-
-       * cse.c (cse_insn): Fold inside operands of a CALL (mostly to find the
-       best address form to use).
-
-       * cse.c (simplify_unary_operation): Convert (neg (neg ..)) to NEG.
-       Similarly for NOT.
-       (simplify_binary_operation): Simplify things like (-a) + b.
-       Convert UDIV with divisor a constant power of two into LSHIFTRT.
-       Similarly for UMOD.
-       Only fold shifts of a zero by a value into zero if the value has
-       no side effects.
-       Remove code to handle negative shift counts.
-
-       * tm-a29k.h (OPTIMIZATION_OPTIONS): Allow insn scheduling to be
-       enabled, now that it works for the 29k.
-
-       * tm-rs6000.h (LINK_SPEC): Add "-bhalt:4" to LINK_SPEC (don't ask!).
-
-Fri Apr 19 13:18:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * explow.c (memory_address): Test `cse_not_expected' instead of
-       `optimize' so that we don't make new pseudos after flow is run.
-
-       * genflags.c (gen_insn): If extra condition is more than one line,
-       use \'s to make proper multi-line macro definition.
-
-Thu Apr 18 13:40:01 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * loop.c (check_dbra_loop): Reenable no_use_except_for_counting code
-       which was mistakenly ifdefed out as buggy.  The actual bug was in
-       strength_reduce, and has already been fixed.
-
-Thu Apr 18 09:47:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * loop.c (record_giv): Allow for the case where regno_last_uid
-       of DEST_REG has been moved or deleted.
-
-       * rtlanal.c (replace_regs): Add missing argument in recursive call.
-
-       * recog.c (nonmemory_operand): Only call general_operand for
-       a SUBREG if it is a MEM, just like register_operand.
-
-       * local-alloc.c (block_alloc): Handle case where the last insn of
-       a REG_NO_CONFLICT block requires some CLOBBERs, but is a single SET.
-
-       * out-romp.c, out-rs6000.c (next_insn_tests_no_unsigned): If a
-       REG_UNUSED note for (cc0) is present on INSN, return 1.
-
-       * jump.c (delete_jump): If the previous insn sets cc0 but we can't
-       delete it for some reason, add a REG_UNUSED note for cc0 in that insn.
-
-       * out-a29k.c: Rename input_operand to in_operand and output_operand
-       to out_operand to avoid conflict with output_operand in final.c.
-       * a29k.md: Likewise.
-       (call patterns): Don't put SYMBOL_REF in MEM for recursive call;
-       it might not be recursive if inlined; let cse do it later.
-       * tm-a29k.h (RTX_COST, ADDRESS_COST): All addresses have the same
-       cost, but MEM is expensive.
-
-Tue Apr 16 16:01:47 1991  Michael Meissner  (meissner at osf.org)
-
-       * configure: Add osfrose, osf, and mips/dec-osfrose.
-
-       * out-mips.c (toplevel): Include necessary include files so
-       out-mips.c can be compiled separately.
-       (g_switch_value): New variable to hold -G xx value.
-       (g_switch_set): New variable to indicate if -G xx used.
-       (current_function_file): New variable to hold last .file.
-       (file_in_function_warning): New variable to hold if we've warned the
-       user that ECOFF can't switch files within a function.
-       (mips_rtx_classify): New array to classify an insn.
-       (mips_reg_names): New array to hold the register names.
-       REGISTER_NAMES initializes all elements to point into here, and
-       override_options resets the names if -mrnames is used.
-       (mips_sw_reg_names): New array to hold the alternate register names.
-       (mips_regno_to_class): New array to map hard register number to
-       register class.
-       (uns_arith_operand): Rewrite so call to register_operand is done
-       last, not first.
-       (arith_operand): ditto.
-       (arith32_operand): ditto.
-       (large_int): New function to return true if int constant will take 2
-       instructions to load into a register.
-       (reg_or_0_operand): New function to return true if a register or
-       constant 0 is the operand for use in store patterns.
-       (md_register_operand): New function to return true if either the hi
-       or lo register is used.
-       (mips_const_double_ok): New function to return true if a
-       CONST_DOUBLE can be used as a constant in a RTL expression.  At
-       present, only DImode constants and 0.0 is allowed.
-       (simple_memory_operand): New function to return true if a memory
-       reference is a simple register + small offset.
-       (gp_memory_operand): New function to return true if a memory
-       reference uses the global pointer.
-       (mips_move_instructions): New function to handle all data movement
-       of one word or less.
-       (mips_move_2words_instructions): New function to handle all data
-       movement of two words.
-       (init_cumulative_args): Remove print_tree debug call.
-       (function_arg_partial_nregs): Fix bug in passing structures where
-       the wrong field was used.
-       (print_options): Enable this function, body was in #if 0.
-       (override_options): Spell function name with two r's.  Change how
-       the -G xx and -mGx options are handled.  If neither passed use the
-       appropriate default.  If -mgas make sure debug format is DBX, and if
-       not -mgas, use SDB debug format.  If -mrnames and -mgas, give an
-       error message, otherwise set up mips_reg_names.  Set up the
-       mips_rtx_classify array.
-       (print_options): New function instead of a long macro.  Add %C to
-       print part of the opcode for a branch condition, %N to print the
-       inverted branch condition, %( to do .set noreorder, %) to do .set
-       reorder, %[ to do .set noat, %] to do .set at, %& to do .set
-       noreorder if filling delay slots, and %# to print nop if delay slot
-       not filled.
-       (print_operand_address): New function instead of a long macro.
-       (compute_frame_size): New function to abstract all the frame related
-       information like frame size, saved registers, etc.
-       (save_restore): Common function between the prologue and epilogue to
-       save/restore the registers in the proper order.  Make $31 saved at
-       function pc +4.
-       (function_prologue): Call compute_frame_size and save_restore.  Make
-       sure the appropriate .file is done before any statement in the
-       prologue since the MIPS ECOFF requires this.
-       (function_epilogue): Call compute_frame_size and save_restore.
-
-       * tm-decstatn.h (CPP_PREDEFINES): Define the appropriate macros.
-       (*_SPEC): Move the DECstation related specs here from tm-mips.h.
-
-       * tm-decrose.h (new file): File to support OSF/1 with OSF/rose
-       object format.
-
-       * tm-mips-sysv.h (CPP_PREDEFINES): Define the appropriate macros.
-       (*_SPEC): Move the DECstation related specs here from tm-mips.h.
-
-       * tm-mips-bsd.h (CPP_PREDEFINES): Define the appropriate macros.
-       (*_SPEC): Move the DECstation related specs here from tm-mips.h.
-
-       * tm-mips-news.h (CPP_PREDEFINES): Define the appropriate macros.
-       (*_SPEC): Move the DECstation related specs here from tm-mips.h.
-
-       * tm-iris.h (CPP_PREDEFINES): Define the appropriate macros.
-       (*_SPEC): Move the DECstation related specs here from tm-mips.h.
-       (SET_FILE_NUMBER): Define, so that .file number is always 1.
-       (LABEL_AFTER_LOC): Define, so that a label appears after .loc.
-       (STACK_ARGS_ADJUST): Iris frames require 32 bytes at the top of the
-       call frame instead of the normal MIPS 16.
-
-       * mips.md (all): Add first cut at attributes to identify insn type.
-       (all): Where appropriate, use @ form for alternates, instead of
-       using C code.
-       (define_delay): Put arithmetic and one word stores in call, jump,
-       branch delay slots.
-       (define_function_unit): Add functional unit definitions for memory
-       and integer multiply/divide.
-       (anonymous add/subtract insn): Remove support for reg + large offset
-       that omitting the frame pointer caused in 1.xx to see if it is
-       needed anymore.
-       (mulsi3): Add clobbers for the hi/lo registers.  Add a define_split
-       and an anonymous define_insn to separate the mult instruction from
-       the mflo.
-       (divmodsi4): Add clobbers for the hi/lo registers.
-       (udivmodsi4): Add clobbers for the hi/lo registers.
-       (divsi3): Add clobbers for the hi/lo registers.  Restrict divides
-       and modulus to register / register.
-       (modsi3): ditto.
-       (udivsi3): ditto.
-       (ymodsi3): ditto.
-       (divide peepholes): Add two peepholes to catch divide followed by
-       modulus of the same values.
-       (anddi3): Remove pattern, use default behavior.
-       (iordi3): Remove pattern, use default behavior.
-       (xordi3): Remove pattern, use default behavior.
-       (truncsiqi2): Remove pattern, use default behavior.
-       (truncsihi2): Remove pattern, use default behavior.
-       (trunchiqi2): Remove pattern, use default behavior.
-       (truncdfsf2): Remove asm comment.
-       (extendhisi2): Add a define_split for shift case.
-       (extendqisi2): Add a define_split for shift case.
-       (extendqihi2): Add a define_split for shift case.
-       (movdi): Turn into a define_expand to guarantee that memory <->
-       memory moves go through a register.
-       (movsi): ditto.
-       (movhi): ditto.
-       (movqi): ditto.
-       (movsf): ditto.
-       (movdf): ditto.
-       (movdi_internal): new define_insn.  Add fp registers to the
-       alternatives.  Call mips_move_2words_instructions to do the actual
-       movement.  Require memory addresses to be offsetable.
-       (movdf_internal): ditto.
-       (movsi_internal): new define_insn.  Add storing 0 to memory
-       directly using $0.  Add transfer to/from multiply/divide registers,
-       and to the fp status register.  Call mips_move_instructions to do
-       the actual work.
-       (movhi_internal): ditto.
-       (movqi_internal): ditto.
-       (movsf_internal): ditto.
-       (jump): Add %& to turn on .set noreorder if filling delay slot.
-       (tablejump): Ditto.
-       (call): Ditto.
-       (call_value): Ditto.
-       (indirect_jump): New required pattern, add %& for delay slot.
-       (nop): Use %( %) to turn on/off .set noreorder.
-       (probe): Use %[ %] to turn on/off .set noat.
-
-       * tm-mips.h (abort): Define abort to be fancy_abort for now.
-       (toplevel): Move all extern's to the start of the file, rather than
-       scattered throughout.
-       (OPTIMIZATION_OPTIONS): New macro, -O sets -fomit-frame-pointer, and
-       -fdelayed-branch.  -O2 sets -fstrength-reduce, -fcse-follow-jumps,
-       -fexpensive-optimizations, -fthread-jumps, -frerun-cse-after-loop.
-       -O3 sets -finline-functions.
-       (*_SPEC): Move most of the target specific spec's to the appropriate
-       file, rather than defining them in tm-mips.h.  Defaults are for MIPS
-       RISC-OS with default system.
-       (CPP_SPEC): If preprocessing .S files, define LANGUAGE_ASSEMBLY
-       instead of LANGUAGE_C.
-       (MIPS_VERSION): Add meissner version number.
-       (MIPS_DEBUGGING_INFO): Define this for the future.
-       (TARGET_*): reorder which bit means what.  Add bits so we can tell
-       whether any of the -mG[012] options were used.  Redefine some debug
-       switches.
-       (BYTES_BIG_ENDIAN): Always define to 0/1 now.
-       (WORDS_BIG_ENDIAN): Always define to 0/1 now.
-       (MAX_PARM_BOUNDARY): Delete, since it's no longer used.
-       (BIGGEST_FIELD_ALIGNMENT): Define to be 64.
-       (CONSTANT_ALIGNMENT): New macro, make sure strings are aligned.
-       (DATA_ALIGNMENT): New macro, make sure byte arrays are aligned.
-       (FIRST_PSEUDO_REGISTER): Bump to 67, add hi, lo, fcr31.
-       (FIXED_REGISTERS): Add initializations for hi, lo, and fcr31.
-       (CALL_USED_REGISTERS): Add initializations for hi, lo, and fcr31.
-       (MD_REG_P): New macro to return if hi/lo register.
-       (ST_REG_P): New macro to return if fp control register.
-       (HARD_REGNO_NREGS): Return 4 for single precision complex.
-       (MODES_TIEABLE_P): Add complex float type support.
-       (FRAME_POINTER_REQUIRED): Make this always 0.
-       (NO_RECURSIVE_FUNCTION_CSE): New macro, define as 1.
-       (enum reg_class): Add class for the hi register, lo register, either
-       hi or lo registers, status registers.
-       (REG_CLASS_NAMES): Support new register classes.
-       (REG_CLASS_CONTENTS): ditto.
-       (REG_CLASS_FROM_LETTER): ditto.
-       (REGNO_REG_CLASS): Use an array to map register # -> class.
-       (CONST_OK_FOR_LETTER_P): Add `L' for constants which have bottom 16
-       bits all zero, and `M' which require two instructions to load.
-       (CONST_DOUBLE_OK_FOR_LETTER_P): Use `CONST_DOUBLE_HIGH' and
-       `CONST_DOUBLE_LOW'.
-       (EXTRA_CONSTRAINT): New macro, `Q' for gp memory references, and `R'
-       for reg + small offset references.
-       (struct mips_frame_info): New structure to hold all frame related
-       information, calculated by compute_frame_size.
-       (INITIAL_FRAME_POINTER_OFFSET): New macro, use compute_frame_size to
-       calculate where the frame should go.
-       (ACCUMULATE_OUTGOING_ARGS): New macro, define so stack pushes are
-       folded into the frame.
-       (REG_PARM_STACK_SPACE): Redefine to take an argument and return 16.
-       (OUTGOING_REG_PARM_STACK_SPACE): New macro, define to say we must
-       allocate stack space for arguments passed in registers.
-       (TARGET_FLOAT_FORMAT): New macro, define as IEEE_FLOAT_FORMAT.
-       (FUNCTION_ARG_BOUNDARY): New macro to determine argument padding
-       requirements.
-       (MIPS_STACK_ALIGN): New name for AL_ADJUST_ALIGN macro.
-       (FIX_FRAME_POINTER_ADDRESS): Delete, no longer used.
-       (FUNCTION_PROFILER): No longer have to switch between different
-       register names, override_options now sets up reg_names correctly.
-       (TRAMPOLINE_TEMPLATE): New macro, define as a dummy.
-       (TRAMPOLINE_SIZE): ditto.
-       (INITIALIZE_TRAMPOLINE): ditto.
-       (INDIRECTABLE_ADDRESS): Delete, fold into GO_IF_LEGITIMATE_ADDRESS.
-       (GO_IF_LEGITIMATE_ADDRESS): If -mdebuga, don't allow <label>(<reg>)
-       type addresses, which the machine really doesn't support, but you
-       currently get better code in some instances by pretending it does
-       support it.
-       (LEGITIMATE_CONSTANT_P): Call mips_const_double_ok if CONST_DOUBLE.
-       (ENCODE_SEGMENT_INFO): New macro, set SYMBOL_REF_FLAG (ie, volatil)
-       if refering to an item via the gp pointer.
-       (SLOW_BYTE_ACCESS): Define to 1, it is supposed to generate better
-       code on RISC machines.
-       (classify_op): New macro to classify an insn.
-       (additive_op): Use classify_op to figure out if PLUS or MINUS.
-       (divmod_op): New macro to identify DIV, MOD, UDIV, UMOD insns.
-       (unsigned_op): New macro to identify UDIV, UMOD insns.
-       (REGISTER_NAMES): All names are now pointers into mips_reg_names, so
-       that we don't have to continually test whether -mrnames is used or
-       not.  The override_options function sets this up appropriately.
-       (REGISTER_NUMCHAR): Deleted.
-       (REG_NAME): Deleted.
-       (ADDITIONAL_REGISTER_NAMES): Define both names for the gp registers,
-       so people can use either $r4 or a0 in asm statements.
-       (PRINT_OPERAND): Call print_operand function instead of expanding a
-       huge macro.  Add %C, %N, %(, %), %[, %], %&, %#.
-       (PRINT_OPERAND_PUNCT_VALID_P): Add `(', `)', `[', `]', `&', and `#'.
-       (PRINT_OPERAND_ADDRESS): Call print_operand_address function instead
-       of expanding a huge macro.
-       (DBX_OUTPUT_SEQEND): New macro, emit .set reorder after filling
-       delay slot(s).
-       (ASM_OUTPUT_SOURCE_FILENAME): Add check for doing .file of same file
-       -- this is needed for the prologue to do a .file before all prologue
-       instructions, rather than after the instructions which set up the
-       stack.  Also, warn about #line requests that cannot be honored in
-       MIPS ECOFF binaries.
-       (ASM_OUTPUT_CASE_END): Delete, since it was only used to go back to
-       the text section, and GCC does this now automatically.
-       (READONLY_DATA_SECTION): New macro, define to be rdata_section.
-       (SELECT_SECTION): Don't force volatile readonly items into .data.
-       (ASM_COMMENT_START): New macro, define to be '\t\t# ' for -dp.
-       (SEPARATE_AUX_OUTPUT): New macro, define this to separately compile
-       out-mips.c.
-
-Tue Apr 16 15:00:51 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * unroll.c (final_giv_value): Use expand_binop instead of
-       gen_sub2_insn when emitting subtract insns, since expand_binop
-       will work for any operands.
-
-       * sched.c (schedule_insns): Don't split no-op moves; doing so
-       breaks the code that handles REG_NO_CONFLICT blocks.
-       (update_links): Delete the code that prints a warning for
-       REG_EQUAL notes where the original dest can't be found.  This no
-       longer occurs because of the above change.
-
-       * sched.c: Generalize memory aliasing code so that it will work on
-       non-RISC machines.  Instead of saving just the insn on the pending
-       lists, now saves both the insn and the mem rtx.  Old variables
-       pending_read and pending_write replaced with pending_read_insns,
-       pending_read_mems, pending_write_insns, and pending_write_mems.
-       (read_dependence, true_dependence, anti_dependence,
-       output_dependence): Now passed a MEM rtx instead of a PATtern.
-       (add_insn_mem_dependence): New function.  Adds an insn and a mem
-       to a pending list pair.
-       (sched_analyze_1, sched_analyze_2, sched_analyze): Modified to use
-       new pending list scheme.
-       (schedule_block): Likewise.
-       (schedule_insns): Likewise.
-
-Tue Apr 16 12:31:07 1991  Jeffrey A. Law  (law at mole.gnu.ai.mit.edu)
-
-       * Makefile.in (install-man): Look for protoize.1 and unprotoize.1
-       in the current directory, not $(srcdir)
-       (install-headers): Use basename to strip off $(srcdir) from 
-       include files when installing and changing mode.
-
-Tue Apr 16 08:10:38 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * rs6000.md (extendqixi2): Add CLOBBER to the first SET as well as
-       the second.
-       (load_multiple): Fix typo in operand number and add newline.
-
-       * reload.c (find_reloads_address_1): Pass actual location of a
-       MEM used in an address; also handle the case when the MEM was
-       copied.  Ensure we reload the copy, not the original address.
-
-       * reload1.c (eliminate_regs, case {INSN,EXPR}_LIST): Correctly handle
-       the cases when one or more operations is (nil).
-
-       * local-alloc.c (block_alloc): Check for REG_EQUAL on list insn
-       of REG_NO_CLOBBER sequence, not first.
-       (no_conflict_p): Set LAST and use INSN instead of P for loop start.
-
-Mon Apr 15 12:55:12 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * loop.c (strength_reduce): Don't emit an insn after loop_end to
-       set the final value of a reversed biv.  There is already an insn
-       there setting the biv's proper final value.
-
-Sun Apr 14 18:32:05 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * gnulib1.c (various functions): Added declaration of INTIFY to
-       every function which has a FLOAT_ARG_TYPE argument or return value.
-
-Sun Apr 14 18:31:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * c-decl.c (store_parm_decls): Traditional float parm becomes double.
-
-Sat Apr 13 17:35:07 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * m68k.md (storing 32-bit field with movl): Allow any immediate arg 3.
-
-       * expmed.c (store_bit_field): For fields bigger than a word:
-       Avoid special use of SImode, and don't crash if VALUE is CONST_INT.
-
-Fri Apr 12 02:04:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * reload.c (find_reloads): Like prev change here, for optional reloads.
-
-       * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Must set %o0 to the address
-       LPBX0 by adding in the low part of the address before calling
-       ___bb_init_func.
-
-       * tm-next.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
-       New macros.  Place reference to constructor or destructor into
-       constructor or destructor section.
-
-       * tm-next.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS):  Add
-       new constructor and destructor sections.
-
-       * jump.c (squeeze_block_notes,squeeze_notes): Chage the name of
-       squeeze_block_notes to squeeze_notes.  Also handle LOOP_BEG, LOOP_CONT
-       and LOOP_END notes, since these must remain in their original order.
-
-       * cccp.c (skip_to_end_of_comment): Handle warn_comment.
-
-       * m68k.md (dbra patterns): Use `=' in constraint of op 0.
-
-       * gcc.c (process_command): Handle -save-temps.
-       (do_spec_1): Handle %g like %b if -save-temps.
-       (verbose_flag): Renamed from `vflag'.
-
-       * tm-sparc.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Don't define this.
-
-Fri Apr 12 00:57:48 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * sched.c: Update all comments to reflect source changes.
-       Make old_live_regs a static global, instead of local to schedule_block.
-       Schedule_block is now void, since its return value was always 1.
-       Rename last_function_call_not_const to last_pending_memory flush.
-       This can not be a CALL_INSN or a INSN that writes memory.
-       New variable pending_lists_length so that the lists can be flushed
-       when they get too long.
-       Use GET_RTX_CLASS instead of multiple GET_CODE calls whenever it
-       makes sense.
-       (read_dependence): New Function.  Returns one if two reads are
-       dependent.  This can happen if both are volatile reads.
-       (true_dependence, anti_dependence, output_dependence): Two volatile
-       memory access are always dependent.
-       (order_calls): Function deleted.  It was very short, it was only called
-       once, and it no longer did what its name implied.  Its one call was
-       replaced with the body of the function.
-       (sched_analyze_1): Correctly handle stripping of SUBREGs, etc from
-       the set dest.
-       If the pending lists are longer than 32 when processing a memory
-       write, then make this write depend on all previous and all future
-       memory accesses so we can flush the pending list.  This is necessary
-       because the algorithms used are O(N*N).
-       (sched_analyze_2): For memory reads, check whether it is read
-       dependent on any previous memory read (this can happen if both reads
-       are volatile).
-       (sched_analyze_insn): Replace call to order_calls with the body of
-       that function.
-       (sched_analyze): Don't clear last_memory_pending_flush for a non-const
-       call, since any future call must still depend on all previous memory
-       accesses.
-       (sched_note_set): Correct handling of SUBREGs, etc.  For partial sets
-       of a register, must treat this exactly the same way as flow.c, i.e.
-       a partial set of a register does not kill the register.  Delete
-       ifdefed out code which is obsolete.
-       (attach_deaths): New argument SET_P, which indicates whether this is
-       a set (if true) or a use (if false) of the rtx X.  Correct handling
-       of REG_DEAD notes, to account for the new REG_UNUSED note.
-       (attach_deaths_insn): Pass new additional parameter to attach_deaths.
-       Always call attach_deaths for sets within a parallel.  Call
-       attach_deaths for clobbers.
-       (new_sometimes_live): Ifdef out code which should never be executed,
-       and replaced with call to abort.
-       (schedule_block): Now void.
-       When processing block to find dead_regs, don't unlink REG_UNUSED notes,
-       but must mark the indicated register as dead.
-       (update_links): Completely rewritten to make more general.  Now handles
-       all REG_NOTEs except REG_INC and REG_LABEL.  No longer makes simple
-       assumptions about the form of instructions.  New argument orig_insn,
-       which is the original unsplit insn.
-       (schedule_insns): Delete unused volatilep code.  Pass new parameter
-       to update_links.
-
-Thu Apr 11 15:34:44 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * out-m88k.c (pic_addressing_base_rtx): Use pic_offset_table_rtx
-       instead.  Otherwise, PIC fails miserably for inline functions.
-       (legitimize_address): Support -mbig-pic.
-       (print_operand): Add `g' for printing #got_rel (for -mbig-pic).
-       * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): PIC_OFFSET_TABLE_REGNUM
-       is used and is fixed for PIC.
-       (GO_IF_LEGITIMATE_ADDRESS): Distinguish the -mbig-pic case.
-       * m88k.md (SImode hi16/lo16): Use %g for -mbig-pic.
-
-Wed Apr 10 21:53:32 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * unroll.c: Change global variable declarations to static.
-       Four new global variables loop_iteration_var, loop_initial_value,
-       loop_increment, and loop_final_value, used for communication between
-       loop_iterations and precondition_loop_p.
-       (unroll_loop): Before deleteing the insns in the original loop body,
-       emit a label after the last insn to be deleted, to ensure that no
-       delete_insn call will delete past that point.
-       (precondition_loop_p): Use global loop_* variables setup by
-       loop_iterations, instead of trying to calculate their values again.
-       (copy_loop_body): Don't emit copies of the start_label.
-       (approx_final_value): COMPARISON argument now passed as the pair
-       COMPARISON_CODE and COMPARISON_VALUE.
-       (find_splittable_regs): When completely unrolling a loop, and the
-       initial value of a biv is a hard register or itself, then must
-       create a new register to hold its initial value for splitting.
-       (loop_iterations): Set the new global variables loop_*.
-       If the comparison value is an invariant register, then search the insns
-       before the loop to try to find a constant value for the register.
-
-Wed Apr 10 16:02:16 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * out-m88k.c (pic_addressing_base_rtx): A pseudo register coined
-       for each function as needed in legitimize_address.
-       (emit_move_sequence): Use legitimize_address instead of generating
-       HIGH/LO_SUM.
-       (legitimize_address): Rework, based on the sparc version, to
-       implement PIC.
-       (output_call): Use the #plt form when doing PIC.
-       (m88k_layout_frame): The addressing base register is no longer
-       fixed and r1 need not be saved for PIC.
-       (output_prologue): Output instructions to setup the addressing
-       base register if one is needed.
-       (print_operand_address): Support the PIC case.
-       * m88k.md (most patterns using hi16/lo16): Disable these for PIC.
-       * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): No longer needed.
-       (ADDRESSING_BASE_REGNUM): Derived from pic_addressing_base_rtx.
-       (GO_IF_LEGITIMATE_ADDRESS): Accept the PIC case.
-       (LEGITIMIZE_ADDRESS): Use legitimize_address instead of HIGH/LO_SUM.
-
-       * make-m88k, make-m88kdgux: Use SysV INSTALL = cp and for DG/UX,
-       use the bison -l option to allow debugging in c-parse.tab.c.
-
-       * From kenner@vlsi1.ultra.nyu.edu.
-       * out-m88k.c: Include insn-config.h before conditions.h, which
-       requires it.
-       * xm-m88kdgux.h: Define SEPARATE_AUX_OUTPUT before including config.h.
-       * tm-m88k.h: Declare MD functions only if SEPARATE_AUX_OUTPUT.
-
-       * tm-m88k.h, tm-m88kdgux.h, tm-m88ksvr4.h: Rework TARGET_VERSION.
-
-Wed Apr 10 08:19:02 1991  Richard Stallman  (rms at apple-gunkies)
-
-       * caller-save.c (emit_mult_restore): Typo testing offset[regno] sign.
-
-       * fold-const.c (target_isinf): Test real value for infinitude.
-       * real.h (REAL_VALUE_ISINF): Use target_isinf.
-
-       * configure: Change / to -- in value of `target' in Makefile.
-
-Tue Apr  9 20:09:49 1991  James Van Artsdalen  (james at bigtex.cactus.org)
-
-       * configure: Modify assignment to `target' in Makefile.
-       (AIX target): Use correct config files.
-       
-       * make-aix386: New file.
-
-Tue Apr  9 19:28:16 1991  Torbjorn Granlund  (tege at zevs.sics.se)
-
-       * longlong.h (header):
-       Modify definition of count_leading_zeros for input = 0.
-       * (68020): Test for __NeXT__ too.
-       * (68020 __umulsidi3, umul_ppmm, udiv_qrnnd):
-       Use constraints "dmi", not "g" (avoid address registers).
-       * (88000 add_ssaaa, sub_ddmmss): Use r modifier for output
-       templates, use J, not I, as constraint for the carry-in insns
-       * (at the end of the file): If UDIV_NEEDS_NORMALIZATION is not
-       defined, define it as 0.
-
-Tue Apr  9 19:14:34 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * function.c (optimize_bit_field): Fix typo.
-
-       * cccp.c (do_define): Don't crash when a builtin macro is
-       redefined.
-
-Tue Apr  9 15:11:42 1991  Richard Stallman  (rms at apple-gunkies)
-
-       * expr.c (move_by_pieces): Don't fail to compile if no movqi.
-
-       * emit-rtl.c (get_last_insn_anywhere): Use first nonempty seq.
-
-       * varasm.c (assemble_constructor): Fix typo.
-
-Fri Apr  5 22:15:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * rs6000.md (extendqixi): Add CLOBBER to ASHIFTRT insn.
-
-       * combine.c (simplify_shift_const): Shift operand of PLUS using
-       correct mode.
-       Correctly simplify outer_const when done.
-
-       * reload.c (push_reload): Don't de-reference INLOC if it is 0.
-
-       * expr.c (convert_to_mode): Call protect_from_queue.
-
-Fri Apr  5 13:29:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * varasm.c (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
-       Accept two arguments.
-
-Fri Apr  5 08:45:18 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * expmed.c (expand_divmod): Convert OP1 to COMPUTE_MODE when we
-       convert OP0.
-
-       * combine.c (subst): Use gen_binary.
-       (simplify_comparison): If we have a ZERO_EXTRACT from a constant
-       with only one bit set, convert into comparison of position with
-       location of bit in constant; this simplifies ((1 << x) & 1) == 0.
-
-       * combine.c (gen_lowpart_for_combine): Copy code for CONST_DOUBLE
-       from gen_lowpart instead of calling it; it will abort for certain
-       floating-point cases, while we will just surround the object with
-       a SUBREG.
-
-Thu Apr  4 22:31:36 1991  Jim Wilson  (wilson at cygnus.com)
-
-       * unroll.c (new file): Implements loop unrolling.  Completely
-       unrolls small constant bounded loops.  Unrolls other constant
-       bounded loops by an amount modulo the number of iterations so that
-       only one exit test is needed.  Preconditions loops whose iteration
-       count can be calculated at run time, so that only one exit test
-       is needed.  Can also unroll any other loop by having multiple
-       copies of the exit tests.  Tries to simplify addresses while
-       unrolling.
-
-       * tree.def: BLOCK trees have 4 fields, not 5.
-
-       * toplev.c: Add new flag -dt to dump RTL after the second cse pass.
-       Define two new flags, flag_unroll_loops and flag_unroll_all_loops,
-       and add code to support their use for loop unrolling.  Print the
-       exec time for the shorten-branch pass in the proper place, i.e.
-       after delayed branch reorganization.
-
-       * stmt.c (find_loop_tree_blocks): New function.  Creates a mapping
-       between BLOCK trees and loops.  This info is needed when doing both
-       loop unrolling and outputting debugger info.
-       (unroll_block_trees): New function.  Makes COPIES copies of the block
-       trees corresponding the loop indicated by LOOP_NUMBER, so that the
-       BLOCK notes inside the loop will still match the BLOCK trees for
-       the loop.
-
-       * rtl.h: Document the new named pattern
-       "decrement_and_branch_until_zero".  Add macros to access new
-       field of inline_header rtx, which holds a pointer to the function's
-       original DECL_INITIAL tree.
-
-       * rtl.def: New entry for inline_header to hold a pointer to the
-       function's original DECL_INITIAL tree.
-
-       * loop.h (new file): Move many declarations from loop.c to the new
-       file loop.h, and change some from static to extern, so that they
-       can be shared with unroll.c.  Also globalize names for variables
-       changed from static to extern.
-
-       * loop.c: Move many declarations from loop.c to the new file loop.h,
-       and change some from static to extern, so that they can be shared
-       with unroll.c.  Add misc comments to better explain the code.
-       Change name of global arrays loop_start and loop_end to
-       loop_number_loop_starts and loop_number_loop_ends so that they won't
-       be confused with local loop_start and loop_end variables.
-       New variables loop_number_exit_labels, loop_number_first_block,
-       loop_number_last_block, loop_number_block_level, loop_n_iterations.
-       Old_max_reg renamed to max_reg_before_loop.  Max_uid renamed to
-       max_uid_for_loop.  Induct_var renamed to reg_iv_type.
-       Induct_struct renamed to reg_iv_info.  Class_struct renamed to
-       reg_biv_class.  Iv_list renamed to loop_iv_list.
-       Rename (struct induction) field always to always_computable.
-       Rename (struct induction) field family to next_iv.
-       New (struct induction) field not_replaceable.
-       (loop_opt): Add code to allocate some new arrays for unrolling
-       support.  Add call to find_loop_tree_blocks to create the BLOCK tree
-       to loop map needed when unrolling and outputting debugger info.
-       (scan_loop): Fix setting of maybe_never of label/jump.  The old code
-       always failed.
-       (prescan_loop): Delete obsolete code.
-       (find_and_verify_loops): Add code to initialize
-       loop_number_exit_labels.
-       (mark_loop_jump): Add code for keep chain of loop_number_exit_labels
-       for each loop.
-       (invariant_p): LABEL_REFs are not invariant when doing loop unrolling.
-       Remove static from definition, so that it can be called from unroll.c.
-       (strength_reduce): Change name of variable maybe_never to
-       not_every_iteration, to help emphasize that it is not the same
-       as the variable maybe_never in the code motion code.  Modify code
-       that computes its value so that it will be false more often, resulting
-       in better code.
-       (strength_reduce): Added code to call the new loop unrolling
-       functions, e.g. unroll_loop, loop_iterations, etc.
-       (strength_reduce): New code to handle biv's and giv's which must
-       be set to their final_value after the loop exits.
-       (strength_reduce): Reversed giv's and biv's must have their values
-       calculated differently.  Add new field reversed to struct induction,
-       and code to check and use its value.
-       (strength_reduce): Only check value of bl->nonneg for architectures
-       that have a decrement_and_branch_until_zero instruction.
-       (find_mem_givs): New argument loop_start.
-       (record_giv): New argument loop_start.
-       The always_computable field for DEST_ADDR givs is always set true.
-       New code to check for case of spaghetti code, in which case the
-       giv can never be considered replaceable.
-       (check_final_value): New function. For givs which are not otherwise
-       replaceable, try to calculate their final value, and then try
-       to use this to make them replaceable.
-       (update_giv_derive): Skip inner loop if giv is known to be underivable
-       at the beginning.  Must set cant_derive if we pass an insn that
-       modifies the giv's biv, and we can't calculate an adjustment.
-       (emit_iv_add_mult): Remove static definition so that it is callable
-       from unroll.c.
-       (check_dbra_loop): Reversed biv's must be marked as such, so that
-       they can be treated specially in the rest of loop.c.
-       (final_biv_value): Moved to unroll.c, alongside the new function
-       final_giv_value.  Extensively rewritten to work for most common
-       cases.
-       (update_reg_last_use): Verify that insns have a valid luid before
-       trying to use it.  Don't perform any action if no value luid.
-       (get_condition): Correct initial comment.
-       (get_condition_for_loop): Remove static definition so it is callable
-       from unroll.c.
-
-       * integrate.h: Replace `tree' use in definition with
-       `union tree_node *' so that tree.h does not have to be included when
-       this file is included.  
-
-       * integrate.c (initialize_for_inline): Pass additional argument,
-       the DECL_INITIAL (fndecl) tree, to gen_inline_header_rtx.  Update
-       and correct comment.
-       (save_for_inline_copying): Copy the decl tree, so that virtual reg
-       instantiation, and loop unrolling, won't affect the saved tree.
-       (copy_decl_tree): New argument, functionbody, which distinguished
-       between calls from save_for_inline_copying and calls from
-       expand_inline_function.
-       (copy_rtx_and_substitute): Return orig instead of aborting when
-       inline_target is zero so that loop unrolling can use this code.
-
-       * gcc.texinfo: Document the new optimization flags -funroll-loops
-       and -funroll-all-loops, the new dump option -dt, and the new named
-       pattern "decrement_and_branch_until_zero".
-
-       * flags.h: Define two new flags, flag_unroll_loops and
-       flag_unroll_all_loops.
-
-       * emit-rtl.c (gen_inline_header_rtx): New argument
-       original_decl_initial.  Pass to gen_rtx call.
-
-       * alliant.md, m68k.md: Name the pattern that uses the REG_NONNEG
-       note to "decrement_and_branch_until_zero".
-
-       * Makefile.in: Add source file unroll.c and header file loop.h to
-       the cc1 dependencies.  Add *.cse2 to the list of files deleted by
-       `make clean'.
-
-Thu Apr  4 16:13:37 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * varasm.c (assemble_constructor, assemble_destructor): New functions.
-       They use ASM_OUTPUT_CONSTRUCTOR and ASM_OUTPUT_DESTRUCTOR.
-       * cplus-decl2.c (finish_file): Use them.
-
-       * reload.c (find_reloads): Pass location as outloc for output reload.
-
-       * objc-actions.c (objc_class_id, synth_module_prologue):
-       Initialize new variable to hold identifier for "objc_class".
-
-       * objc-actions.c (objc_comptypes): Allow assigning between types
-       id and Class without warning.
-
-       * c-typeck.c (warn_for_assignment): When there is a type mismatch
-       in the hidden arguments of a message expression, don't print the
-       argument number as 0 or -1.  Instead print the warning as would
-       be done for an explicit call to objc_msgSend (this should never
-       happen, but just in case).
-
-       * emit-rtl.c (gen_lowpart): Reverse #if for CONST_DOUBLE case.
-
-Thu Apr  4 13:27:02 1991  Michael Meissner  (meissner at osf.org)
-
-       * hard-reg-set.h (SET_HARD_REG_BIT, CLEAR_HARD_REG_BIT,
-       TEST_HARD_REG_BIT): Use unsigned arithmetic to isolate the word and
-       bit number, which produces better optimized code.
-
-Thu Apr  4 07:34:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * reorg.c (relax_delay_slots): Avoid adjusting LABEL_NUSES if the
-       insn is a conditional return.
-
-       * reload1.c (reload): If we find that a replacement cannot be
-       done and that replacement now enables a secondary replacement,
-       this may disable a third replacement in some cases.
-       (eliminate_regs, case SET): Don't stop after we find the first
-       match when looking for modified registers.
-
-       * combine.c (previous_num_undos): New var.
-       (try_combine): Set it after each call to subst.
-       When substituting I1 into I2, somtimes make a copy of PATTERN (i2).
-       (gen_rtx_combine): Start at PREVIOUS_NUM_UNDOS.
-
-       * combine.c (can_combine_p): Start check for volatile references
-       after INSN, not at INSN.
-
-       * combine.c (try_combine): When we find a split point, ensure
-       that I2 is a register.  If it is of the wrong mode, change the
-       mode if we can, just like we do with CCmode registers.
-       (find_split_point): Don't split an extraction if it crosses the
-       boundary given by the field (i.e., a byte boundary if QImode).
-       Correct typo: Should generate LSHIFTRT, not LSHIFT.
-       (subst): Correctly test to see if we can change the mode of
-       a register for a MODE_CC comparison.
-       (distribute_notes): If a NOTE references a pseudo-register,
-       ensure it references the latest copy of that register.
-       When scanning for last use, don't stop at CALL_INSNs.
-
-       * combine.c (expand_compound_operation): Don't get confused about
-       (zero_extend (asm_operands ..)) because of the VOIDmode ASM_OPERANDS.
-       (simplify_and_const_int): Ensure we do computations in proper mode.
-       Simplify ZERO_EXTRACT and ZERO_EXTEND when we have a PLUS.
-       (significant_bits): Don't call get_last_value on a SUBREG, just REG.
-       Correct significant bits for comparison operations.
-       (simplify_shift_const): When VAROP is logical, use proper mode when
-       computing shifted constant.
-
-       * combine.c (gen_lowpart_for_combine): Call gen_lowpart if we have
-       a CONST_DOUBLE.
-
-       * genconfig.c (walk_insn_part, main): Write a definition
-       for HAVE_lo_sum if a LO_SUM is present in the machine description.
-
-       * combine.c (try_combine): If we have a PARALLEL of a SIGN_EXTEND
-       and a load of memory, split it into a load and SUBREG assignment.
-       (find_split_point): If we have LO_SUM for this machine,
-       split (mem (symbol_ref ..)) using HIGH and LO_SUM.
-       If we have operation with second operand constant, maybe we couldn't
-       fit the constant in the insn, so try to split there.
-       Move NOT to first operand so we'll try to split the other operand
-       first.
-       (subst): No reason to avoid making paradoxical SUBREGs and we miss
-       some optimizations if we don't.
-       Convert (lo_sum (high FOO) FOO) to FOO.
-       Convert (C1 + (x + C2) to (C1 - C2) - x.
-       Use distributive law in more places with logical operations.
-       (apply_distributive_law): Properly distribute IOR over XOR.
-       (simplify_shift_const): Simplify (ashift (plus ..) ...).
-       (simplify_comparison): Add code to remove extraneous AND
-       operations when comparing result of two comparisons on some machines.
-       Ignore bits not applicable in our mode.
-       Treat some SUBREGs as ZERO_EXTENDs.
-       Convert equality comparison of AND with sign bit into LT or GE
-       comparison.
-       
-       * combine.c (gen_binary, gen_unary): New functions.
-       (apply_distributive_law, simplify_shift_const): Use gen_binary.
-
-Wed Apr  3 16:15:17 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * Makefile.in (gnulib): Insert only .o files in combined archive.
-       (gnulib1.portable): Use $(HPXT).
-       * make-hp9k320g: Define HPXT.
-
-       * From wilson@cygnus.com.
-       * sched.c (schedule_block): Delete previously unused variable last_q.
-       Correct handling of registers with multiple lifetimes within a single
-       block, always save lifetime info, and clear the appropriate bit in
-       old_live_regs.  Delete now unused variable sched_reg_n_sets.
-
-Wed Apr  3 07:43:35 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * tm-romp.h (CONST_COSTS): All CONST_INTs are cost 0.  Symbolic
-       values cost two insns.
-
-       * function.c (fixup_var_refs_1): Correctly perform position
-       computation for bit extracts; disallow mode-dependent addresses.
-       (optimize_bit_field): Likewise.
-       Remove explicit mention of HImode and QImode by calling mode_for_size.
-       No need to check for offsettable_address_p; we call change_address
-       and are not called after reload; don't call adj_offsettable_operand.
-       * recog.c (validate_replace_rtx_1): Correct endian computation
-       and don't change mode of a MEM with a mode-dependent address.
-
-       * expmed.c (expand_divmod): Try to figure out what mode will be used
-       and convert to that once at the beginning, rather than repeatedly,
-       since we may be writing jumps.
-
-       * vax.md ({zero,sign}_extract patterns): Field width is QImode, not
-       SImode.
-
-Tue Apr  2 08:42:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * cse.c (simplify_ternary_operation): Add argument for previous
-       mode of operand 0.
-       Don't do anything for extractions if bits don't fit in OP0_MODE.
-       Use OP0_mode instead of mode of OP0 for endian correction.
-       (fold_rtx): Pass new operand to simpllify_ternary operation.
-       * integrate.c (subst_constants): Add extra arg to call to
-       simplify_ternary_operation and call for rtx class 'b'.
-       * combine.c (find_split_point): Don't split an extract when the
-       bits are outside the mode of operand 0.
-       (subst): Pass new parameter to simplify_ternary operation and call
-       for rtx class 'b'.
-       (subst, case ZERO_EXTRACT): Don't change the mode of a MEM
-       if it is a mode-dependent address.
-       Correctly do endian adjustments so they are correct for fields that
-       go outside a byte boundary.
-       (subst, case {ZERO,SIGN}_EXTRACT): Don't adjust MEM here for non-dest
-       objects; already done in make_compound_operation.
-       (make_compound_operation): Rework code that makes extracts and
-       extends to correcty compute positions, taking into account the fact
-       that field can cross byte boundaries.  Remove redundant adjustments.
-       Use mode_dependent_address_p to validate changing modes of MEM.
-       (simplify_shift_const): Check for mode-dependent address when
-       changing mode of a MEM.
-       (gen_lowpart_for_combine): Likewise.
+       * cppfiles.c (find_position): Drop 'colp' argument, return the
+       new line base.
+       (read_and_prescan): Adjust to match.  Don't ever manipulate
+       line or line_base except via find_position.
 
-       * expmed.c (expand_shift): Code to use extzv for logical right shift
-       had numerous assumptions about specific modes and did not validate
-       operands properly.
+2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * expr.c (expand_expr, case NOP_EXPR): If no target was specified,
-       use convert_to_mode instead of convert_move; this may return a SUBREG.
+       * c-parse.in: Apply Ulrich's changes from c-parse.y.
+       * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
+       Regenerate.
 
-       * expr.c (do_jump): Conversion isn't NOP if it narrows the object.
-       If testing A & CONST and the result fits in a smaller mode, try
-       the compare there.
+2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * cse.c (simplify_binary_operation): If eliminating reference to
-       operand, verify that it has no side effects.
-       Add cases for "a | (~a)" and "a & (~a)".
+       * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
+       just print "<command line>".  If 'filename' is null or an
+       empty string, print "<stdin>" for the filename.
+       * cpplib.c (do_define): Don't print the 'location of the
+       previous definition' message if we're still parsing the
+       command line.
+       (cpp_pedwarn_with_file_and_line): Always call
+       cpp_file_line_for_message.
 
-       * recog.c (register_operand): Only call general_operand for
-       (subreg (mem ...) X), not all SUBREGs.
+2000-01-29  Mark Mitchell  <mark@codesourcery.com>
 
-       * jump.c (jump_optimize): Remove needless incrementing of LABEL_NUSES
-       which can cause a dead label not to go away.
+       * flow.c (mark_regs_live_at_end): Fix typo.
 
-Mon Apr  1 19:08:40 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-28  Ulrich Drepper  <drepper@redhat.com>
 
-       * cse.c (cse_insn): Add missing call to insert_regs.
+       * c-common.c: Adjust variable names, comments, help strings to c99.
+       * c-lex.c: Likewise.
+       * c-parse.y: Likewise.
+       * c-tree.h: Likewise.
+       * cccp.c: Likewise.
+       * cpplib.h: Likewise.
+       * c-decl.c: Likewise.  Recognize options with names "*99" as well.
+       * cppinit.c: Likewise.
 
-Mon Apr  1 18:21:33 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
-       * optabs.c (init_optabs): Change #if to #ifdef.
+       * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
+       * c4x.c: Define the optab rtx values.
+       (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
+       (c4x_emit_libcall): Use new optab rtx values.
+       (c4x_emit_libcall3): Likewise.
+       (c4x_emit_libcall_mulhi): Likewise.
+       * c4x-protos.h: Add prototypes for optab rtx values and change
+       prototypes for above c4x_emit_libcall functions.
 
-       * loop.c (check_dbra_loop): Take out Feb 24 change.
+2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
-Sun Mar 31 22:43:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * c4x.c (c4x_output_ascii): Restrict line length of output when TI
+       syntax is used.
+       (c4x_function_prologue): Use regnames intead of float_reg_names when
+       TI syntax is used.
+       (c4x_function_epilogue): Likewise.
+       (c4x_print_operand): Likewise.
+       * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
+       * c4x.md (set_high): Disable for TARGET_TI.
 
-       * final.c (insn_counter): New variable.
-       (final_scan_insn): Increment it.
-       (output_asm_insn): Use it for %=.
+2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
-Sun Mar 31 22:16:31 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
+       of framepointer + constant to ADDR_REGS class.
+       * c4x.md (addqi3, addqi3_noclobber_reload): Update.
+       * c4x.c (std_or_reg_operand): New function.
+       * c4x-protos.h (std_or_reg_operand): Prototype it.
 
-       * out-a29k.c (output_prolog): Correctly write stack size in tag word.
+2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
-       * out-a29k.c (srcb_operand): If QImode, any constant is OK since
-       we only care about 8 bits.
-       (print_operand): Add %Q for QImode srcb values.
-       * a29k.md (QImode patterns): srcb's that accept constants should have
-       'n' constraint, not 'I'; use %Q to output.
+       * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
+               object names as libgcc2.c.
+       * libgcc.S: Use newly defined names.
 
-       * reload1.c (gen_input_reload): Properly generate reload when we are
-       adding a pseudo and a hard register.
+Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
+       * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
+       function.
+       * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
+       * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
+       (FLOW_LOOP_LAST_BLOCK): Likewise.
 
-       * cse.c (simplify_unary_operation): Don't use ffs.
+2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Sun Mar 31 20:59:52 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+       * basic-block.h (struct loop): New fields 'first' and 'last'.
+       * flow.c (flow_loops_find): Compute loop->first and loop->last.
+       (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
+       and loop->last to check for NOTE_INSN_LOOP_END.
 
-       * gnulib1.c (perform_ash{l,r}si3): Fix typo that had these
-       performaces swapped.
+Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
 
-Sun Mar 31 13:35:50 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * predict.c (estimate_probability): Use the new FIRST and LAST fields
+       of the loop descriptor rather than HEADER and LATCH. Also added
+       missing break statements as well making some coding style modifications
+       as suggested by Michael Hayes.
 
-       * rtl.h (FIND_REG_INC_NOTE): New macro.
-       * rtl.h (AUTO_INC_DEC): Define here.
-       * flow.c (AUTO_INC_DEC): Not here.
-       * combine.c (can_combine_p, try_combine): Use FIND_REG_INC_NOTE.
-       Make other scans for REG_INC notes conditional on AUTO_INC_DEC.
-       * final.c (final_scan_insn): Use FIND_REG_INC_NOTE.
-       * jump.c (delete_jump): Likewise.
-       * loop.c (get_condition): Likewise.
-       * reload.c (find_reloads_address_1, find_equiv_reg): Likewise.
-       * reload1.c (reload_as_needed): Likewise.
-       * reorg.c (delete_scheduled_jump, mark_set_resources): Likewise.
-       * global-alloc.c (global_conflicts): Likewise.
+2000-01-28  Richard Henderson  <rth@cygnus.com>
 
-       * dbxout.c (dbxout_type): For integers, reals, and arrays,
-       use actual type number of int or char, in case those are not 1 and 2.
+       * flow.c (find_basic_blocks): Remove do_cleanup argument.
+       Break out that code ...
+       (cleanup_cfg): ... here.
+       (commit_one_edge_insertion): Detect a return instruction being
+       emitted to an edge.  Emit a barrier following; clear fallthru.
+       (commit_edge_insertions): Verify CFG consistency.
+       * function.c (expand_function_start): Kill unused variable.
+       (expand_function_end): Likewise.
+       (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
+       to insert the epilogue.
 
-       * toplev.c (compile_file): Take out last change (regarding lang_init).
+       * gcse.c (gcse_main): Adjust for find_basic_blocks change.
+       (delete_null_pointer_checks): Likewise.
+       * output.h: Likewise.
+       * reg-stack.c (reg_to_stack): Likewise.
+       * toplev.c (rest_of_compilation): Likewise.  Run
+       thread_prologue_and_epilogue_insns after rebuilding the CFG.
+
+2000-01-28  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (flow.o): Revert 24 Jan change.
+       * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
+       FUNCTION_VALUE result to DECL_RESULT's mode.
 
-       * emit-rtl.c (sequence_element_free_list): Change data type.
-       (get_last_insn_anywhyere, add_insn_after): Finish last change.
+       * haifa-sched.c (schedule_insns): Don't recompute reg info
+       after reload.
 
-       * expr.c (expand_builtin): Finish last change.
+2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * configure.in: Make --enable-cpplib the default.
+       * configure: Regenerate.
+       * gcc.dg/990119-1.c: No longer expected to fail.
+
+2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * jump.c (jump_optimize_1): Delete an optimization that is also done
+       by merge_blocks in flow.
+
+2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Sat Mar 30 15:16:16 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * diagnostic.c (build_message_string, output_printf,
+       line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
+       (build_location_prefix): Fix non-literal format string.
+
+2000-01-27  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.md (trunctfsf2): New.
 
-       * function.h (struct sequence_stack): New data type.
-       (sequence_stack): Declare variable.  Use new data type.
-       * emit-rtl.c (get_last_insn_anywhere, add_insn_after): Adapt to that.
-       (start_sequence, end_sequence, in_sequence): Likewise.
-       (start_sequence): Allocate stack links as permanent.
-       (init_emit_once): Init sequence_stack here.
-       (init_emit): Not here.
-       * function.c (push_temp_slots, pop_temp_slots):
-       (expand_function_end): Use in_sequence.
-       (fixup_var_refs): Use new data type.
-       (put_var_into_stack): Don't declare sequence_stack.
+2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
 
-       * function.c (expand_function_start):
-       Trace static chain properly past first link.
+       * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
 
-       * ns32k.md (andcbhi3, andcbqi3): Constraint shouldn't say commutative.
+2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
 
-Sat Mar 30 02:06:20 1991 North-Keys (erlkonig at apple-gunkies.gnu.ai.mit.edu)
+       * cppinit.c (cpp_handle_option): Recognize C++ comments under
+       -std=gnu89.
+       * cpplib.c (skip_block_comment, skip_line_comment): Split code
+       out of...
+       (skip_comment) ... here.  Permit C++ comments in system
+       headers always.  Warn about C++ comments in user code under
+       -std=gnu89 -pedantic.
+       (copy_comment): Use skip_comment.
+       (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
+       return EOF.
+       (consider_directive_while_skipping, do_else, do_endif): Call
+       validate_else unconditionally.
+       (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
+       text after the conditional in a system header.
+       * cpplib.h (struct cpp_buffer): Add flag
+       warned_cplusplus_comments.
 
-       * c-decl.c (init_decl_processing): Fix typo `integer_tpe_node'.
-       * dbxout.c (dbxout-symbol): Added char * declaration for `name'.
-       * objc-actions.c (encode_array): Avoid returning a value.
+2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
 
-Fri Mar 29 15:59:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
+       Use unshare_all_rtl_1.
+       (unshare_all_rtl_again): New function.
+       (unshare_all_rtl_1): New function split out of unshare_all_rtl.
 
-       * c-decl.c (init_decl_processing): Define __builtin_constant_p.
-       * expr.c (expand_builtin): Implement it.
-       * tree.h (enum built_in_function): New alternative.
+       * function.c (purge_addressof_1): Use unshare_all_rtl_again
+       rather than resetting the 'used' flags ourself.
 
-       * toplev.c (compile_file): Move lang_init call after debugger init.
+       * toplev.c (rest_of_compilation): Add current_function_decl
+       to the unshare_all_rtl call.
+       * tree.h: Prototype unshare_all_rtl.
+       * rtl.h: Prototype unshare_all_rtl_again here.
 
-       * gcc.c (default_compilers): Define __cplusplus for C++ code.
+2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
 
-       * c-decl.c (start_function): Use 0 for name of result decl.
-       (value_identifier): Variable deleted.
+       * genoutput.c (output_prologue): Include ggc.h in generated
+       files.
+       * Makefile.in (insn-output.o): Depends on ggc.h.
+
+2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
+           Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
+       Remove redundant include of xm-ns32k.h.
+       * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
+       Remove redundant include of xm-ns32k.h.
+       * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
+       Remove redundant include of xm-ns32k.h.
+       * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
+
+       * ns32k/ns32k.h: Update comment on multiply-add instructions.
+       (TARGET_SWITCHES): Add documentation strings.
+       (DWARF_FRAME_REGNUM): Override default definition.
+       (REG_CLASS_CONTENTS): Add comments.
+       (SUBSET_P): Format to reduce line length.
+       (SMALL_REGISTER_CLASSES): Make a run time option.
+       (GO_IF_NONINDEXED_ADDRESS): Reformat.
+       (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
+       dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
+       (regclass_map): fix typo in comment.
+       * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
+       Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
+       (trace, reg_or_mem_operand): Delete, unused function.
+       (calc_address_cost): Small offsets are cheaper than large ones.
+       (expand_block_move): Generate more efficient code when bytes is a
+       known at compile time.
+       * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
+       (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
+       instead of reg_or_mem_operand.
+
+       * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
+       not general_operand.  Similarly use "=rm" or stricter, not "=g".
+       For input operands, use stricter constraints than "g" if not
+       general_operand.  Similarly use stricter predicate than
+       "general_operand" when stricter constraints than "g" are present,
+       except for matching constraints.
+       (movstrsi): Use "memory_operand" for operands 0 and 1.
+       (truncsiqi2, truncsihi2, trunchiqi2): Remove.
+       (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
+       not reg_or_mem_operand.
+       (udivmoddisi4): Ditto.
+       Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
+       Use nonimmediate_operand for operand 3, not register_operand.
+       (udivmoddiqi4_internal): Use register_operand for operand 1, not
+       reg_or_mem_operand.
+
+2000-01-27  Fred Fish  <fnf@be.com>
+
+       * gthr-posix.h: Fix typo; compatibily -> compatibility.
+       * gthr-single.h: Likewise.
+       * gthr-solaris.h: Likewise.
+       * gthr-vxworks.h: Likewise.
+       * gthr-win32.h: Likewise.
+       * gthr.h: Likewise.
+
+2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppinit.c: Add " (cpplib)" to end of string printed by
+       -v / --version.
+
+2000-01-27  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
+       testing for a signed comparison.
+       (alpha_emit_floatuns): New.
+       * alpha-protos.h: Declare it.
+       * alpha.md (floatunsdisf2, floatunsdidf2): New.
+       (extendsfdf2): Tidy.
+
+2000-01-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
+       no -g option specifying debugging format, default to -gstabs+.
+
+Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
+
+       * calls.c (special_function_p): New argument fork_or_exec.
+       (expand_call): When profile_arc_flag is set and the function
+       is in the fork_or_exec group, call __bb_fork_func first.
+       * libgcc2.c, _bb module (__bb_fork_func): New function.
+       (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
+       output file.
+       * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
+       * tree.h (special_function_p): Update prototype.
+
+2000-01-26  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (alpha_split_tfmode_pair): New.
+       * alpha-protos.h: Declare it.
+       * alpha.md (abstf2, negtf2): New.
+       (movtf insn): Add input G constraint.
+       (movtf splitter): Use alpha_split_tfmode_pair.
+
+2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * i386/cygwin.h: PROTO -> PARAMS.
+
+2000-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
+       TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
+       using _Qp_cmp/_Q_cmp and testing the return value.
+       (print_operand): Call reverse_condition_maybe_unordered if
+       we are handling CCFPmode or CCFPEmode.
+       Handle ORDERED, UN* and LTGT comparisons.
+       * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
+       if not TARGET_HARD_QUAD.
+       (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
+       bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
+       Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
+       Adjust gen_b* calls so that they reflect return comparison of
+       sparc_emit_float_lib_cmp.
+
+2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
+       incoming operands array is large enough for one more operand.
+       (alpha_emit_xfloating_arith): Likewise.
+
+2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
+       file with one line and no trailing newline.
+       Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
+       * fixinc/fixtests.c (machine_name_test): Fix fencepost error
+       checking if the match is on the line.
+       * fixinc/gnu-regex.c: Provide regerror not __regerror.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * sparc.c (output_cbranch): Fix accidental squashing of the
+       fp branch pre-delay nop.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * tree.def (UNNE_EXPR): Remove.
+       * c-typeck.c (build_binary_op): Don't handle it.
+       * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
+
+       * rtl.def (UNNE): Remove.
+       (LTGT): Add.
+       * jump.c (reverse_condition): Update accordingly.
+       (swap_condition): Likewise.
+       (comparison_dominates_p): Handle unordered comparisons.
+       (reverse_condition_maybe_unordered): New.
+       * rtl.h (reverse_condition_maybe_unordered): Declare.
+
+       * sparc.c (select_cc_mode): Update for UNNE/LTGT.
+       (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
+       * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
+       * sparc.md (bltgt): New.
+
+2000-01-25  Nick Clifton  <nickc@redhat.com>
+
+       * emit-rtl.c (emit_insn): Only check machine class insns for
+       improper emission of a RETURN.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (flow.o): Depend on $(EXPR_H).
+       * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
+       duplicate the structure of diddle_return_value for keeping regs live.
+
+2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * loop.c (current_loop_info): Delete.
+       (consec_sets_invariant_p): Add loop argument, update callers.
+       (get_condition_for_loop): Likewise.
+       (count_nonfixed_reads, update_giv_derive): Likewise.
+       (simplify_giv_expr, general_induction_var): Likewise.
+       (consec_sets_giv, recombine_givs): Likewise.
+       (move_movables): Delete loop_start and loop_end arguments,
+       add loop argument, and update callers.
+       (find_mem_givs, check_final_value): Likewise.
+       (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
+       (loop_invariant_p): Rename from invariant_p, add loop argument, and
+       update callers.
+       (basic_induction_var): Add loop argument, delete loop_level argument,
+       and update callers.
+       * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
+       add loop argument, and update callers.
+       (find_splittable_regs, find_splittable_givs): Likewise.
+       (reg_dead_after_loop, loop_find_equiv_value): Likewise.
+       (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
+       (biv_total_increment): Delete loop_start and loop_end arguments;
+       update callers.
+       (precondition_loop_p): Delete loop_start and loop_info arguments;
+       update callers.
+       * loop.h (get_condition_for_loop): Add loop argument.
+       (biv_total_increment): Delete loop_start and loop_end arguments.
+       (precondition_loop_p): Delete loop_start and loop_info arguments;
+       add loop argument.
+       (final_biv_value): Delete loop_start and loop_end arguments;
+       add loop argument.
+       (final_giv_value, back_branch_in_range_p): Likewise.
+
+2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
+
+2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * Makefile.in (c-gperf.h) : Change the "See" pointer to
+       point to the new "generated_files" doc.
+
+2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/fp-bit.c (_unord_f2): Fix typo.
+
+2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
+       c-typeck.c, objc/objc-act.c: Remove all references to obstack
+       functions obsoleted by GC, such as push_obstacks_nochange,
+       end_temporary_allocation, savealloc, saveable_tree_cons, etc.
+       and code which existed only to decide whether or not to call
+       them.  Remove now-unused NESTED argument from start_function;
+       all callers changed.  Do not change behavior based on ggc_p.
+       The use of the ixp_obstack in c-iterate.c and the util_obstack
+       in objc/objc-act.c remain; these are not obsoleted by garbage
+       collection.
+       * c-tree.h: Update prototype for start_function.
+
+       * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
+
+2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/mips/mips.md (zero_extendsidi2_internal): Disable for
+       mips16.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * sparc-protos.h (select_cc_mode): Declare.
+       * sparc.c (select_cc_mode): New.  Handle unordered compares.
+       (output_cbranch): Always reverse via code change.  Handle
+       unordered compares.  Factor tests and string updates.
+       * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
+       (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
+       * sparc.md (bunordered, bordered): New.
+       (bungt, bunlt, buneq, bunge, bunle): New.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
+       * ggc-common.c (ggc_add_rtx_varray_root): New.
+       (ggc_mark_rtx_varray): New.
+       (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
+       functions down below ggc_mark_foo.
+       * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
+
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (secondary_reload_class): Don't allocate a secondary
+       for integral mode memories into FLOAT_REGS.  Rearrange the more
+       complicated memory expression inward.
+
+2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * inclhack.def: Fixes to play nicer with FreeBSD, and
+       corrections to comments.
+       (cxx_unready): Add select expression.
+       (irix_sockaddr): Add bypass expression.
+       (machine_ansi_h_va_list): New fix.
+       (stdio_va_list): No need to edit _BSD_VA_LIST_.
+       Split out addition of "#include <stdarg.h>" to...
+       (stdio_stdarg_h): ... here.
+       (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
+       to stdlib.h also.  Do not munge _BSD_SIZE_T_.
+       (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
+       size_t.
+       (ultrix_ifdef): Tighten up select expression.
+
+       * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
+       re_ct and max_mach to avoid use of shell.  Make printed names
+       match names in inclhack.def.  Use static copyright date.
+       Don't count c_test and test expressions as requiring regex_t
+       slots.  Add some commentary.
+       * inclhack.tpl: Do not include the 'This script contains N
+       fixup scripts' line if PROGRAM is defined.  Use static
+       copyright date.
+
+2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c: include "varray.h", not dyn-string.h.
+       (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
+       (addr_const_to_string, addr_to_string): Lose.
+       (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
+       (struct dw_val_struct): val_addr is now an rtx.
+       (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
+       (used_rtx_varray): New varray.
+       (dwarf2out_init): Initialize it.
+       (save_rtx): New fn.
+       (mem_loc_descriptor, add_const_value_attribute): Call it instead of
+       addr_to_string.
+       * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
+       sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
+       * Makefile.in (dwarf2out.o): Update dependencies.
+
+2000-01-24  Richard Henderson  <rth@cygnus.com>
+
+       * i386.c (i386_dwarf_output_addr_const): New.
+       * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
+
+       * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
+       if defined.
+       * dwarfout.c (output_mem_loc_descriptor): Likewise.
+       * i386.c (i386_simplify_dwarf_addr): New.
+       * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
+
+Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
+       TYPE_STUB_DECL is NULL.
+
+2000-01-24  Richard Henderson  <rth@cygnus.com>
+
+       * builtins.c (expand_tree_builtin): Move ...
+       * c-common.c (expand_tree_builtin): ... here.
+
+2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * loop.h (LOOP_INFO): New accessor macro.
+       * basic-block.h (struct loop): Rename field `info' to `aux'.
+       * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
+       (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
+       * unroll.c (loop_iterations, unroll_loop): Likewise.
+
+2000-01-24  Christopher Faylor <cgf@cygnus.com>
+
+       * config/i386/t-cygwin: Accommodate new winsup directory layout
+       when searching for include files.
+
+2000-01-24  Richard Henderson  <rth@cygnus.com>
+
+       * rtl.def: Add unordered fp comparisons.
+       * tree.def: Likewise.
+       * tree.h: Add ISO C 9x unordered fp comparison builtins.
+
+       * builtins.c (expand_tree_builtin): New function.
+       * c-typeck.c (build_function_call): Use it.
+       (build_binary_op): Support unordered compares.
+       * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
+
+       * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
+       (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
+       * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
+       (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
+       * jump.c (reverse_condition): Don't abort for UNLE etc, but
+       return UNKNOWN.
+       (swap_condition): Handle unordered compares.
+       (thread_jumps): Check can_reverse before reversing.
+       * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
+       reversed for FP.
+
+       * optabs.c (can_compare_p): New argument CODE.  Verify branch or
+       setcc is present before acking for cmp_optab.  Update all callers.
+       (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
+       * expmed.c (do_cmp_and_jump): Update for can_compare_p.
+       * expr.c (expand_expr): Likewise.  Support unordered compares.
+       (do_jump, do_store_flag): Likewise.
+       * expr.h (enum libfunc_index): Add unordered compares.
+
+       * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
+       (DPBIT_FUNCS): Add _unord_df.
+       * config/fp-bit.c (_unord_f2): New.
+       * fp-test.c (main): Try unordered compare builtins.
+
+       * alpha-protos.h (alpha_fp_comparison_operator): Declare.
+       * alpha.c (alpha_comparison_operator): Check mode properly.
+       (alpha_swapped_comparison_operator): Likewise.
+       (signed_comparison_operator): Likewise.
+       (alpha_fp_comparison_operator): New.
+       (alpha_emit_conditional_branch): Handle unordered compares.
+       * alpha.h (PREDICATE_CODES): Update.
+       * alpha.md (fp compares): Use alpha_fp_comparison_operator.
+       (bunordered, bordered): New.
+
+2000-01-24  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
+       * alpha.md (movtf): New expander, insn, and splitter.
+
+Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
+       dead registers.
+
+Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS,
+        REG_ALLOC_ORDER): Add frame pointer
+       (FRAME_POINTER_REGNUM): Set to 20
+       (HARD_FRAME_POINTER_REGNUM): New macro.
+       (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
+       to HARD_FRAME_POINTER.
+       (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
+       (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
+       (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
+       (HI_REGISTER_NAMES): Add "frame".
+       (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
+       (debug_reg): Handle FRAME_POINTER_REGNUM.
+       (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
+       GENERAL_REGS and INDEX_REGS.
+       * i386.c (SAVED_REGS_FIRST): new macro.
+       (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
+       (ix86_decompose_address, memory_address_length): Likewise.
+       (regclass_map): Add frame pointer.
+       (call_insn_operand): Handle frame_pointer_rtx.
+       (reg_no_sp_operand): Likewise.
+       (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
+       (print_operand, legitimize_pic_address): Fix formating.
+       (ix86_compute_frame_size): Make static, update prototype, new
+       parameters padding1, padding2, use ix86_nsaved_regs, use
+       stack_alignment_needed.
+       (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
+       to HARD_FRAME_POINTER_REGNUM conversions.
+       (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
+       (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
+       (print_reg): Abort on FRAME_POINTER_REGNUM
+
+Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (PREDICATE_CODES): Add aligned_operand.
+       * i386.c (aligned_operand): New function.
+       (ix86_aligned_p): Kill.
+       * i386.md (movhi_1): Emit mov for aligned operands.
+       (promoting peep2s): Use aligned_operand.
+
+2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
+       expression to allow underscores in macro names.
+       (fix_char_macro_defines): Increment scanning pointer.
+
+2000-01-23  Richard Henderson  <rth@cygnus.com>
+
+       * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
+       * alpha/osf5.h: New file.
+       * configure.in (alpha-*-osf5): Add it to tm_file.
+
+       * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
+
+       * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
+       (alpha_emit_xfloating_cvt, function_arg): Declare.
+       * alpha.c (alpha_emit_conditional_branch): Call
+       alpha_emit_xfloating_compare for TFmode compares.
+       (alpha_lookup_xfloating_lib_func): New.
+       (alpha_compute_xfloating_mode_arg): New.
+       (alpha_emit_xfloating_libcall): New.
+       (alpha_emit_xfloating_arith): New.
+       (alpha_emit_xfloating_compare): New.
+       (alpha_emit_xfloating_cvt): New.
+       (print_operand): Add default abort case.
+       (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
+       * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
+       (BIGGEST_ALIGNMENT): Increase to 128 bits.
+       (RETURN_IN_MEMORY): True for TF/TCmode.
+       (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
+       (FUNCTION_ARG): Move to function_arg.
+       (FUNCTION_ARG_PASS_BY_REFERENCE): New.
+       (ASM_OUTPUT_LONG_DOUBLE): New.
+       (ASM_OUTPUT_DOUBLE): Always output bits.
+       * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
+       (fix_trunctfdi2, floatditf2, floatunsditf2): New.
+       (extenddftf2, trunctfdf2): New.
+
+2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
+       * config/sparc/sol2.h: ... here.
+
+2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * basic-block.h (struct loops): New field `levels'.
+       * flow.c (flow_loops_level_compute): Traverse all outer loops.
+       (flow_loop_level_compute): Initialize level to 1.
+       (flow_loops_find): Set loops->levels.
+       (flow_loops_dump): Print loops->levels.
+
+2000-01-23  Richard Henderson  <rth@cygnus.com>
+
+       * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
+       (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
+
+2000-01-23  Richard Henderson  <rth@cygnus.com>
+
+       * i386.c (dbx_register_map, svr4_dbx_register_map): New.
+       * i386.h (DBX_REGISTER_NUMBER): Use them.
+       * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
+       * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
+       * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
+       * i386/sequent.h: Kill incorrect comment.
+
+2000-01-23  Mark Mitchell  <mark@codesourcery.com>
+
+       * ggc-page.c (struct page_entry): Make `context_depth' an
+       `unsigned short'.
+       (struct globals): Likewise.
 
-       * dbxout.c (dbxout_type): Handle LANG_TYPE.
-       (dbxout_symbol): Handle RESULT_DECL.
-       Handle variables with constant values that are not output.
-       Use the mangled name when appropriate.
-       (dbxout_tags): Output equivalent typedef when appropriate.
-       (dbxout_function): Output the DECL_RESULT if it has a name.
+2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * varasm.c (assemble_variable): Delete calls to set_current_gdbfile.
+       * loop.c (check_dbra_loop): When checking a loop for
+       reversability, check the source of any stores to ensure
+       they don't depend on an initial value.
 
-Thu Mar 28 16:14:13 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * gcc.c (main): Calculate basename_length to exclude last period.
+       * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
 
-       * optabs.c (expand_binop, expand_unop):
-       When widening, don't keep CONST_INT beyond a single word.
+2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * tm-vax.h (CHECK_FLOAT_VALUE): Change float max to ...444e+38.
+       * fixinc/fixincl.c: Move declarations of 'pz_fname' and
+       'pz_scan' into scope of entire function.  Only affects
+       compiles with -DDEBUG.
 
-       * Makefile.in (gnulib1, gnulib2.portable):
-       Make test of $$? normally succeed, not normally fail.
-       (gnulib1): Don't use -e in second loop.  Test explicitly instead.
+2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
 
-       * dbxout.c (lastfile): New static variable.
-       (dbxout_init): Initialize lastfile.
-       * final.c (lastfile): Deleted.
-       (init_final): Don't set lastfile.
+       * config/elfos.h (UNIQUE_SECTION): Restore uninitialized data
+       section naming to that prior to 2000-01-07 patch.
+       * config/mips/elf.h (UNIQUE_SECTION): Ditto.
+       * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
+       * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
+       * config/i386/interix.c (UNIQUE_SECTION): Ditto.
+       * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
 
-       * final.c (set_current_gdbfile): Function deleted.
-       (output_source_line): Handling of GDB debugging info deleted.
-       (final_start_function, final_end_function): Likewise.
+2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-Thu Mar 28 09:58:18 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
+       * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
+       constant.
 
-       * cplus-decl.h (decl_context): Add missing declaration for BITFIELD.
+2000-01-21  Jim Wilson  <wilson@cygnus.com>
 
-       * tm-sparc.h (CC1_SPEC): Change to handle new interpretation of -O2.
-       (OPTIMIZATION_OPTIONS): Use this macro to control default expensive
-       optimizations.
-       (MODES_TIABLE_P): Use GET_MODE_CLASS to simplify this macro.
-       (FUNCTION_ARG,FUNCTION_ARG_PARTIAL_NREGS): Make sure TYPE is nonzero
-       before we use it.
-       (FUNCTION_BLOCK_PROFILER): Fix a bug in the asm code.
-       (EXTRA_CONSTRAINT): For 'S' constraint, if OP is a register, make
-       sure it's not a pseudo.  Also, change call to `memory_address_p' to
-       `strict _memory_address_p'.  Both of these are for the strict cases.
-       (SLOW_BYTE_ACCESS): Try going with this set 1.
-       * sparc.md: Take advantage of new combiner to handle signed bitfield
-       comparisons and signed sub-word comparisons.
-       Added peepholes for doing subword memory tests and operations.
+       * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
+       * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
 
-Thu Mar 28 09:43:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * emit-rtl.c (start_sequence, gen_sequence): Ensure we allocate rtl
-       on saveable_obstack since we will be saving it and we may be called
-       from an optimizer that will reuse allocated memory in current_obstack.
+       * cpphash.c (change_newlines): Delete function.
+       (struct argdata): Delete 'newlines' and 'use_count' fields.
+       (macroexpand): Remove code referencing those fields.
 
-Wed Mar 27 18:46:27 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * toplev.c (main): Print version with -version, regardless of
-       -quiet.
+       * loop.c (loops_info): New variable.
+       (loop_optimize): Allocate loops->array and free it on exit.
+       Allocate memory for loops_info and assign to each loop,
+       replacing alloca.
+       (find_and_verify_loops): Do not allocate loops->array.
 
-       * Makefile.in (gnulib, gnulib2.ready): Put `-' before `if'.
-
-       * make-hp9k320, make-hp9k320g (CC, OLDCC): Delete -lsetjmp.
-       Add -Wc,-Nw2000.
-
-       * dbxout.c (dbxout_source_file): New name for fn moved from final.c.
-       * final.c (output_source_file): Moved to dbxout.c.  Callers changed.
-       (output_source_line): Call dbxout_source_file.
-
-Wed Mar 27 11:09:13 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)
-
-       * version.c: Bumped to version 1.92.
-
-       * final.c (output_source_{file,line}): Fix bug in new handling of
-       "Ltext".
-
-       * cplus-cvt.c (build_up_reference): Handle BIND_EXPR.
-
-       * Makefile.in (cplus-lex.o): depend on cplus-input.c.
-       * cplus-input.c: New file.
-
-       * cplus-method.c (do_inline_function_hair): Call a different
-       `prepare_inline', and don't deal with pending_inlines here.
-       * cplus-lex.c (do_pending_inlines): Deal with pending_inlines
-       here...
-       (reinit_parse_for_method): ...and here.
-
-       * cplus-decl.c (grok_ctor_properties): Use TYPE_NAME_STRING where
-       appropriate.  Also, don't assume that CURRENT_CLASS_TYPE is what we
-       use for error message; use CTYPE instead.
-
-       * cplus-type2.c (digest_init): Strip NON_LVALUE_EXPRs.
-
-       * cplus-tree.c (__eprintf): Added this function from gnulib2 until
-       gnulib configuration is worked out.
-
-       * cplus-parse.y (member_init): Call do_member_init.  Previous code
-       was wrong (using a goto to factor common code) because the parse
-       stack was different in the two contexts.
-       * cplus-init.c (do_member_init): New function.
-
-       * cplus-typeck.c (build_compound_expr): Convert arrays to pointers.
-       (build_c_cast): Warn about possible alignment problems.
-
-Wed Mar 27 05:55:32 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * reload.c (find_reloads): Disallow a PLUS as an operand even if
-       "g" is in the constraint; this is only valid for "p".
-
-Tue Mar 26 06:46:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * local-alloc.c (block_alloc): Have insn numbers start at 1, not 2.
-
-       * rtlanal.c (replace_regs): Move to here; add new parameter.
-       * loop.c (replace_regs): Delete from here.
-       (move_movables, strength_reduce): Pass new parameter to replace_regs.
-       * jump.c (duplicate_loop_exit_test): Make new pseudos for pseudos
-       used only in loop exit test; this prevents unnecessay sharing
-       between code inside and outside of loop.
-       * toplev.c (rest_of_compilation): Call reg_scan before jump.
-
-       * combine.c (distribute_notes): If we are searching back for the last
-       use of a register I3 and I2 no longer use and the last use is a SET
-       of that register, place a REG_UNUSED note instead of a REG_DEAD note.
-       No longer need handle REG_DEAD note for output of I3; it will now be
-       a REG_UNUSED note.
-
-       * combine.c (try_combine): If I3SRC is a register and I2 is a
-       multi-output insn, see if we can replace one of the outputs with
-       I3DEST.  If so, move LOG_LINKS pointing at the other outputs to
-       now point to I3 instead of I2.
-
-       * rtlanal.c (single_set): Return 0 if not an insn.
-       Only ignore SET with unused output if it has no side effects.
-       (side_effects_p): New function.
-       * combine.c (can_combine_p): Only ignore SET with unused output if
-       it has no side effect.
-       Don't extend the life of a hard register.
-       (try_combine): Always give up if I1 or I2 used reg inc'd in I3.
-       (significant_bits): Return mode mask if mode wider than host int.
-       Don't get confused by (zero_extend (const_int ..)) and similar where
-       the inner mode is VOIDmode.
-       Arithmetic operations now always have same modes on operands as
-       on the result.
-
-       * jump.c (jump_optimize): Set this_is_{simple,cond}jump at the start
-       of loop, not in middle, and use consistently.
-       Use can_reverse_comparison_p in case where we make scc insn.
-       Don't use can_reverse_comparison_p when we call invert_jump.
-       Use indirect_jump instead of indirect_exp.
-       Check invert_jump's result before making any other changes; handle
-       failure.
-       Simplify code that looks for and deletes USE insns.
-       (jump_back_p): Call can_reverse_comparison_p only if we have to
-       reverse the comparison.
-       (can_reverse_comparison_p): Accept comparison expression and insn
-       it comes from.
-       Rework to be more general now that we have MODE_CC and tighten
-       up a bit.
-       (invert_jump): Allow invert_exp and redirect_jump to fail.
-       (invert_exp): Only invert jump, don't change target.
-       If can reverse comparison code, try it using validate_change.
-       If that doesn't work, swap the arms of the IF_THEN_ELSE.  If that
-       doesn't work, return 0.
-       (redirect_exp): Now static.
-       * expr.c (do_jump_for_compare): Call invert_jump to invert jump
-       to false label after emitting jump; if this fails, convert to
-       jump around unconditional jump to false label.
-       (do_store_flag): Set to 1 first, then branch, then set to 0.  This
-       avoids inverting branches.
-       * reorg.c (optimize_skip, relax_delay_slots): Always allow invert_jump
-       to fail.
-       * rtlanal.c (single_set): Return 0 if not INSN, CALL_INSN,
-       or JUMP_INSN.
-
-       * reload1.c (eliminate_regs): If any eliminable regs occur in a USE,
-       eliminate them.
-
-Tue Mar 26 00:09:18 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * c-decl.c (implicitly_declare): Always make implicit decl permanent.
-
-Mon Mar 25 16:38:14 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * genextract.c (walk_rtx): Record operand numbers that are seen.
-       (gen_insn): If there are gaps in operand numbers, make code to store
-       something for the operands not used in this pattern.
-       (main): Initialize data structures.
-
-       * c-typeck.c (initializer_constant_valid_p):
-       Always allow length-preserving conversions between integer types. 
-
-       * regclass.c (reg_class_record): Return right away if operand is 0.
-
-       * c-decl.c (duplicate_decls): Warn if declare fcn inline after calls.
-
-       * reload.c (combine_reloads):
-       Test reg_overlap_mentioned_p in both directions.
-
-Mon Mar 25 15:05:29 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * genoutput.c (output_epilogue): Choose a name for an unnamed
-       pattern as an offset from the closest named pattern.  Define
-       `insn_name_ptr' as a pointer to `insn_name' for use by print_rtx.
-       * final.c (output_asm_insn): Use the pattern name chosen by
-       genoutput and output the INSN_UID as well.
-       * rtl.c (insn_name_ptr): Provide an alternate definition to avoid
-       link errors when rtl.o is not linked with insn-output.o.
-       (print_rtx): When printing the INSN_CODE field of an insn, print
-       the name if it is available.
-
-Mon Mar 25 09:39:43 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * regs.h (reg_first_use): Deleted.
-       * rtl.h (REG_UNSET): Deleted.
-       (REG_UNUSED): New note.
-       * combine.c (combine_instructions): Delete loop fixing up
-       reg_first_use.
-       (can_combine_p): Ignore a branch of a PARALLEL if its output is
-       never used.
-       (move_deaths): Don't update reg_first_use.
-       (distribute_notes): Don't handle REG_UNSET; add code for REG_UNUSED.
-       * flow.c (reg_first_use): Deleted.
-       (life_analysis): Restore code that marks vars live at start of function
-       as globals.  These are registers that were never set.
-       (allocate_for_life_analysis): Don't allocate reg_first_use.
-       (propagate_block): Search for cc0-setting insn with prev_nonnote_insn.
-       (mark_set_1): Don't set reg_first_use.
-       If register is never used, make REG_UNUSED note, not REG_DEAD.
-       (mark_used_regs): Don't set reg_first_use.
-       * global-alloc.c (global-conflicts): Dead outputs are now denoted by
-       REG_UNUSED notes, not REG_DEAD.
-       * reload.c (find_dummy_reload): Delete test of REG_UNSET; add test
-       of REG_UNUSED.
-       (find_equiv_reg): Don't re-use an output marked as REG_UNUSED;
-       we want these notes to be accurate; this would rarely win anyway.
-       * reload1.c (emit_reload_insns): Test REG_UNUSED to see if an
-       output won't be used any more.
-       * reorg.c (mark_target_live_regs): Use REG_UNUSED notes to kill 
-       registers dead after an insn.
-       * rtl.c (reg_note_name): Delete REG_UNSET, add REG_UNUSED.
-       * rtlanal.c (single_set): Ignore a SET whose output has a REG_UNUSED
-       note.
-       * sched.c (update_first_use): Deleted.
-       (update_links): No need to call update_first_use.
-
-       * local-alloc.c: Major changes to use REG_UNUSED notes, make
-       handling of only-set registers more consistent, and allow
-       two consecutive CLOBBERs to share a register.  Also, avoid loops
-       over all register each basic block; eliminating these make local-alloc
-       three times faster!
-       Quantity numbers now start at zero.
-       (qty_first_reg, reg_next_in_qty): New variables.
-       (qty_clobber): No longer needed.
-       (reg_qty): -1 if register cannot be allocated by local-alloc.
-       Now undefined for hard registers.
-       (reg_offset): Now char *.
-       (call_seen): Deleted, never used.
-       (regs_live_at): Now two entries per insn.
-       (alloc_qty): Initialize chain of register in quantity.
-       (local_alloc): Remove all per-block loops over registers.
-       Only allocate qty_... vars for max_reg - FIRST_PSEUDO_REGISTER.
-       Initialize reg_qty once per function.
-       Don't initialize qty_... vars that are always set before use.
-       (block_alloc): Delete insn_map, max_uid, and call_used.
-       Insn numbers start at 1 and we have two entries in regs_live_at
-       for each insn.
-       Search for REG_NO_CONFLICT block when we see a CLOBBER insn; this
-       avoids having already seen sets to the output register.
-       Call wipe_dead_reg for anything in a REG_UNUSED note.
-       Delete references to reg_first_use.
-       Don't check for invalid birth and death here.
-       Don't call qsort if we have 0 or 1 quantities.
-       Find all registers for a quantity using reg_next_in_qty chain instead
-       of looping over all pseudos.
-       (combine_regs): Refine tests to agree with new conventions.  
-       Never tie pseudos if SREG already has a quantity assigned.
-       When updating size, use reg_next_in_qty instead of looping over
-       all registers.
-       (reg_is_set): Just call reg_is_born.  Where it is born depends on
-       whether we have a CLOBBER or not.  Birth location is now twice
-       the insn number.
-       (reg_is_born): Handle case when a hard reg is born before the
-       current insn.
-       Show we don't know the death location.
-       (wipe_dead_reg): Parameters are now just register and an in/out flag.
-       Death locations are now twice the insn number.
-       Support hard regs that die immediately after current insn.
-       Don't make REG_UNSET notes.
-       (find_free_reg): Validate BIRTH and DEATH here.
-       We no longer have qty_clobber.
-       (post_mark_life): Eliminate CLOBBER parameter.
-       (no_conflict_p): Now passed CLOBBER at start of block.  Return 0 if
-       can't find death note or if R1 is a hard register.
-
-       * m68k.md (divsi3, udivsi3): Remove patterns.  Using divmodsi4 and
-       udivmodsi4 produces better code.
-       (divmodsi4, udivmodsi4): If remainder isn't needed, use divsl/divul
-       instead of divsll/divull.
-
-       * integrate.c (expand_inline_function): Remove change of March 20th.
-       Instead, expand args in two passes.  First, expand all that go
-       into registers.  Then do those in memory with store_expr.
-
-       * integrate.c (initialize_for_inline): Put the original copy of the
-       address into ARG_VECTOR; the new one will be modified.
-
-       * reload.c (push_reload): Handle paradoxical SUBREGs on an output
-       as well as an input.
-
-       * flow.c (mark_label_ref): Don't blow up when X is 0.
-
-       * combine.c (make_compound_operation): Fix typos; result of 
-       exact_log2 is interesting if >=0.
-
-       * a29k.md (store_multiple): Allow gen_store_multiple{_no,}_bug to fail;
-       we fail if they do.
-
-       * reorg.c (emit_delay_sequence): Record that we deleted a BARRIER
-       and restore it precisely on those occaisions.
-
-Sun Mar 24 21:19:55 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * gcc.c (xmalloc, xrealloc): Change error message.
-       * toplev.c (various): Change error messages.
-
-       * final.c (final_scan_insn): Handle ASM_OUTPUT_LOOP_ALIGN.
-
-       * calls.c (emit_call_1): Pass number of bytes to pop to call_pop.
-       * vax.md (call_pop, call_value_pop): Use that arg.
-
-Sat Mar 23 23:28:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * Makefile.in (version): Run awk, not gcc, to get this value.
-
-Sat Mar 23 18:04:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * cse.c (simplify_unary_operation): Add missing cases for ABS and FFS.
-
-       * alliant.md: Eliminate unneeded patterns: HImode zero_extract, 
-       (set (cc0 (subreg ...))), (set (cc0) (and ...)),
-       (and (zero_extend ...) ...), shift right of 24 and 16.
-       Use alternatives to select assembler template when possible.
-       Use const_int_operand instead of immediate_operand when
-       possible to avoid explicit test for CONST_INT.
-       Write add-and-branch patterns with PLUS removed, the way combine
-       produces them.
-
-       * rtlanal.c (refers_to_regno_p): If X is a SUBREG of a hard
-       register, treat it as if it were the appropriate register.
-       CLOBBER doesn't refer to anything.
-       
-       * final.c (final_scan_insn): Use prev_nonnote_insn, not PREV_INSN,
-       to find cc0-setting insn from cc0-using insn.
-
-       * global-alloc.c (find_reg): Don't look for other registers to
-       renumber unless we know that we are sharing registers.
-
-       * emit-rtl.c (end_sequence): Fix typo that prevented speedup of
-       Dec 26th from doing anything.
-
-       * toplev.c (do_abort): New function, just calls abort.
-       (main): Set lang_expand_expr to address of do_abort; abort might be
-       a macro that is more than just a function name.
-
-       * cse.c: (qty_... variables): Refined to be undefined for indices
-       less than MAX_REG.  Thus, we need not intialize them at the start
-       of a basic block and can instead inialize a quantity as we create it.
-       (reg_{next,prev}_eqv): These variables will now be defined only when
-       reg_qty[N] != N and hence need not be initialized every block either.
-       (new_basic_block): Need not initialize reg_rtx for new block; the
-       only time we can inherit values from previous blocks is for hard
-       regs and it doesn't matter in that case.
-
-       * c-parse.y (yylex): Avoid use of size_t; it may not be defined.
-       Cast alloca to (char *).
-
-       * out-romp.c (update_cc): cc_status.value[12] can also be a COMPARE,
-       so use reg_overlap_mentioned_p to see if an insn that modifies a
-       register invalidates cc0.
-
-       * reorg.c (link_cc0_insns): If next insn is a SEQUENCE, the insn
-       using cc0 is the first insn in the sequence.
-       (mark_target_live_regs): Don't assume that a REG_DEAD note always
-       refers to a register.
-
-Sat Mar 23 15:35:59 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * reload1.c (reload_reg_free_before_p):
-       An input reload is use before an output or output address reload.
-
-       * genoutput.c (validate_insn_alternatives): New function.
-       Loop over insn's alternatives to find out how many
-       alternatives the insn pattern is to support.  Verify that if
-       any alternatives are specified for a given operand that the
-       number of alternatives match the numer of alternatives for
-       this insn.
-       (gen_{insn,peephole,expand,split}): Call
-       `validate_insn_alternatives' after scanning the insn.  This
-       sets up the value N_ALTERNATIVES for the insn so that
-       `process_template' can check that the number of alternitves
-       given matches the number of asm choices for `@' constructs.
+2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
 
-Sat Mar 23 08:09:57 1991  Michael Meissner  (meissner at osf.org)
+       * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
 
-       * dbxout.c (toplevel, dbxout_init): Instead of always using `Ltext'
-       as the label at the beginning of the text region, properly localize
-       it, so that machines which do not put leading underscores in front
-       of external names do not have a problem if the user uses `Ltext'.
-       (dbxout_init): Call text_section before putting out localized
-       `Ltext', in case ASM_FILE_START put us into a different section.
+2000-01-21  Jakub Jelinek  <jakub@redhat.com>
 
-Fri Mar 22 19:26:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * a29k.md (jumpfdec): Simplify pattern to match what combine will
-       produce; remove reversed pattern.
-       * out-a29k.c (gen_reg_operand): Speed up by not calling
-       register_operand; check register number ourself.
-
-       * out-romp.c (update_cc, case CC_COMPARE): Call CC_STATUS_INIT.
-       * romp.md: In pattern that sets cc0 and copies a register to another
-       register, allow the output to be in memory so that we don't get an
-       output reload, which will cause problems.
-
-       * varasm.c (assemble_variable): Ensure DECL_INITIAL is non-zero
-       before we reference it; it might be zero if -fno-common.
-
-Fri Mar 22 16:11:35 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * toplev.c (abort): Don't declare if defined as macro.
-
-Fri Mar 22 11:49:43 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (bxxu): Don't attempt to use bcnd.
-       (umulsi3, ashift/and): Remove these patterns.
-       (dummy): This must be a define_expand.
-       * out-m88k.c (m88k_handle_pragma_token): Handle #pragma weak.
-       * tm-m88k.h, tm-m88kdgux.h, tm-m88ksvr4.h, tm-v88r32.h: Various
-       changes to support SVR4, including support for #pragma weak.
-       (SLOW_BYTE_ACCESS): Better code if this is true.
-
-Thu Mar 21 09:15:47 1991  Tom Wood  (wood at gen-rtx)
-
-       * c-parse.y (MULTIBYTE_CHARS): New macro.
-       (init_lex): Change to the native locale.
-       (yylex): Process wide character literals and wide character string
-       literals using mbtowc and mbstowcs based on MULTIBYTE_CHARS.
-
-Thu Mar 21 15:46:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * rtlanal.c (dead_or_set_p): A register is dead if it is assigned
-       via a SUBREG that references the all the words in the register.
-
-       * tm-vax.h (CONST_OK_FOR_LETTER_P): Define `I' to be constant zero.
-       (CONST_DOUBLE_OK_FOR_LETTER_P): Define `G' to be floating zero.
-       (CONST_COSTS): +/- 1 should be very cheap due to decl/inc/aob/sob.
-       (PRINT_OPERAND): Add `P', `N', `H', and `B'.
-       * vax.md: Rework many patterns to avoid C code for output template;
-       use "@" construct whenever possible.
-       Use INSN_DELETED_P.
-       Remove extendsidi2; the supplied pattern does exactly what convert_move
-       will do when the pattern is not present.
-       Use constm1_rtx to check for constant of -1.
-       Add mulsidi3 and related add-multiply pattern for emul insn.
-       Use const_int_operand as predicate instead of checking for CONST_INT.
-       Remove unneeded (set (pc) (if_then_else (ne (and ...) ...) ...))
-       patterns.
-       Merge jlbs and jbs and similarly for jlbc and jbc.
-       Remove unneeded reverse branch patterns for above insns.
-       Rewrite patterns for add-and-branch insns to take into account
-       simplifications done by combine and remove reversed cases.
-       Convert peepholes for optimizing extzv followed or preceeded by andl
-       into patterns for a single insn.
-
-Thu Mar 21 15:46:21 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * toplev.c (abort): Declare it.
-
-Thu Mar 21 08:16:12 1991  Michael Meissner  (meissner at osf.org)
-
-       * va-mips.h (whole file): Replace with the 1.39 version of this
-       file, which was a total rewrite of the 1.37.1 version.  Add
-       primitive support for 2.00.
+       * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
+       pseudos if expanded after first flow.
+       (movdi_pic_label_ref): Likewise.
 
-Wed Mar 20 18:31:42 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-20  Richard Henderson  <rth@cygnus.com>
 
-       * jump.c (duplicate_loop_exit_test): Make copy of contents of
-       register note; if it was a REG_EQUAL note, it might have been an
-       arbitrary expression and sharing it can cause problems in cse.
+       * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
 
-       * rtl.def (UMULT): Remove unsigned multiply code.
-       * combine.c (subst, significant_bits): Remove code UMULT and
-       support for indicating widening multiply with different modes
-       on the MULT operation vs. its operands.
-       * cse.c (simplify_binary_operation): Remove support for widening
-       multiply.
-       (rtx_code, exp_equiv_p, simplify_binary_operation, cse_insn): Remove
-       code UMULT.
-       * function.c (instantiate_virtual_regs_1): Likewise.
-       * reload1.c (eliminate_regs): Likewise.
-       * local-alloc.c (block_alloc): Likewise; replace with GET_RTX_CLASS.
-       * loop.c (simplify_giv_expr, expr_benefit): Remove code UMULT
-       and support for widening multiply.
-       * optabs.c (init_optabs): Set code of widening multiply tables
-       to UNKNOWN.
+2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * a29k.md (mulsidi2, umulsidi2): Rewrite using SIGN_EXTEND and
-       ZERO_EXTEND.  Also fix typo in SUBREG_WORD when splitting.
-       * tm-alliant.h, tm-m68k.h (NOTICE_UPDATE_CC): Remove code UMULT.
-       * alliant.md, m68.md (mulhisi3, umulhisi3): Rewrite using
-       SIGN_EXTEND and ZERO_EXTEND.
-       (divhisi3, udivhisi3, modhisi3, umodhisi3): Rewrite using TRUNCATE.
-       * alliant.md, ns32k.md (umulsi3, umulhi3, umulqi3): Remove unneeded
-       patterns that use UMULT.
-       * ns32k.md (umulsidi3): Rewrite using ZERO_EXTEND.
+       * Makefile.in (fixinc.sh): Depend on specs.
+       * fixinc/Makefile.in: Add rule to create machname.h.
+       (fixlib.o): Depend on machname.h.
+       * fixinc/fixtests.c (machine_name): New test.
+       * fixinc/fixfixes.c (machine_name): New fix.
+       * fixinc/fixlib.c (mn_get_regexps): New helper function for
+       the machine_name test and fix.
+       * fixinc/fixlib.h: Prototype it.
+       * fixinc/inclhack.def (machine_name): Use the C test and fix.
+       * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
 
-       * tm-alliant.h (NOTICE_UPDATE_CC): MOD and (trunc (mod ...))
-       clobber CC.
-       * alliant.md (mod*, umod*): No longer need CC_STATUS_INIT.
+       * gcc.c (do_spec_1) [case P]: Take care not to create
+       identifiers with three leading or trailing underscores.
 
-       * recog.c: Include insn-attr.h.
-       (general_operand): If we have insn scheduling, don't allow paradoxical
-       SUBREGs since they can prevent scheduling memory references; they
-       aren't helpful on RISCs anyway and can cause poor register allocation.
-       * Makefile.in (recog.o): Includes insn-attr.h.
+       * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
+       (fixincl): Don't specify libraries twice on link line.
+       (gnu-regex.o): Remove special rule.
+       * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
+       defined by config.h.  Do not define _REGEX_RE_COMP.
+       (regcomp): Allocate and initialize a fastmap.
+       * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
 
-       * cse.c (COST): A register only in NO_REGS isn't a specially-cheap reg.
-       (simplify_unary_operation, case {ZERO,SIGN}_EXTEND): If OP_MODE was
-       given as VOIDmode, use MODE; allow mode size of HOST_BITS_PER_INT.
-       (cse_insn): Don't make SET_SRC equal SET_DEST if doing so will cause
-       two registers to be live containing the same value.
-       (cse_end_of_basic_block): Count SETs in CALL_INSNs and JUMP_INSNs.
+2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
 
-Wed Mar 20 15:40:48 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
 
-       * gcc.c (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): New macros.
-       (md_exec_prefix, md_startfile_prefix): New variables.
-       (process_command): Put those prefixes on the paths.
+2000-01-19  Richard Henderson  <rth@cygnus.com>
 
-       * toplev.c (main): Use abort, not fancy_abort.
+       * flow.c (propagate_block): Replace FIRST, LAST and BNUM
+       arguments with BB.  Update all callers.  Tidy line wrapping.
 
-       * integrate.c (expand_inline_function): Use emit_block_move
-       to copy BLKmode parm value.  Save size and alignment for this.
+2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * gnulib2.c (__builtin_saveregs)[MIPS]: Go to text section.
+       * emit-rtl.c (try_split): Return last_insn if we split the
+       last_insn.
 
-       * final.c (final_scan_insn): Don't go to text after jump-tab label.
+Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
 
-Tue Mar 19 21:27:09 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * i386-protos.h (ix86_compute_frame_size): Remove prototype.
+       (ix86_initial_elimination_offset): Declare.
+       * i386.c (ix86_nsaved_regs): Break out from ...
+       (ix86_can_use_return_insn_p): ... here.
+       (ix86_emit_save_regs): Break out from ...
+       (ix86_expand_prologue): ... here.
+       (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
+       out from ...
+       (ix86_expand_epilogue): ... here.
+       (ix86_compute_frame_size): Make static, add prototype.
+       (ix86_initial_elimination_offset): Break out from ...
+       * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
 
-       * tm-a29k.h (SETUP_INCOMING_VARARGS): Always write registers to 
-       0(ap), no matter how many named args are present.
+2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * combine.c (subst): In IF_THEN_ELSE, canonicalize to put the (pc)
-       in the second operand if we can reverse the comparison.
-       (significant_bits): Support TRUNCATE and SIGN_EXTEND.
+       * recog.h (OUT_FCN): Delete.
 
-       * tm-romp.h (CC_UNSIGNED): New flag for cc_status.
-       * out-romp.c (update_cc, case CC_COMPARE): Record the operands of the
-       compare and mark whether the test will be signed or unsigned.
-       (restore_compare_p): New function.
-       * romp.md (conditional branch and return patterns): Use new
-       restore_compare_p to see if we need to tell final to reinclude
-       deleted compare insn.
+       * vax.md: Call `get_insn_template' instead of OUT_FCN.
 
-       * output.h (const_int_operand): Define.
-       * recog.c (const_int_operand): New function.
-       * out-a29k.c, out-romp.c, out-rs6000.c (const_int_operand): Remove from
-       these.
+2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * tree.c (rtl_in_saveable_obstack): New function.
-       * varasm.c (immed_double_const, immed_real_const_1): Ensure that things
-       that get placed on the chain are always put into saveable_obstack.
+       * cppalloc.c: PROTO -> PARAMS.
+       * cpperror.c: Likewise.
+       * cppfiles.c: Likewise.
+       * cpplib.c: Likewise.
+       * cpplib.h: Likewise.
 
-Tue Mar 19 17:21:30 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+       * config/arm/arm-protos.h: PROTO -> PARAMS.
+       * config/arm/arm.c: Likewise.
+       * config/c4x/c4x.c: Likewise.
+       * config/fr30/fr30-protos.h: Likewise.
+       * config/nextstep.c: Likewise.
+       * config/pa/pa.c: Likewise.
+       * config/pj/pj.c: Likewise.
+       * config/rs6000/rs6000.c: Likewise.
+       * config/v850/v850-protos.h: Likewise.
+       * config/v850/v850.c: Likewise.
 
-       * stddef.h (wchar_t): New typedef.
+2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * out-sparc.c (output_block_move): Handle NO_UNDERSCORES syntax.
+       * i370-protos.h: New file.
 
-       * tm-pbd.h, xm-pbd.h: New files.
-
-       * toplev.c (report_error_function): Don't crash if between functions.
+       * i370.c: Include tm_p.h.  Fix compile time warnings.
 
-Tue Mar 19 12:58:13 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * sched.c (memrefs_conflict_p): C was being used as offset for X,
-       not for Y.  Flipping + and - in offset uses cleared up this problem.
-       ({true,anti,output}_dependence): Add declaration for INSN.
-       (order_calls): Interface changed; now returns void.  All callers
-       changed.
-       (sched_analyze_{1,2}): Make dependence between calls and
-       call-clobbered registers explicit.
-       (sched_analyze): Track last_function_call_not_const.
-       (sched_note_set): New parameter DEATH says whether X is marked for
-       death.  Also, look through SUBREGs and extractions.
-       (rank_for_schedule): Stabilize for qsort.
-       (attach_deaths): We should not end up with more REG_DEAD notes than
-       we started with, so abort if we run out early.
-       (attach_deaths_insn): Handle more complicated cases of registers
-       dying in insns.
-       (unlink_notes): Work from back-to-front instead of front-to-back.
-       (new_sometimes_live): Fix code that looks for an element already in
-       the table.
-       (schedule_block): New variable TAIL_PRIORITY  used to help determine
-       max IPC of scheduled code.  Also, for now we analyze (schedule) all
-       blocks, even ones which won't benfit from scheduling.  This is
-       necessary to keep register live info correct, but has the
-       disadvantage of screwing *all* debug info, not just for the blocks
-       that were scheduled.
-       (update_links): Fix complicated code that was to be a simple
-       head-cons to be a simple head-cons.
-       (schedule_insns): Update REG_LIVE_LENGTH and REG_N_CALLS_CROSSED
-       after scheduling.
+       * i370.h: Move prototypes to i370-protos.h.  Fix compile time
+       warnings.
 
-       * sparc.md (cmpdf): Define an expand pattern for this.  (Dropped by
-       mistake when converted from old-style to new-style condition codes).
+       * i370.md: Likewise.
 
-       * out-sparc.c (singlemove_string): Catch case where `sethi' can be
-       used instead of `mov'.
+2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
+       (target_isinf, target_isnan, eisnan): Mark parameter with
+       ATTRIBUTE_UNUSED.
+       (eiisinf): Wrap in INFINITY.
+       (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
+       (ibmtoe): Remove unused variable `rndsav'.
 
-       * gcc.texinfo (Optimize Options): Add documentation about the
-       `-finline' option (actually, the `-fno-inline' option).
+Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * out-sparc.c (output_block_move): Use `rtx_alloc' instead of
-       `gen_rtx' to cons a CONST_INT whose INTVAL we can change.
+       * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
+       (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
+
+2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
+       * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
+       (fix_char_macro_defines, fix_char_macro_uses): New functions.
+
+       * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
+       Recognize Emacs mode markers also.
+       * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
+       C++ comments in C++ headers.  Call is_cxx_header only if
+       necessary.
 
-       * toplev.c (main): Recognize all -O strings (i.e. -O3, -O69), not
-       just -O and -O2.
+       * fixinc/inclhack.def (avoid_bool): Add select for the problem and
+       bypass for ncurses.
+       (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
+       (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
+       ... these, which use the new C fixes.
+       (math_exception): Escape literal '+' in bypass expression.
 
-Mon Mar 18 22:30:21 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+       * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
+       Regenerate.
 
-       * expr.c (expand_expr): For TRUTH_ANDIF_EXPR, don't use hard target
-       if not optimizing.
+2000-01-19  Geoff Keating  <geoffk@cygnus.com>
 
-       * combine.c: Fix some comments; reorder the variable declarations.
+       * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
+       inside the MEM.
 
-Mon Mar 18 12:07:03 1991  Matthew Self (mself@next.com)
+2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * tm-next.h (WORD_SWITCH_TAKES_ARG):  Return number of args taken.
+       * loop.c (loop_optimize): Allocate loop_info structure for each loop
+       prior to calling scan_loop.
 
-       * tm-next.h (CPLUSPLUS):  Deleted (obsolete).
+Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * out-next.c (flag_no_mach_text_sections, handle_pragma):
-       Handle #pragma CC_NO_MACH_TEXT_SECTIONS.
+       * sh.c (find_barrier, gen_block_redirect): Fix indentation.
+       (split_branches, calc_live_regs): Likewise.
 
-Mon Mar 18 12:12:13 1991  Richard Stallman  (rms at goldman)
+Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * cplus-pt.c: Renamed from cplus-template.c.
-       * Makefile.in (cplus-pt.o): New target.
+       * sh.md (fpu_single, fp_mode): New attributes.
 
-       * c-typeck.c (initializer_constant_valid_p):
-       Allow casts that change width only for explicit values.
-       * tree.c (really_constant_p): New function.
-       * expr.c (expand_expr): Handle MINUS_EXPR with EXPAND_SUM.
+2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * tm-m68k.h (FUNCTION_EXTRA_EPILOGUE): Don't normally define this.
-       * out-m68k.c (use_return_insn): Don't look at FUNCTION_EXTRA_EPILOGUE.
+       * loop.c (current_loop_info): Renamed from loop_info_data
+       and changed to a pointer.
+       (loop_optimize): Allocate loop_info structure for each loop
+       and initialize to zero.
+       (scan_loop): Set current_loop_info.
 
-       * out-sparc.c (normal_comp_operator): Replace comparison_code_p.
+       * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
+       on iteration_var.
 
-Sun Mar 17 22:53:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-19  Richard Henderson  <rth@cygnus.com>
 
-       * m68k.md: Delete patterns now converted by combine to simpler
-       patterns or otherwise obsolete.  Specifically:  ZERO_EXTRACT from
-       an HImode object, setting cc0 to SUBREG or AND, umulhi3, umulsi3,
-       AND of a ZERO_EXTRACT, shifts of 24 and 16 from MEM, and patterns with
-       constants as first operand of comparison operator.
-       Remove COMPARE except as a SET_SRC.
+       * stupid.c: Die die die.
+       * Makefile.in (OBJS): Remove stupid.o.
+       (stupid.o): Likewise.
 
-       * alliant.md, tahoe.md, rs6000.md: Remove COMPARE except as a SET_SRC.
+       * except.c (emit_eh_context): Don't emit USEs for stupid.
+       * explow.c (probe_stack_range): Likewise.
+       * flags.h (obey_regdecls): Remove.
+       * flow.c (find_basic_blocks): Don't run try_merge_blocks
+       when not optimizing.
+       (life_analysis): Limit data collection when not optimizing.
+       (mark_regs_live_at_end): Always mark the return value registers.
+       (mark_used_regs): Remove dummy RETURN case.
+       (print_rtl_with_bb): Don't consult obey_regdecls.
+       * function.c (use_variable, use_variable_after): Remove.
+       (assign_parms): Consult optimize not obey_regdecls.
+       (expand_function_start): Don't emit USEs for stupid.
+       (expand_function_end): Likewise.
+       * global.c (build_insn_chain): Export.
+       * integrate.c (expand_inline_function): Kill return-value USE
+       handling code.
+       * jump.c (jump_optimize_1): Do simple jump optimizations and
+       dead code elimination.
+       (calculate_can_reach_end): Remove check_deleted argument.
+       (delete_insn): Patch out insns even when not optimizing.
+       * local-alloc.c (block_alloc): Don't do tying when not optimizing.
+       * rtl.h (use_variable, use_variable_after): Remove declarations.
+       (build_insn_chain): Declare.
+       * stmt.c (expand_value_return): Don't emit USEs for stupid.
+       (expand_end_bindings): Likewise.
+       (expand_decl): Likewise.  Consult optimize not obey_regdecls.
+       * toplev.c (obey_regdecls): Remove.
+       (rest_of_compilation): Don't set it.  Kill stupid in favor of
+       flow1, local-alloc, and reload.
+       (main): Don't set obey_regdecls.
 
-       * flags.h (flag_combine_regs): Deleted.
-       * toplev.c: Likewise.
-       * tm-a29k.h, tm-romp.h, tm-rs6000.h (OVERRIDE_OPTIONS): No longer
-       turn on flag_combine_regs.
-
-       * tm-romp.h, tm-rs6000.h (SLOW_BYTE_ACCESS): Set to 1.
-
-       * Makefile.in (combine.o): Include insn-codes.h and insn-attr.h.
-
-       * combine.c: Major rework to support many more simplifications in
-       a more regular manner and support combining three insns into two.
-       The most significant changes are the following:
-       (subst): Remove simplifications involving ZERO_EXTRACT, SIGN_EXTRACT,
-       ZERO_EXTEND, SIGN_EXTEND, AND, and shifts.
-       Call new routines below; in the case of comparisons, handle call
-       find_next_use if we need to change the comparison code or the
-       particular MODE_CC mode required.
-       No need to ever change ASHIFT to MULT here.
-       (expand_compound_operation): New function to convert
-       {ZERO,SIGN}_{EXTRACT,EXTEND} into the appropriate pair of shifts.
-       (make_compound_operation): New function to make
-       {ZERO,SIGN}_{EXTRACT,EXTEND} operations from shifts and ANDs.
-       If we are on a machine (like a Vax) that has only arithmetic shifts,
-       convert logical to arithmetic shifts when it doesn't matter 
-       which shift is used (simplify_shift_const canonicalizes to
-       logical shifts).
-       If inside an address, convert ASHIFT to MULT.
-       (significant_bits): New function to determine which bits of
-       a value are known to be zero.
-       (simplify_and_const_int): Use significant_bits.
-       Call expand_compound_operation when required.
-       Handle AND of an ASHIFTRT with a constant.
-       Don't make ZERO_{EXTEND,EXTRACT} here.
-       (simplify_shift_const): New function to simplify a shift of an
-       an object by a constant integer.
-       (gen_lowpart_for_combine): When applied to a comparison operator,
-       return comparison operator in requested mode.
-       (simplify_set_cc0_and): Deleted.
-       (try_combine): No longer call simplify_set_cc0_and.
-       (reversible_comparison_p): New function.
-       (simplify_comparison): New function.
-
-       (combine_instructions): Allocate and initialize new vars
-       reg_last_set_{table_tick,label,invalid}.
-       (update_table_tick, record_value_for_reg): New functions.
-       (get_last_value_validate, get_last_value): New functions.
-       (record_dead_and_set_regs): Call record_value_for_reg.
-
-       (find_split_point): New function to locate a place where a complex
-       pattern can be split into two insns.
-       (try_combine): If we are combining three insns and can't recognize the
-       new pattern, try to split it.
-       Call new functions below to update insn status.
-       Return insn at which to continue scan.
-       (adjacent_insns_p, add_links, remove_links): Deleted.
-       (add_incs, add_no_conflicts, remove_death, move_deaths_2): Deleted.
-       (move_deaths): Generalize to include movements in both directions.
-       Update reg_first_use when we make an earlier use.
-       (distribute_notes, distribute_links): New functions.
-       (combine_instructions): No longer need check for LOG_LINKS
-       pointing at a NOTE.
-       Rescan from location indicated by try_combine, if any, when
-       combining three insns.
-       Update reg_first_use if we moved a use to a later insn.
-
-       (try_distrib): Deleted.
-       (apply_distributive_law): New function, contains code from old
-       try_distrib.
-       (subst): Call apply_distributive_law for applicable operations.
-       Try to apply associative law.
-       (combine_instructions): No longer call try_distrib.
-       (dump_combine_stats, dump_combine_total_stats, combine_instructions):
-       No longer count distributer statistics.
-
-       (can_combine_p): New function to see if I2 or I1 is combinable.
-       Be more precise about when we can combine insns involving cc0.
-       Eliminate -fcombine-regs; always do it.
-       (try_combine): 
-       Call can_combine_p to validate I2 and I1.
-       If -fexpensive-optimizations, try to simplify I1 or I2.
-       Handle (set (foo) (const_int 0)) followed by a STRICT_LOW_PART
-       assignment to FOO as a ZERO_EXTEND.
-       (subst): Quit very early if X is a root node (like PC0).
-       Remove most canonicalizations done in first switch statement; now
-       done elsewhere.
-       Call simplify_{unary,binary,ternary}_operation.
-       Add cases involving logical and arithmetic operations applied
-       to comparison operators or values with only one significant bit.
-       Add more cases involving ABS since comparisons returning values
-       can be done with ABS.
-       Avoid generating (const (const ...) ...).
-       Convert (xmult (x_extend ...) ...) to a widening multiply.
-
-       (gen_rtx_combine): New function to search for an operation in
-       undobuf.  Many callers to gen_rtx changed to call this function.
-       (copy_substitutions): Only copy a substitution if it was placed into
-       more than one location.
-
-Sun Mar 17 17:26:09 1991  Richard Stallman  (rms@mole.ai.mit.edu)
-
-       * c-common.c (shorten_compare): Warn for (unsigned char) == -1.
-
-       * final.c (final_scan_insn): Set debug_insn before first output.
-       (output_asm_insn): Clear it here.
-
-       * expr.c (do_jump): Don't try to split non-integers.
-
-       * fixincludes (dnetdb.h): Fix missing semi in nodeent.
-       (rusers.h): Code to fix this file was duplicated.
-
-       * toplev.c (decl_printable_name): Now given an extra arg.
-       (decl_name): Accept that arg.
-       (announce_function, report_error_function): Pass that arg.
-       (error_with_decl, warning_with_decl): Likewise.
-
-       * dbxout.c (getwd) [USG]: Define as macro.
-
-       * c-decl.c (init_decl_processing): Indicate byte alignment for void.
-
-       * expr.c (do_jump_by_parts_*): Compute nwords from compare arg.
-       Pass 0 as size and alignment to compare_from_rtx.
-       (do_jump_by_parts_greater): Compare high word first.
-       Handle unsigned compares properly.
-       Fix logic for dropping through versus failing.
-
-       * expr.c (expand_builtin): Change cmpstrsi4 to cmpstrsi as in optabs.c.
-
-       * c-common.c (truthvalue_conversion): Handle ptr vs int in MINUS_EXPR.
-
-Sun Mar 17 15:43:48 1991  Matthew Self (mself@next.com)
+       * config/nextstep.c (handle_pragma): Likewise.
 
-       Allow multiple return points in some framless functions (2/2/91):
+       * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
 
-       * m68k.md (return):  New insn pattern for rts (and rtd).
+       * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
 
-       * tm-m68k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
-       USE_RETURN_INSN):       Call new functions to avoid giant macros
-       which are hard to edit.
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * out-m68k.c (output_function_prologue,
-       output_function_epilogue):  New functions.
+       * alpha-protos.h: PROTO -> PARAMS.
+       * alpha.c: Likewise.
+       * elf.h: Likewise.
+       * h8300.c: Likewise.
+       * i386-protos.h: Likewise.
+       * i386.c: Likewise.
+       * m32r-protos.h: Likewise.
+       * m32r.c: Likewise.
+       * mips.c: Likewise.
+       * mips.md: Likewise.
+       * gmon-sol2.c: Likewise.
+       * sparc.c: Likewise.
 
-       * out-m68k.c (use_return_insn):  New function.  Determines
-       whether the epilogue will consist of a single insn.  Some
-       code was duplicated from output_function_epilogue.  There
-       should be probably a new layout routine to do this common
-       work.  Also #include "flags.h".
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       *out-m68k.c (output_function_epilogue):  Don't output
-       anything if the epilogue was output as RTL.  We detect this
-       by the barrier insn which is always placed after a return
-       insn.  This machine-independent test should probably be moved
-       back into final.c and removed from out-sparc.c and out-m88k.c.
+       * ns32k-protos.h: New file.
 
-       * out-next.c:  Don't #include "flags.h".
+       * ns32k.c: Fix compile time warnings.
 
-Sun Mar 17 00:07:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
+       warnings.
 
-       * genemit.c (gen_exp): Support constm1_rtx.
-       * genrecog.c (add_to_sequence): Likewise.
+       * ns32k.md: Likewise.
 
-Sat Mar 16 17:26:58 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * c-lang.c (maybe_building_objc_message_expr): New dummy function.
-       * c-typeck.c (warn_for_assignment): Use it.
+       * vax-protos.h: New file.
 
-       * toplev.c (compile_file): Write out all static consts that are used.
+       * vax.c: Fix compile time warnings.
 
-Sat Mar 16 14:08:12 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * vax.h: Move prototypes to vax-protos.h.  Fix compile time
+       warnings.
 
-       * integrate.c (subst_constants): Don't replace registers in USE or
-       CLOBBER expressions.
+       * vax.md: Likewise.
 
-       * genattrtab.c (main): Properly set up a default DEFINE_ASM_ATTRIBUTES.
+       * vaxv.md: Likewise.
 
-       * cse.c (cse_insn): Correctly check for a hash table element equal to
-       the destination of a SET.
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Fri Mar 15 16:55:32 1991  Ron Guilmette (rfg at pepper.ncd.com)
+       * romp-protos.h: New file.
 
-       * Makefile.in (OBJS): Added dwarfout.o to list of things to be
-       built.
+       * romp.c: Fix compile time warnings.
 
-       * Makefile.in (dwarfout.o): Added this rule.
+       * romp.h: Move prototypes to romp-protos.h.  Fix compile time
+       warnings.
 
-       * dwarfout.c (FT_*_long_long): Added default definitions for all of
-       these extended fundamental type codes to cater to plain vanilla
-       <dwarf.h> file which do not define codes for these fundamental types.
+       * romp.md: Likewise.
 
-       * dwarfout.c (TREE_UID): Added a local definition of this macro
-       because gcc v2 no longer provides a definition for it and because
-       dwarfout.c needs some way of getting a unique numeric code for each
-       type.
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * dwarfout.c (CLASSTYPE_*): Added some local default definitions
-       for these macros in order to get around the fact that they are
-       currently defined only in cplus-tree.h (and rms wants dwarfout.c
-       to be language independent).
+       * we32k-protos.h: New file.
 
-       * dwarfout.c (BITFIELD_OFFSET_*): Added some local macros to help
-       compute various quantities relating to bitfield offsets.
+       * we32k.c: Fix compile time warnings.
 
-       * dwarfout.c (location_attribute): Changed code which outputs location
-       attributes for bitfield so that it uses gcc2 macros.
+       * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
+       warnings.
 
-       * dwarfout.c (byte_size_attribute): Changed code which outputs the
-       byte_size attribute so that it no longer uses the obsolete
-       DECL_SIZE_UNIT macro (from gcc1).
+2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * dwarfout.c:  Replaced all uses of the obsolete macro TREE_PACKED
-       to uses of the new gcc2 macro DECL_BIT_FIELD.
+       * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
 
-       * dwarfout.c (deriv_list_attribute): Fixed typo "decl" => "type".
+       * except.c (eh_regs): Likewise.
 
-       * dwarfout.c (output_dies_for_type): Replaced bogus reference to the
-       non-existant routine "output_member_function_type_die" with a proper
-       reference to the routine "output_subroutine_type_die".
+       * final.c (output_operand): Likewise.
 
-       * dwarfout.c (output_symbols_for_block): Fixed calling error which
-       was introduced by rms.
+       * fold-const.c (target_isinf, target_isnan): Likewise.
 
-       * dwarfout.c: Replaced all uses of the obsolete macro STMT_SUBBLOCKS
-       with uses of the new gcc2 macro BLOCK_SUBBLOCKS.
+Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
 
-       * dwarfout.c (output_symbol): Removed reference to TAG_DECL.  The
-       use of TAG_DECLs was an early idea which didn't work out.
+       * i386.h (BIGGEST_ALIGNMENT): Set to 128.
+       (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
 
-       * dwarfout.c: (dwarfout_init): Changed name from dwarfout_initialize
-       because rms failed to do so when he changed the name in the call.
+       * i386.md (memstr): Do not use rep stosb for counts divisible by 4
+       when optimize_size.
+       (clrstrsi): Rewrite.
+       (strsethi, strsetqi): New expanders.
+       (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
+       (cmpstrsi): Emit compare insn before cmpstrsi_1
+       (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
+       (strlensi_1): Likewise.
+       (cmpstrsi_1): Likewise; do not output compare.
+       (strlen expander): Do not unroll when optimizing for size.
+       (*subsi3_carry): Rename to subsi3_carry
+       (addqi3_cc): New pattern.
+       * i386.h (processor_costs): Add move_ratio field.
+       (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
+       * i386.c (*_cost): Set move_ratio.
+       (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
+       (x86_expand_strlensi_1): Rewrite the main loop.
 
-Fri Mar 15 17:22:14 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+2000-01-17  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
+       * cse.c (find_comparison_args, fold_rtx): Likewise.
+       * integrate.c (subst_constants): Likewise.
+       * loop.c (get_condition): Likewise.
 
-       * c-decl.c (pushdecl): Add `%s' to some error messages.
+       * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
 
-       * sparc.md: Add extra assembler alternative in last change.
+       * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
 
-       * cse.c (simplify_unary_operation, simplify_binary_operation):
-       Remove error checks that rejected SFmode.
+2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
 
-       * expr.c (get_pointer_alignment): Don't lose on casts from integer
-       to pointer.
+       * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
+       (RESTORE_WARN_FLAGS): Unpack it.
+       Change semantic type of extension to ttype.
+       * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
+       * c-parse.y, c-parse.c, objc/objc-parse.y,
+       objc/objc-parse.c: Regenerate.
 
-Fri Mar 15 07:57:19 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
 
-       * c-decl.c (pushdecl): Fix typo in previous change.
+       * fixinc/fixlib.c: Add copyright notice.
+       (compile_re): New function.
+       * fixinc/fixlib.h: Prototype compile_re.
 
-       * cse.c (simplify_{unary,binary}_operation): Fix usage of
-       REAL_VALUE_FROM_CONST_DOUBLE in recent change.
+       * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
+       Use compile_re to compile regular expressions.
 
-Thu Mar 14 18:56:53 1991  Richard Stallman  (rms@mole.ai.mit.edu)
+       * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
+       where the pattern matched.
 
-       * c-decl.c (pushdecl): Warn if mismatch with implicit decl.
+       * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
+       use 'replace'.
+       (ultrix_ansi_compat): Likewise.
+       (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
+       add egrep test.
+       (interactv_add2, interactv_add3): Delete.
+       (x11_sprintf): Don't use filename glob.
+       * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
+       Regenerate.
 
-       * final.c (final_start_function): Handle NON_SAVING_SETJMP.
-       Include hard-reg-set.h.
-       * function.c (setjmp_protect, setjmp_protect_args): Likewise.
-       (expand_function_end): Call those if NON_SAVING_SETJMP.
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Thu Mar 14 14:40:45 1991  James Wilson (wilson at cygnus.com)
+       * print-rtl.c: PROTO -> PARAMS.
+       * real.c: Likewise.
+       * reg-stack.c: Likewise.
+       * resource.c: Likewise.
+       * sdbout.h: Likewise.
+       * simplify-rtx.c: Likewise.
+       * stor-layout.c: Likewise.
+       * stupid.c: Likewise.
+       * xcoffout.c: Likewise.
+       * xcoffout.h: Likewise.
 
-       * reload1.c (order_regs_for_reload): When REG_ALLOC_ORDER is defined,
-       use that definition only to order regs, do not try to put call
-       used regs first.  This eliminates the benefits of defining the macro
-       in the first place.
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * real.h: New macros for real arithmetic, REAL_VALUE_FIX_TRUNCATE,
-       REAL_VALUE_UNSIGNED_FIX_TRUNCATE, REAL_VALUE_FIX,
-       REAL_VALUE_UNSIGNED_FIX.
+       * toplev.c: PROTO -> PARAMS.
+       * toplev.h: Likewise.
+       * tree.c: Likewise.
+       * tree.h: Likewise.
+       * unroll.c: Likewise.
+       * varasm.c: Likewise.
+       * varray.c: Likewise.
+       * varray.h: Likewise.
+
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * reload.c: PROTO -> PARAMS.
+       * reload.h: Likewise.
+       * reload1.c: Likewise.
+       * reorg.c: Likewise.
+       * resource.h: Likewise.
+       * rtl.c: Likewise.
+       * rtl.h: Likewise.
+       * rtlanal.c: Likewise.
+       * sbitmap.h: Likewise.
+       * sdbout.c: Likewise.
+       * stack.h: Likewise.
+       * stmt.c: Likewise.
+       * system.h: Likewise.
+
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * machmode.h: PROTO -> PARAMS.
+       * mbchar.h: Likewise.
+       * mips-tdump.c: Likewise.
+       * mips-tfile.c: Likewise.
+       * optabs.c: Likewise.
+       * output.h: Likewise.
+       * prefix.c: Likewise.
+       * profile.c: Likewise.
+       * protoize.c: Likewise.
+       * real.h: Likewise.
+       * recog.c: Likewise.
+       * recog.h: Likewise.
+       * regclass.c: Likewise.
+       * regmove.c: Likewise.
+       * regs.h: Likewise.
+
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * ggc-common.c: PROTO -> PARAMS.
+       * ggc-page.c: Likewise.
+       * ggc-simple.c: Likewise.
+       * ggc.h: Likewise.
+       * global.c: Likewise.
+       * graph.c: Likewise.
+       * gthr-win32.h: Likewise.
+       * haifa-sched.c: Likewise.
+       * halfpic.h: Likewise.
+       * integrate.c: Likewise.
+       * integrate.h: Likewise.
+       * jump.c: Likewise.
+       * lcm.c: Likewise.
+       * local-alloc.c: Likewise.
+       * loop.c: Likewise.
+       * loop.h: Likewise.
+
+2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * genattr.c: PROTO -> PARAMS.
+       * genattrtab.c: Likewise.
+       * gencheck.c: Likewise.
+       * gencodes.c: Likewise.
+       * genconfig.c: Likewise.
+       * genemit.c: Likewise.
+       * genextract.c: Likewise.
+       * genflags.c: Likewise.
+       * gengenrtl.c: Likewise.
+       * genopinit.c: Likewise.
+       * genoutput.c: Likewise.
+       * genpeep.c: Likewise.
+       * genrecog.c: Likewise.
+
+2000-01-16  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (BINFO_VPTR_FIELD): Augment documentation.
+
+2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
+       * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
+       * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
+       * configure, config.in: Rebuilt.
+
+2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * config/i386/i386.md: Add peephole to merge successive stack
+       adjusts.
+
+Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
+
+       * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
+       instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
+       when walking backwards to find all the parameter loads when
+       the basic block ends in a call.
+
+2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * loop.c (this_loop_info): Delete.
+       (uid_loop): Add in place of uid_loop_num.  All uses updated.
+       (loop_number_exit_count): Delete and replace with entry in loop
+       structure.  All uses updated.
+       (loop_number_loop_starts, loop_number_loop_ends): Likewise.
+       (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
+       (loop_outer_loop): Likewise.
+       (loop_invalid, loop_number_exit_labels): Likewise.
+       (loop_used_count_register): Delete and replace with entry in
+       loop_info structure.
+       (find_and_verify_loops): Add loops argument.
+       (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
+       loop_end, etc. arguments with loop structure pointer.  All callers
+       changed.
+       (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
+       (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
+       (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
+       (insert_bct): Likewise.
+       (basic_induction_var): New argument level.
+       * loop.h (struct loop_info): Delete fields num, loops_enclosed,
+       vtop, and cont.  Add used_count_register.
+       (uid_loop): Delete declaration.
+       (loop_number_exit_count): Likewise.
+       (loop_number_loop_starts, loop_number_loop_ends): Likewise.
+       (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
+       (loop_outer_loop, loop_used_count_register): Likewise.
+       (loop_invalid, loop_number_exit_labels): Likewise.
+       (unroll_loop): Replace loop_start and loop_end arguments
+       with loop structure pointer.
+       (loop_precondition_p, loop_iterations): Likewise.
+       Include basic-block.h.
+       * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
+       with loop structure pointer.
+       (loop_precondition_p, loop_iterations): Likewise.
+       * basic-block.h (struct loop): New entries vtop, cont,
+       cont_dominator, start, end, top, scan_start, exit_labels,
+       exit_count.
+       * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
 
-       * cse.c (simplify_unary_operation): Added code to simplify floating
-       point rtx.  Now simplifies UNSIGNED_FLOAT, ABS, FLOAT_TRUNCATE,
-       FLOAT_EXTEND, FIX, and UNSIGNED_FIX.  Add aborts to default case
-       of switches.
-       (simplify_binary_operation): Added code to simplify floating point
-       rtx.  Now simplifies PLUS, MINUS, MULT, and DIV.  Add aborts to
-       default case of switches.
-       (*): Always use REAL_VALUE_TYPE and REAL_VALUE_FROM_CONST_DOUBLE
-       when extracting a floating point number from a CONST_DOUBLE.
+2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
-Thu Mar 14 14:40:45 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
 
-       * expr.c (get_pointer_alignment): Update ALIGN for NOP_EXPR.
+2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
 
-       * c-decl.c (builtin_function): New arg LIBRARY_NAME.
-       (initialize_decl_processing): Pass that argument.
+       * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
 
-       * c-decl.c (grokdeclarator): Handle C_TYPE_FIELDS_VOLATILE.
-       (finish_struct): Likewise.
-       * c-tree.h (C_TYPE_FIELDS_VOLATILE): Define it.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * Makefile.in (gnulib1, gnulib2.portable): Test $$? after compilation.
+       * pdp11-protos.h: New file.
 
-       * c-typeck.c (check_format): Discard multiple NOP_EXPR levels.
+       * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * objc-actions.c (build_message_expr, build_selector_expr,
-       build_encode_expr, get_class_ivars, start_class):  Finding
-       Objective-C code in c source files is now a fatal error.
-       (They should recompile with -lang-objc.)
+       * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
+       warnings.
 
-       * objc-actions.c (gen_method_decl):  Don't crash for syntax
-       error in method declaration: -bar: x, y
-       (encode_array):  Treat an undimensioned array the same as a pointer.
+       * pdp11.md: Likewise.
 
-Thu Mar 14 07:39:30 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * 2bsd.h: Likewise.
 
-       * reorg.c (try_merge_delay_insns): Previous fix had effect of 
-       disabling this function.  Rework to take into account things
-       needed, instead of set.  This is still somewhat of a kludge.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * recog.c (apply_change_group): An insn consisting of just a USE
-       or CLOBBER is always valid, but recog_memoized returns a -1 for it.
+       * mn10300-protos.h: New file.
 
-       * genattrtab.c: Count all definitions as well as counting insns; use
-       definition # in error message.
-       Most functions that accepted insn_code now accept insn_index as well
-       and similarly for structures containing insn_code.
+       * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * reorg.c (try_merge_delay_insns): If not an annulling branch, take 
-       into account things set in the delay slot.  This prevents merging
-       two increments into one.
+       * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
+       warnings.
 
-       * reorg.c (dbr_schedule): Fix typo in printing statistics.
+       * mn10300.md: Likewise.
 
-Thu Mar 14 02:11:56 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * genemit.c, genoutput.c, genrecog.c: Count all definitions
-       as well as counting insns; use # of definition in error messages.
+       * mn10200-protos.h: New file.
 
-       * toplev.c (pipe_closed, float_signal): Give it an explicit arg.
-       * cplus-decl.c (sigsegv): Likewise.
-       * cccp.c (pipe_closed): Likewise.
+       * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * cccp.c: Delete trigraph from comment.
+       * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
+       warnings.
 
-       * Makefile.in (realclean): Delete objc parser files.
+       * mn10200.md: Likewise.
 
-       * assert.h (__assert for __GNUC__): Don't return value of abort.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Wed Mar 13 16:12:54 1991  Richard Stallman  (rms at churchy.ai.mit.edu)
+       * h8300-protos.h: New file.
 
-       * expr.c (do_jump_by_parts_greater): Don't lose if labels are 0.
+       * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * cplus-edsel.c: New name for cplus-cadillac.c.
-       * Makefile.in (cplus-edsel.o): Fix the compilation rule.
+       * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
+       warnings.
 
-Wed Mar 13 06:47:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * h8300.md: Likewise.
 
-       * reorg.c (mark_set_resources): Any registers mentioned in REG_INC
-       notes are set by an INSN.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * flags.h (flag_expensive_optimizations): Add new flag.
-       * toplev.c: Support -fexpensive-optimizations and turn on for -O2.
-       * stmt.c (preserve_subexpressions_p): Use flag_expensive_optimizations
-       instead of testing for -O2 explicitly.
+       * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
+       (asm_emit_uninitialised): Likewise.
 
-       * expr.h (operand_subword): Add missing declaration.
+2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
 
-       * reload1.c (eliminate_regs): Handle INSN_LIST (found in REG_NOTES).
+       * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
+       * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
 
-       * tm-i386.h (RETURN_POPS_ARGS): Don't call aggregate_type_p with 
-       IDENTIFIER_NODE.
+2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
 
-Wed Mar 13 00:00:29 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * config/mips/mips.c (override_options): Don't turn on extra
+       alignment for mips16.
 
-       * optabs.c (expand_binop, expand_unop): If wordwise, make target non0.
+2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
 
-Tue Mar 12 15:24:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
+       eabi, and make sure queued POSTINCREMENT rtl is emitted at
+       the right point.
 
-       * fixincludes: Quote the # in an echo.
-       * fixincludes: Fix typos handling size_t and ptrdiff_t.
-       * fixincludes (sys/file.h): Fix incorrect conditional in Ultrix.
+2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
 
-       * c-typeck.c (initializer_constant_valid_p): Allow NON_LVALUE_EXPR.
-       Return a tree that indicates the relocation.
-       All callers changed.
+       * builtins.c (PAD_VARARGS_DOWN): Define.
+       (std_expand_builtin_va_arg): Use the above macro.
+       * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
+       * tm.texi (Register Arguments): Document the above macro.
 
-       * jump.c (jump_optimize): Rerecognize jump insn after inverting it.
+2000-01-14  Nick Clifton  <nickc@cygnus.com>
 
-       * expr.c (do_jump):
-       Use can_compare_p on the operand mode, not the comparison's mode.
+       * emit-rtl.c (emit_insn): If checking is enabled, make sure
+       that this function has not been used to emit a jump
+       instruction.
 
-       * reload.c (subst_reloads): Fix dumb error in last change.
+       * jump.c (return_jump_1): Cope with being passed a null rtx.
 
-       * expr.c (do_jump_by_parts_equality*): Fix logic errors.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Mon Mar 11 14:27:40 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * eh-common.h: PROTO -> PARAMS.
+       * emit-rtl.c: Likewise.
+       * errors.c: Likewise.
+       * errors.h: Likewise.
+       * except.c: Likewise.
+       * except.h: Likewise.
+       * explow.c: Likewise.
+       * expmed.c: Likewise.
+       * expr.c: Likewise.
+       * expr.h: Likewise.
+       * final.c: Likewise.
+       * fix-header.c: 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.
 
-       * reload.c (subst_reloads): Don't make subregs, just new regs.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * expr.c (do_jump_by_parts_equality, do_jump_by_parts_greater):
-       (do_jump_for_compare, do_jump_by_parts_equality_rtx): New functions.
-       (do_jump): Use them to handle wide values.
-       * optabs.c (can_compare_p): New function.
+       * sh-protos.h: New file.
 
-       * reload1.c (emit_reload_insns): Don't make subreg around RELOADREG;
-       just make a new REG.
+       * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
+       Add static prototypes.  Fix compile time warnings.
 
-       * cse.c, varasm.c: Fix typos.
+       * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
+       * sh.md: Likewise.
+       * elf.h: Likewise.
 
-       * sparc.md (move SI to reg_or_nonsymb_mem_operand):
-       Separate third alternative into two alternatives.
-       * tm-sparc.h (PREFERRED_RELOAD_CLASS): Return CLASS as given.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * optabs.c (operand_subword): Fix typo.
+       * arc-protos.h: New file.
 
-       * longlong.h (__umulsidi3): Return .ll field.
+       * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-Mon Mar 11 11:43:21 1991  Jeffrey A. Law  (law at mole.ai.mit.edu)
+       * arc.h: Move prototypes to arc-protos.h.  Fix compile time
+       warnings.
 
-       * make-hp9k2bsd: New file.
-       * configure (hp9k200-bsd): Use it.
+       * arc.md: Likewise.
 
-Mon Mar 11 07:08:12 1991  Michael Tiemann  (tiemann at cygnus.com)
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * cplus-lex.c (check_newline): Clear TREE_INT_CST_HIGH once instead
-       of clearing TREE_INT_CST_LOW twice.
+       * dsp16xx-protos.h: New file.
 
-Mon Mar 11 06:51:52 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * flow.c (mark_used_regs): If we are going to use a later
-       register to auto-increment, make sure it really is a REG.
-       In the case above, count any calls crossed by the new register.
+       * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
+       warnings.
 
-       * global-alloc.c (global_conflicts): Mark registers modified by
-       virtue of a REG_INC note as modified in the insn to make conflicts.
-       (mark_reg_store): Accept SETTER value of 0.
+       * dsp16xx.md: Likewise.
 
-Sun Mar 10 16:56:25 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * optabs.c (operand_subword): New function to get one word of operand.
-       (expand_binop, expand_unop): Use it for word at a time case.
+       * convex-protos.h: New file.
 
-       * configure (a29-bsd*): Renamed from a29-sysv*.
+       * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * expr.c (emit_library_call): Handle GNULIB_NEEDS_DOUBLE.
-       * tm-i860.h (GNULIB_NEEDS_DOUBLE): Define it.
+       * convex.h: Move prototypes to convex-protos.h.  Fix compile time
+       warnings.
 
-       * tm-harris.h (ASM_FILE_START): Output a .file.
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * reload1.c (constraint_accepts_reg_p): Understand reg classes.
+       * elxsi-protos.h: New file.
 
-Sun Mar 10 06:58:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * expr.c (move_by_pieces, move_by_pieces_ninsns, emit_push_insn):
-       If SLOW_UNALIGNED_ACCESS is defined, respect alignment even if
-       STRICT_ALIGNMENT is not defined.
-       * tm-a29k.h (SLOW_UNALIGNED_ACCESS): Define this.
+       * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
+       warnings.
 
-Sun Mar 10 02:57:40 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * elxsi.md: Likewise.
 
-       * cccp.c (handle_directive): If pass_thru and -C, print the
-       input before removing comments from it.
+2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
 
-Sat Mar         9 21:18:48 1991  Torbjorn Granlund  (tege at musta.nada.kth.se)
+       * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
+       case for moving from HI/LO/HI_LO_REG.  This makes the behavior
+       match the comment for MIPS16.
 
-       * gnulib2.c (div_qrnnd, __umulsidi3, lowpart, highpart, B): Move
-       to longlong.h.
-       (udiv_qrnnd): New name of div_qrnnd.  Rewrite to work correctly.
-       (file header): Remove obsolete comment about internal format.
-       (bits): Remove this function.  count_leading_zeros in longlong.h
-       is similar.
-       (__udivdi3): Use count_leading_zeros instead of bits.
-       (__udivdi3): Use umul_ppmm instead of __umulsidi3, as this makes
-       better code.
+Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
 
-Sat Mar         9 18:02:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * flow.c (split_edge): Do not call set_block_for_insn if we
+       do not have a basic_block_for_insn structure.
 
-       * jump.c (jump_optimize): Avoid looking at PATTERN of NOTE
-       or CODE_LABEL.
+       * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
+       and destination functions are 32bit aligned within the trampoline.
+       (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
+       (TRAMPOLINE_ALIGNMENT): Define.
 
-       * reload1.c (reg_is_output_reload, count_for_*groups): Use
-       HARD_REG_SET instead of array to avoid bzero calls.
-       (reload_reg_used*): Likewise.
+       * cse.c (cse_insn): When changing (set (pc) (reg)) to
+       (set (pc) (label_ref)), verify the change creates a valid insn.
 
-       * emit-rtl.c (gen_rtx, init_emit_once): Pre-compute CONST_INTs
-       from -64 to 64 to save space.
+       * fr30.c (call_operand): Tighten and rework to match rules for
+       call RTL expressions.
+       * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
+       * fr30.md (call patterns): Improve constraints.
 
-Sat Mar         9 14:28:37 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
 
-       * reload1.c (choose_reload_regs): Fix typo in last change.
+       * fr30.c (fr30_expand_epilogue): Revert last change.
+       Use emit_jump_insn for the return insn.
 
-Sat Mar         9 01:03:01 1991  Michael Tiemann  (tiemann at cygnus.com)
+Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
+                         Stan Cox  <scox@cygnus.com>
 
-       * cplus-decl.c (pushtag): Don't call `pushdecl' for nested type if
-       the type is already defined.
+       * predict.c: New file. Preliminary infrastructure work for static
+       branch prediction and basic block reordering.
+       * basic-block.h: Add prototype for estimate_probability.
+       * Makefile.in: Add rules for predict.o.
 
-Fri Mar         8 17:24:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
 
-       * ns32k.md, vax.md (right shift patterns): When generating a right
-       shift, use xSHIFTRT but use (neg x) as the shift count to
-       more accurately represent what is supported by the machine.
+       * fixincludes (va_list): Use __not_va_list__ for the dummy.
+       * fixinc/*: Likewise.
 
-       * expmed.c (emit_store_flag): Can't narrow result of scc insn before
-       normalizing.
+2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Fri Mar         8 12:56:41 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * cccp.c: PROTO -> PARAMS.
+       * cexp.y: Likewise.
+       * collect2.c: Likewise.
+       * combine.c: Likewise.
+       * convert.h: Likewise.
+       * cse.c: Likewise.
+       * dbxout.c: Likewise.
+       * dbxout.h: Likewise.
+       * diagnostic.c: Likewise.
+       * doprint.c: Likewise.
+       * dwarf2out.c: Likewise.
+       * dwarf2out.h: Likewise.
+       * dwarfout.c: Likewise.
+       * dwarfout.h: Likewise.
+       * dyn-string.h: Likewise.
 
-       * cplus-class.c (pushclass): Set CURRENT_FUNCTION_DECL to
-       appropriate value so that pushtag does the right thing for tags
-       pushed into scope.
+2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Fri Mar         8 02:47:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
+       macro conditionals guarding use.
 
-       * gcc.c (delete_temp_files): Delete only ordinary files.
+       * dwarf2out.c: Include "tm_p.h".
 
-       * tree.c, cplus-tree.c (TYPE_HASH): 777777 was supposed to be octal.
+       * function.c (locate_and_pad_parm): Mark parameter with
+       ATTRIBUTE_UNUSED.
+       (expand_function_end): Likewise for variable `context'.
 
-       * reload1.c (choose_reload_regs): Properly ensure EQUIV
-       is free and of the desired class.
-       When a reload may be a group, mark all its regs in use.
+       * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
 
-       * reload.c (push_reload): Don't call reg_overlap_mentioned_p
-       unless IN is a REG or MEM.
+2000-01-13  Nick Clifton  <nickc@cygnus.com>
 
-       * c-common.c, cplus-search.c, cplus-class.c (NULL):
-       Undef before defining.
+       * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
+       register to prevent compile time warnings.
 
-       * sdbout.c (sdbout_one_type): Don't temporarily clear KNOWN_TYPE_TAG.
+2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
 
-Thu Mar         7 10:53:32 1991  Tom Wood  (wood at dg-rtp.dg.com
+       * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
+       to avoid -Wtraditional warning.
 
-       * toplev.c (main): Add -dp: annotate the assembly with a comment
-       describing the pattern and alternative used.  Also, make -dm work
-       for USG systems.
-       * genoutput.c (output_epilogue): Output the array `insn_name'.
-       * final.c (debug_insn, final_scan_insn): Record the value of the
-       last insn processed by final_scan_insn.
-       (output_asm_insn): Annotate the assembly output.
-       (ASM_COMMENT_START): Provide a default value.
-       * tm-att386.h, tm-bsd386.h, tm-sun386.h (ASM_COMMENT_START):
-       Specify "/".
+2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Thu Mar         7 06:15:04 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * 1750a-protos.h: New file.
 
-       * cplus-class.c (propagate_basetype_offsets): Check ASSOC_TYPE in
-       addition to return value from assoc value before aborting.   ???
-       should figure out why assocs are not shared.
+       * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-Wed Mar         6 16:29:37 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
+       warnings.
 
-       * c-decl.c (NULL): Undef before defining.
+       * 1750a.md: Likewise.
 
-       * cccp.c (do_include): Allocate file name permanently.
+2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Wed Mar         6 09:06:39 1991  Tom Wood  (wood at dg-rtp.dg.com)
+       * a29k-protos.h: New file.
 
-       * m88k.md (and/ashift): Added for the new combine.c (ashift/and
-       works with the previous version).
-       (bcnd insns): Use bcnd to test for sign and zero.
-       (muldf3, divdf3): Use new method to deal with a power of two.
-       (andsi3, iorsi3, xorsi3): Split into two insns for some constants.
-       (call, call_value): Deal properly with a CONST_INT address.
-       * out-m88k.c (call_address_operand): Don't allow CONST_INT.
-       (uses_arg_area_p): New function for -moptimize-arg-area.
-       * tm-m88k.h (TARGET_SWITCHES): Delete -mpic in favor of -fpic.
-       Add -moptimize-arg-area and -mno-optimize-arg-area.
+       * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-Wed Mar         6 00:07:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
+       warnings.
 
-       * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Takes input and output args.
-       * integrate.c (copy_for_inline, copy_rtx_and_substitute):
-       (restore_constants): Calls changed.
+2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Tue Mar         5 23:06:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * clipper-protos.h: New file.
 
-       * stmt.c (fixup_gotos): Handle jumping to end of rtl.
+       * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * c-decl.c (store_parm_decls): If -traditional,
-       allow unsigned int in prototype in place of int.
+       * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
+       warnings.
 
-       * cplus-cadillac.c: Delete all but the stubs.
+Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-Tue Mar         5 16:59:18 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
 
-       * jump.c (jump_optimize): Handle case of only NOTE insns after
-       NOTE_INSN_LOOP_BEG.
-       (duplicate_loop_exit_test): Return 0 when we hit a block
-       start or end, rather than quitting loop and getting confused.
+2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
 
-       * integrate.c (subst_constants): Correctly move constants to
-       second operand of commutative operations.
+       * configure.in (--enable-new-gxx-abi): New option.
+       * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
+       * Makefile.in (GXX_ABI_FLAG): New variable.
+       * configure: Regenerate.
 
-       * jump.c (comparison_code_p): Deleted.
-       * combine.c (subst): Use GET_RTX_CLASS instead of comparison_code_p.
-       * cse.c (find_comparison_args): Likewise.
-       * recog.c (comparison_operator): Likewise.
-       * loop.c (get_condition): Likewise.
+2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Tue Mar         5 14:21:57 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
+       * tm.texi (FORCE_STRUCT_BLK): Document.
+       * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
 
-       * cse.c (fold_rtx): When checking for constant pool addresses,
-       handle addresses constructed from LO_SUM.
+Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
 
-       * recog.c (constrain_operands): If before reload, `m' and `o'
-       accept all that could be reloaded to fit those constraints.
+       * config/ns32k/ns32k.md: Revert Jan 9 change.
 
-       * reload1.c (gen_input_reload): Return the first insn emitted by
-       this function, instead of the last insn emitted.
+       * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
+       to a mode-test, if the predicate is address_operand.
 
-       * stmt.c (expand_end_loop): When move exit test to loop bottom,
-       also move a preceeding NOTE_INSN_LOOP_CONT note if it exists.
+Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * gcc.c (process_command): Check for running out of args after option.
+       * combine.c (if_then_else_cond): Be careful about what kinds
+       of RTL expressions are passed to operand_subword.
 
-       * out-mips.c, out-romp.c: Test BYTES_BIG_ENDIAN with #if.
-       * tm-i860.h (*_BIG_ENDIAN): Define as 0.
-       * tm-mips-news.h (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Deleted.
-       (DECSTATION): Deleted.
+       * flow.c (split_edge): If we have to insert a new jump, make
+       sure to associate it with a basic block.
 
-       * tm-mips.h: Test WORDS_BIG_ENDIAN with #if.
+       * flow.c (commit_one_edge_insertion): A block with one successor
+       can end in a JUMP_INSN that is not a simplejump.
 
-       * tm-mips.h, tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P):
-       Use CONST_DOUBLE_LOW and CONST_DOUBLE_HIGH.
+2000-01-12  Robert Lipe  <robertl@sco.com>
 
-       * real.h: dconst0, dconst1, dconstm1 are declared twice.
-       Eliminate the second redundant declaration.
+       * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
+       (BUILD_VA_LIST_TYPE): Define.
+       (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
+       with crtstuff.c.
 
-       * cse.c (FIXED_REGNO_P): Exclude OVERLAPPING_REGNO_P registers.
+2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
 
-       * cccp.c (path_include): Handle empty names in path.
+       * cccp.c (do_pragma): Add cast to (char *).
 
-       * final.c: Use gvarargs.h, not varargs.h
+2000-01-12  Richard Henderson  <rth@cygnus.com>
+           Fred Fish  <fnf@be.com>
+           Jason Merrill  <jason@cygnus.com>
 
-       * configure (i860, i860-bsd): Handle +gas.
-       * tm-i860g.h, tm-i860bsdg.h: New files.
+       * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
+       * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
+       * i386/beos-elf.h, i386/beos-pe.h: New files.
 
-Mon Mar         4 22:41:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
+       * cross-make (SYSTEM_HEADER_DIR): Define using
+       CROSS_SYSTEM_HEADER_DIR.
 
-       * cse.c (simplify_unary_operation): When making a real const, use MODE.
+       * gcc.c (LIBRARY_PATH_ENV): Provide default.
+       (process_command): Use it.
+       (main): Likewise.  Kill trailing = from env vars.
+       (build_search_list): Put it back.
+       * collect2.c (main): Use LIBRARY_PATH_ENV.
 
-Mon Mar         4 21:35:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * configure.in (GCC_NEED_DECLARATIONS): Add environ.
+       * toplev.c: Use NEED_DECLARATION_ENVIRON.
 
-       * cse.c (cse_end_of_basic_block): Correctly handle case where
-       we find a "new" branch to follow.
-       (cse_end_of_basic_block, cse_main, cse_basic_block): PATH_SIZE
-       is now actual size, not size - 1.
+       * tm.texi (Frame Layout): Document SMALL_STACK.
+       * c-common.c (c_common_nodes_and_builtins): Check it.
 
-Mon Mar         4 06:44:27 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * system.h: Undef alloca after including glibc's <stdlib.h>,
+       if USE_C_ALLOCA is defined.
 
-       * cplus-decl.c (poplevel): Change test for whether to clobber the
-       DECL_CONTEXT of local variables.  Now we won't clobber context for
-       any nested types.
+       * gcc.c (set_input): New fn.
+       (main): After all input files are compiled, reset the input file
+       info to the first.
 
-Mon Mar         4 00:39:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * aclocal.m4 (rindex, index): If already defined, don't attempt
+       to redefine.
 
-       * jump.c (jump_optimize): When deleting x=y after y=x,
-       don't delete more than one death note, and don't delete any
-       unless we really do delete x=y.
+       * ginclude/varargs.h: (__va_list__): Define ifndef.
+       * ginclude/stdarg.h: Likewise.
 
-       * cccp.c (main): Support -lang-objc++.
-       Eliminate compilation parameter CPLUSPLUS.
+       * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
+       instead of unsigned char.
 
-       * cccp.c (main): Handle leading or trailing space in `predefs'.
+       * hash.h (true, false, boolean): Undef before enum.
 
-       * fixincludes: Fix typos handling size_t and ptrdiff_t.
+       * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
+       proper type of "HOST_WIDE_INT *", rather than their natural type of
+       "unsigned HOST_WIDE_INT *".
 
-Sun Mar         3 16:41:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * cccp.c (main): Handle multiple spaces, and tabs, in `predefs'.
-       * gcc.c (do_spec_1):  Allow extra whitespace in CPP_PREDEFINES.
-       Also transform -Dfoo=bar into -D__foo__=bar correctly.
+       * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
 
-       * varasm.c (assemble_zeros): Use ASM_BYTE if defined.
+       * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
 
-       * reload1.c (reload): Only special-case a spill reg alone in a class
-       if there is non-group need for that class.  Be careful not to count
-       a reg in the usual place if it was counted in the special case.
+       * regclass.c (choose_hard_reg_mode): Likewise.
 
-       * reload1.c (order_regs_for_reload): Make fixed regs and
-       eliminable regs twice as bad as explicitly mentioned regs.
+       * reload.c (find_valid_class, strict_memory_address_p): Likewise.
 
-       * reload1.c (choose_reload_regs): Fix typos in last change.
+       * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
 
-       * c-decl.c (init_decl_processing):
-       Return type of memcpy varies if -traditional.
-       (ptr_ftype_ptr_cptr_sizet): Global var deleted.
+2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * reload1.c (emit_reload_insns): When updating reg_reloaded_contents,
-       first always clear, then maybe store nonzero value.
+       * c-common.c: PROTO -> PARAMS.
+       * c-common.h: Likewise.
+       * c-decl.c: Likewise.
+       * c-iterate.c: Likewise.
+       * c-lang.c: Likewise.
+       * c-lex.c: Likewise.
+       * c-lex.h: Likewise.
+       * c-parse.in: Likewise.
+       * c-pragma.c: Likewise.
+       * c-pragma.h: Likewise.
+       * c-tree.h: Likewise.
+       * c-typeck.c: Likewise.
+       * objc/objc-act.c: Likewise.
+       * objc/objc-act.h: Likewise.
 
-Sun Mar         3 16:12:17 1991  Ken Raeburn  (raeburn at watch.com)
+2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * cplus-template.c (mangle_class_name_for_template): Add two
-       leading underscores, to avoid conflicts with programmer's names.
+       * m88k-protos.h: New file.
 
-       * cplus-tree.h (struct lang_identifier): New field `template'
-       points to template info from which this identifier was
-       constructed.
+       * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * cplus-template.c (current_template_expansion,
-       current_template_name): Variables deleted.
+       * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
 
-       * cplus-template.c (lookup_template_class): Top half of old
-       instantiate_template; returns the id_node.
-       (instantiate_template): Takes the id_node as argument now.
-       * cplus-parse.y (template rules): Use separate rule for checking
-       whether expansion is required.  For base classes, always try it;
-       else do it only if `{' is not next token.
-       (template_type_name): New nonterminal for template class name
-       without expansion.
-       (template_type): Includes expansion, if needed.
+       * m88k.md: Likewise.
 
-       * cplus-input.c (input_from_saved_text): Deleted.
-       * cplus-template.c (instantiate_template): Call feed_input directly.
+       * tekXD88.h: Likewise.
 
-       * cplus-parse.y (base_class_visibility_list): Now type <itype>,
-       cast to tree in base_class action.
+2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Sun Mar         3 07:46:55 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * m68k-protos.h: New file.
 
-       * expr.c (do_store_flag): Consider A & single-bit as cheap.
+       * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * fold-const.c (operand_equal_p): If ARG0 and ARG1 are the same
-       SAVE_EXPR, they are equal.
+       * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
 
-       * function.c (fixup_var_refs_1): Move mispositioned code in
-       (set (zero_extract ...) ...) case; fix incorrect indentation.
+       * mot3300.h: Likewise.
 
-Sun Mar         3 01:11:46 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-12  Richard Earnshaw <rearnsha@arm.com>
 
-       * cccp.c (include_defaults, cplusplus_include_defaults):
-       Use STANDARD_INCLUDE_DIR.
-       (STANDARD_INCLUDE_DIR): Define by default as /use/include.
-       * tm-mips.h (STANDARD_INCLUDE_DIR): Define, if MIPS_BSD43.
-       (CPP_SPEC): Don't do -I to handle -ZSYSV, -ZBSD43.
+       * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
+       extract_bitlst.
+       (extract_bitlist): Declare bitlen.
 
-Sat Mar         2 17:20:57 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
 
-       * expr.c (expand_expr, case COND_EXPR): Remove unneeded calls to
-       safe_from_p in A ? A : FOO cases.
+       * cccp.c: Accept and ignore -lang-fortran.
 
-Sat Mar         2 16:14:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
+       qualifiers don't match at any level of pointerness.
 
-       * reload1.c (choose_reload_regs): Support subreg as reload_override_in.
-       Likewise reload_reg_rtx.  Just don't use REGNO on them.
-       (emit_reload_insns): Handle subreg as OLDEQUIV.
+2000-01-12  Robert Lipe  <robertl@sco.com>
 
-       * reload1.c (delete_output_reload): Pass the output reload insn,
-       not a spill reg index.  Call in emit_reload_insns changed.
-       (emit_reload_insns): Don't actually update spill_reg_store
-       till after all reload insns have been made.
+       * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
 
-       * reload.c (push_reload): If existing reload has a reload reg,
-       make sure it fits the class of this reload.
+2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * stmt.c (fixup_gotos): Fix typo in last change.
+       * reload1.c (reload_reg_unavailable): New static variable.
+       (reload_reg_free_p): Test it.
+       (reload_reg_free_for_value_p): Test it instead of
+       reload_reg_used.
+       (choose_reload_regs_init): Compute it.
 
-       * reload1.c (choose_reload_regs): Don't use equiv reg
-       that is clobbered in this insn.
+Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
 
-Sat Mar         2 12:19:19 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * reorg.c (fill_slots_from_thread): Check modified_in_p
+       before replacing.
 
-       * cplus-dem.c (optable): Add op for `operator,'.
+Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
 
-       * toplev.c (main): Clear WARN_INLINE if FLAG_NO_INLINE is nonzero.
+       * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
+       these nodes even if INTERNALS is not set.
 
-       * cplus-typeck.c (c_expand_return): Perform conversion to reference
-       in time that we can warn about the return of more non-lvalues.
-       Also, fix what appeared to be bugs in the code dealing with
-       WHATS_RETURNED.
+Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
 
-Sat Mar         2 00:11:18 1991  Ken Raeburn  (raeburn at watch.com)
+       * gcse.c (delete_null_pointer_checks_1): Cope when
+       get_condition cannot determine the condition.
 
-       * cplus-parse.y (base_class): Base class may be a template class.
-       Split off non-visibility portion into base_class.1.
+2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
 
-       * cplus-parse.y: Replaced PUBLIC, PRIVATE, PROTECTED with a single
-       terminal VISSPEC, with <itype> value, to simplify parser slightly.
-       * cplus-parse.h (enum rid): Added values for VISSPEC terminal.
-       * cplus-lex.c (is_reserved_word): Changed token types to VISSPEC,
-       rid values as appropriate.
-       (yylex): For VISSPEC, set itype value rather than ttype.
+       * toplev.h (set_message_length): Declare.
 
-Fri Mar         1 21:50:23 1991  Ken Raeburn  (raeburn at watch.com)
+       * diagnostic.c (obstack_chunk_alloc): Define macro.
+       (obstack_chunk_free): Likewise.
+       (struct output_buffer): New data structure.
+       (vmessage): Remove.
+       (output_maximum_width): New variable.
+       (doing_line_wrapping, set_message_length, init_output_buffer,
+       get_output_prefix, output_space_left, emit_output_prefix,
+       output_newline, output_append, output_puts, dump_output,
+       vbuild_message_string, build_message_string, build_location_prefix,
+       voutput_notice, output_printf, line_wrapper_printf,
+       vline_wrapper_message_with_location):  New functions. Implement
+       automatic line wrapping.
+       (v_message_with_decl): Make it handle automatic line wrapping.
+       (v_error_with_file_and_line): Likewise.
+       (v_warning_with_file_and_line): Likewise.
+       (announce_function): Likewise.
+       (default_print_error_function): Likewise.
 
-       * cplus-parse.y (.set_base_init): Discarded `preserve' code, which
-       was doing nothing.
+2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
 
-Fri Mar         1 19:01:25 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * cpplib.h (struct cpp_options): Change lang_asm to char.
+       Add lang_fortran.
+       * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
+       done in cpp_handle_option now.
+       (initialize_builtins): Take out special case code used only by
+       __STDC_VERSION__.
+       (cpp_handle_option): Turn off trigraphs and trigraph warnings
+       if -traditional.  Recognize -lang-fortran and set
+       lang_fortran, also turn off cplusplus_comments.
+       (print_help): Document -lang-fortran.
+       * cpplib.c (handle_directive): Ignore `# 123 "file"' if
+       lang_asm. Ignore all directives other than `# 123 "file"' if
+       CPP_PREPROCESSED.
+       (cpp_get_token): If -traditional, don't recognize directives
+       unless the # is in column 1.
+       (parse_string): If lang_fortran or lang_asm, silently
+       terminate strings ('' or "") at end of line.
+       Remove unnecessary braces.
 
-       * reorg.c (redundant_insn_p): Rename second arg to TARGET.
-       Handle the case where TARGET is a SEQUENCE.
-       (mark_target_live_regs): Don't get confused by registers conditionally
-       set in a JUMP_INSN when looking for regs set before used.
+2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+           Richard Henderson  <rth@cygnus.com>
 
-Thu Feb 28 17:25:59 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * resource.c (mark_referenced_resources): Mark a set strict_low_part
+       as used.
+       * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
+       strict_low_part when possible.
 
-       * loop.c (check_dbra_loop): Replace code that thinks it knows
-       exactly what the RTL looks like (and gets it wrong) with call
-       to get_condition_for_loop.
+2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Thu Feb 28 16:35:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * alias.c: PROTO -> PARAMS.
+       * basic-block.h: Likewise.
+       * bitmap.c: Likewise.
+       * bitmap.h: Likewise.
+       * builtins.c: Likewise.
+       * c-aux-info.c: Likewise.
+       * caller-save.c: Likewise.
+       * calls.c: Likewise.
 
-       * c-typeck.c (build_compound_expr): Convert array to pointer.
+2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Wed Feb 27 15:46:54 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * Makefile.in (toplev.o): Depend on regs.h.
 
-       * gnulib1.c (FLOAT_ARG_TYPE, FLOATIFY): New macros.
-       (__*sf*): Use them for `float' args.
+       * output.h (tdesc_section): Prototype.
 
-       * stmt.c (expand_end_case):
-       Test value of HAVE_casesi and HAVE_tablejump at runtime.
+       * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
 
-       * stmt.c (fixup_gotos): Check that jump into bindings
-       really comes from before the start of the bindings.
-       Use TREE_REGDECL to indicate error message printed.
+       * sdbout.c: Include "tm_p.h".
+
+       * toplev.c: Include "regs.h".
+
+Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
+
+       * unroll.c (unroll_loop): Add EH support.
+
+2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * pa-protos.h: New file.
+
+       * pa.c: Include recog.h and tm_p.h.
+       (compute_zdepwi_operands, compute_movstrsi_length,
+       remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
+       find_addr_reg, import_milli): Add static prototypes.
+       (pa_cpu_string, pa_arch_string): Constify a char*.
+       (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
+       (read_only_operand): Add argument `mode'.
+       (singlemove_string, output_move_double, output_fp_move_double,
+       output_block_move, output_and, output_ior, output_ascii,
+       remove_useless_addtr_insns, milli_names, output_mul_insn,
+       output_div_insn, output_mod_insn, output_arg_descriptor,
+       output_cbranch, output_bb, output_bvb, output_dbra, ,
+       output_millicode_call, output_call, hppa_encode_label,
+       output_parallel_movb, output_parallel_addb): Constify a char*.
+       (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
+       (output_parallel_addb): Remove extra arg to `constrain_operands'
+
+       * pa.h:  Move all prototypes to pa-protos.h.
+       (pa_cpu_string, pa_arch_string): Constify a char*.
+       (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
+
+       * pa.md: Call `function_label_operand' with mode argument.
+       Likewise for `read_only_operand'.
+       Fix nesting of parens in call to `symbolic_operand'.
+
+2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * i860-protos.h: New file.
+
+       * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
+
+       * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
+
+       * i860.md: Likewise.
+
+Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
+
+       * i386.md (movstrsi expander): Rewrite.
+       (movstrsi_1 insn): Deleted.
+       (strmovhi, strmovqi expander): New expanders.
+       (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
+       * i386.c (x86_single_stringop): New global variable.
+       * i386.h (x86_single_stringop): Declare.
+       (TARGET_SINGLE_STRINGOP): New macro.
+
+2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
+       integer vararg POSTINCREMENT before the destination of the jump
+       for the hard fp case.
+       (function_arg_pass_by_reference): Pass a copy of CUM to
+       FUNCTION_ARG.
 
-Wed Feb 27 15:01:51 1991  Ken Raeburn  (raeburn at watch.com)
+       * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
+       for CONSTANT_ADDRESS_P above while loop for subreg.
 
-       * cplus-template.c (end_template_decl): Store correct name in new
-       decl.  Use pushdecl, not pushtag.
-       (instantiate_template): Use identifier's global value, not its
-       type.  Pass back both template and new class in token value.
-       * cplus-lex.c (identifier_type): Templates now have type
-       TEMPLATE_DECL, not TYPE_DECL wrapped around a TEMPLATE_DECL.
+2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
 
-Wed Feb 27 06:27:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * flow.c (propagate_block): When a prologue/epilogue insn
+       is marked dead, unconditionally clear libcall_is_dead and
+       insn_is_dead, and only dump rtl if warnings aren't being
+       suppressed.
 
-       * loop.c (replace_regs): Don't make nested SUBREGs.
+Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
 
-       * reload.c (push_reload): SUBREG_LOC applies only to INLOC, not OUTLOC.
+       * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
+       * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
+       (FIXED_REGISTERS): Set dirflag as fixed.
+       (CALL_USED_REGISTERS): Set dirflag as used.
+       (REG_ALLOC_ORDER): Set dirflag as last one.
+       (DIRFLAG_REG): New macro.
+       (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
+       (HI_REGISTER_NAMES): Add dirflag.
+       (DEBUF_PRINT_REG): Handle dirflag.
+       * i386.md (type attribute): New cld and str types.
+       (length_opcode attribute): Set cld and str to 1.
+       (memory attribute): Set str to unknown - it is not clear from the
+       patterns.
+       (pent_np function unit): Prefixed string operations takes 12 cycles
+       minimally; cld takes 2 cycles.
+       (ppro_uops attribute): Str is "many" and cld is "few".
+       (ppro_p0 unit): Handle cld here.
+       (k6_alux unit): Handle cld and str types.
+       (k6_load unit): It is ocupied by str opcodes.
+       (k6_store unit): It is ocupied by str opcodes.
+       (athlon_decode): Str is vector decoded.
+       (athlon_ieu): Handle str and cld.
+       (cld pattern): New.
+       (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
+       (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
+       cmpstrsi_nz_1 insn): Do not output cld instruction
 
-       * cse.c (simplify_binary_operation): Simplify A&A, A|A, and A^A.
+Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
 
-       * reload.c (find_reloads_address_1): Correctly handle (post_inc (mem)).
+       * gcc.texi (G++ and GCC): Add Java and Chill.
+       (Bug Critera): Don't list languages.
 
-Tue Feb 26 21:49:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * gcc.texi (Incompatibilities): No longer claim most C compilers
+       are K&R.
 
-       * expmed.c (store_bit_field, extract_bit_field):  Calls to
-       get_best_mode were passing alignment in bytes rather than
-       alignment in bits.
+       * gcc.texi (G++ and GCC): Update other front-ends list.
 
-       * flags.h (flag_pedantic_errors): Declare it.
+Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * c-tree.h (C_TYPEDEF_EXPLICITLY_SIGNED): New flag.
-       * c-decl.c (grokdeclarator): Record that flag in new typedefs.
-       Check it when determining signedness of bitfields.
+       * i386.c (ix86_expand_setcc): Fix typo.
+       (ix86_expand_movcc): Similarly.
 
-       * expr.c (expand_expr): In A ? A : B, make output safe from A and B.
+       * Band-aid until haifa's bitset implementation is nuked.
+       * haifa-sched.c (extract_bitlst): New parameter for size of the
+       bitset in bits.  All callers changed.  Avoid looking at undefined
+       bits in the bitset.
+       (edgeset_bitsize): New variable.
+       (schedule_region): Initialize edgeset_bitsize.
 
-       * reload.c (find_reloads_address, find_reloads_address_1):
-       Reload any reg that appears in a clobber in the same insn.
-       (regno_clobbered_p): New function.
+2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-Tue Feb 26 21:41:43 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * Makefile.in (optabs.o): Depend on real.h
+       (resource.o): Depend on insn-attr.h
 
-       * expr.c (expand_expr): Add missing arg to exapnd_exit_loop in
-       EXIT_EXPR case.
+       * builtins.c (result_vector): Wrap prototype in macro conditions
+       governing definition and use.
 
-Tue Feb 26 14:35:47 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * c-common.c: Include tm_p.h.
 
-       * c-decl.c (grokdeclarator): Check pedantic error last.
+       * c-lex.c: Likewise.
 
-       * tm-i386.h (STRUCT_VALUE, STRUCT_VALUE_INCOMING): Value is 0.
-       (RETURN_POPS_ARGS): Pop the structure return pointer here.
-       * out-i386.c (function_epilogue):
-       current_function_pops_args says how many args to pop.
+       * elfos.h: Constify a char*.
 
-       * tm-i386.h (CC_Z_IN_NOT_C): New cc flag.
-       * i386.md (je and jne patterns): Handle this flag.
-       (pattern using bt insns): Set the flag.
-       Output test insn instead if bit number is constant.
-       (insv): Changed constraint.
+       * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
+       (get_attr_length, shorten_branches, profile_after_prologue): Mark
+       parameter with ATTRIBUTE_UNUSED.
 
-       * tm-i386.h (enum reg_class): Define ABCI_REGS.
-       (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Support ABCI_REGS.
-       Fix the contents for ABC_REGS.
-       (REG_CLASS_FROM_LETTER): Define `x' for ABCI_REGS.
-       * i386.md (divsi3, udivsi3): Use `xm' for operand 2 constraint.
-       (divhi3, udivhi3, divmod*, udivmod*): Likewise.
+       * fold-const.c (exact_real_inverse): Wrap variable `i' in
+       CHECK_FLOAT_VALUE.
 
-       * cccp.c (pedwarn): Declare as void.
+       * haifa-sched.c (schedule_insns): Mark parameter with
+       ATTRIBUTE_UNUSED.
 
-Tue Feb 26 06:41:34 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * optabs.c: Include real.h.
 
-       * tree.h (IDENTIFIER_VIRTUAL_P): New macro for IDENTIFIER_NODE.
-       Nonzero means that this identifier is used by a function declared
-       virtual.
-       * cplus-decl.c (grokfndecl): Set IDENTIFIER_VIRTUAL_P instead of
-       DECL_VIRTUAL_P.
-       * cplus-search.c (get_first_matching_virtual): Test
-       IDENTIFIER_VIRTUAL_P instead of DECL_VIRTUAL_P.
+       * real.h (ereal_atof): Add prototype arguments.
 
-       * cplus-decl.c (pushtag): Handle classes which are nested in
-       function scope (as opposed to class scope).
-       (lookup_nested_type): Ditto.
-       * cplus-method.c (build_overload_nested_name): Ditto.
+       * resource.c: Include insn-attr.h.
 
-       * cplus-decl.c (grokdeclarator): Only globalize non-nested classes
-       declared in class scope (i.e., don't globalize in function scope).
+       * sdbout.c (sdbout_queue_anonymous_type,
+       sdbout_dequeue_anonymous_types): Wrap in macro
+       SDB_ALLOW_FORWARD_REFERENCES.
+       (sdbout_init, sdbout_start_new_source_file): Mark parameter with
+       ATTRIBUTE_UNUSED.
 
-Tue Feb 26 06:11:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
 
-       * a29k.md (storem): Fix typo in operand number.
+       * stupid.c: Include tm_p.h.
 
-       * expr.c (do_store_flag): Add missing cast required for some compilers.
+       * tree.c (real_value_from_int_cst): Mark parameter with
+       ATTRIBUTE_UNUSED.
 
-       * tm-a29k.h (REG_CLASS_*, REGNO_REG_CLASS): Add new class Q_REGS
-       and constraint letter `q' for the Q register.  Requested by tege.
+2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * tm-a29k.h (PRINT_OPERAND_ADDRESS): Allow short constant as address.
+       * i960-protos.h: New file.
 
-Mon Feb 25 20:46:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
+       time warnings.
 
-       * expr.c (expand_expr): In handling A : A ? FOO, use safe_from_p
-       against FOO.  Fix many incorrect operand refs in A : FOO ? A.
+       * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
 
-       * sdbout.c (plain_type_1): Record type name only if using forward refs.
+2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
 
-       * reload.c (find_reloads): Mark those RELOAD_OTHER reloads
-       that are used for output addresses, for choose_reload_regs.
+       * combine.c (expand_field_assignment): Do not discard SUBREGs
+       while computing nonzero_bits.
 
-       * integrate.c (copy_rtx_and_substitute):
-       Copy REG_USERVAR_P from original regs to new regs.
+2000-01-09  Nick Clifton  <nickc@cygnus.com>
 
-       * c-typeck.c (digest_init): Handle STRING_CST before same-type case.
+       * config/arm/arm.c: Fix compile time warnings about signed vs
+       unsigned constants.
+       * config/arm/arm.h: Fix compile time warnings about signed vs
+       unsigned constants.
 
-Mon Feb 25 13:31:51 1991  Michael Tiemann  (tiemann at cygnus.com)
+2000-01-09  Philip Blundell  <philb@gnu.org>
 
-       * cplus-decl.c (grokdeclarator): Handle the identification of
-       constructors declared in nested scope.
+       * config/arm/arm.c (output_return_instruction): Use `ldr' rather
+       than `ldm' with only one register.
+       * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
+       only one register.
 
-Mon Feb 25 06:27:28 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
+       clobbered.
 
-       * reorg.c (next_insn_no_annul): New function.
-       (mark_set_resources, mark_target_live_regs): Don't count insns from
-       the target of a branch if the branch is annulling.
+Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
 
-       * expmed.c (emit_store_flag): Get new register for target if
-       preserve_subexpressions_p returns nonzero.
-       Convert to desired mode, then normalize, instead of doing it
-       the other way around; this allows better combining.
+       * config/ns32k/ns32k.md (load or push effective address): Operand 1
+       must have SImode.
 
-Sun Feb 24 20:07:02 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * cse.c (find_comparison_args): Fix indentation and misplaced paren.
+       * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
+       assignment used as truth value.
 
-       * Makefile.in (install-headers): Remove extraneous parens from
-       uses of shelllibsubdir.
+       * function.c (assign_temp): Mark parameter `dont_promote' with
+       ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
+       PROMOTE_FOR_CALL_ONLY.
 
-Sun Feb 24 15:49:42 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * genrecog.c (write_subroutine): Mark variable `operands' with
+       ATTRIBUTE_UNUSED.
 
-       * loop.c (check_dbra_loop): Win if loop biv is used only for counting.
+       * optabs.c (prepare_cmp_insn): Mark parameter `align' with
+       ATTRIBUTE_UNUSED.
 
-       * cccp.c (struct definition): Record file and line.
-       (create_definition): Store that information.
-       (do_define): Identify location of previous definition.
-       (pedwarn_with_file_and_line): New function.
+       * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
+       (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
 
-Sat Feb 23 13:36:13 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * toplev.c (note_deferral_of_defined_inline_function): Likewise
+       for `decl'.
 
-       * c-decl.c (grokdeclarator): Error for `signed void', etc.
-       Warning for `signed my_int', and only if pedantic.
+2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * toplev.c (warn_cast_align): New flag, with -W option.
-       * c-typeck.c (build_c_cast): Warn if target alignment increases.
+       * config/c4x.h: Tidy up comments.
+       * config/c4x.c: Likewise.
 
-Sat Feb 23 10:22:03 1991  Michael Tiemann  (tiemann at cygnus.com)
+Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
 
-       * cplus-type2.c (store_init_value): Global variables must be
-       specially initialized in PIC under SunOS.
+       * fold-const.c (lshift_double, rshift_double): Handle
+       shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
 
-       * cplus-dbxout.c (dbxout_tags): Test that the tag's value has not
-       been cleared before trying to use it as a type.  This happens when a
-       class starts out looking like a nested class, but turns out to be a
-       reference to an implicitly defined global class.
+2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
 
-Sat Feb 23 06:16:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * toplev.c (rest_of_compilation): Initialize cse_not_expected as
+       in prepare_function_start().
 
-       * jump.c (true_regnum): If given a pseudo not assigned a hard reg,
-       return the pseudo register number.
+Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
 
-       * out-rs6000.c (update_cc): Remove CC_REVERSE and CC_NONNEG.
-       * rs6000.md (define_attr "cc"): Remove reverse.
-       (cmpsi): Only allow second arg to be a constant.
-       Remove some unneeded comparison patterns.
+       * config/v850/v850.c (expand_epilogue): Interrupt functions no
+       longer allocate extra stack for function calls.
 
-       * rs6000.md (misc logical patterns): Only add CLOBBER for MQ
-       when we really clobber it; we used to do so in more cases to
-       work around a since-fixed restriction in combine.c
+2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * rs6000.md (extend*): Use DEFINE_EXPAND instead of a pattern
-       that generates two insns.  Remove (sign_extend (ashift ..) ...)
-       and similar patterns; no longer neeed.
+       * config/c4x/c4x.md (*subqf3_set): Fix typo.
 
-       * rs6000.md (fma instruction): Add missing single-precision case.
+2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * out-rs6000.c (print_operand, case 's' and 'S'): Truncate to low-order
-       5 bits.
+       * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
 
-       * out-rs6000.c (output_prolog, output_epilog): Correct code to handle
-       large stack frames; used 65535 instead of 32767 and had a typo.
+2000-01-07  David Edelsohn  <edelsohn@gnu.org>
 
-       * tm-romp.h (CC_IN_NOT_TB): Deleted.
-       * out-romp.c (update_cc): No longer need CC_REVERSE, CC_NONNEG, or
-       CC_NOTTBIT.
-       (print_operand): Remove use of CC_IN_NOT_TB.
-       * romp.md (define_attr "cc"): Remove reverse,nonneg, and nottbit.
-       (mttbi): Remove redundant pattern.
-       (cmpsi): First arg can only be register_operand.
-       Remove some unneeded COMPARE patterns.
-       
-       * romp.md (movhi): Use zero-extend, not sign-extend load.
+       * rs6000.c (processor_target_table): Add power3 as alias for 630.
+       * aix43.h: Revert Aug 2 change.
+       (HAS_INIT_SECTION): Define, not visible yet.
+       (LD_INIT_SWITCH): Define, not visible yet.
+       * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
 
-       * out-romp.c: (float_conversion): Allow CONST_INT as operand.
+       * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
 
-       * out-romp.c (first_reg_to_save): Ensure we save r14 if we use it.
+       * collect2.c (main): Expand ld2 size further.
+       (export_object_lst): Cast assignment to avoid warning.
+       (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
+       (scan_prog_file, COFF): Do not collect initialization or
+       finalization functions generated for entire shared object if
+       init/fini support present.
 
-       * a29k.md (divsf3): Fix typo in name; was divds3.
+2000-01-07  Nick Clifton  <nickc@cygnus.com>
 
-       * tm-a29k.h: Add new -mno-storem-bug and TARGET_NO_STOREM_BUG.
-       (TARGET_SWITCHES): -m29050 turns on -mno-storem-bug.
-       * a29k.md: (store_multiple_bug): New pattern to work around chip bug.
-       (store_multiple_no_bug): New name for original pattern.
-       (store_multiple): Choose depending on TARGET_NO_STOREM_BUG.
-       (storem patterns): Two cases, with and without bug.
+       * config/elfos.h: Tidy up formatting of marcos.  Make sure
+       that .section directives are always prefixed by a tab.
 
-       * a29k.md (extend*): Don't define single insn for sign_extend.
-       Instead, use DEFINE_EXPAND.  Delete DEFINE_SPLITs for the old patterns.
+       * config/svr4.h: Add #include "elfos.h" and remove duplicate
+       definitions.
 
-       * a29k.md (jumpfdec pattern): Fix typo.
+2000-01-07  Matt Austern  <austern@sgi.com>
 
-       * tm-a29k.h, tm-romp.h, tm-rs6000.h (CC1_SPEC): Remove optimization
-       selections.
-       (OPTIMIZATION_OPTIONS): Turn off insn scheduling by default until
-       it is fixed.
+       * fold-const.c (real_hex_to_f): Remove duplicate declaration of
+       expon.
 
-       * tm-a29k.h, tm-romp.h, tm-rs6000.h (SETUP_INCOMING_VARARGS):
-       Correctly handle the case of the special argument being other than
-       the first arg.
+Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * tm-a29k.h (GO_IF_LEGITIMATE_ADDRESS): A tiny constant (< 255)
-       is also a valid address.
+       * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
+       crtstuff.c.
+       (crtbegin.o, s-crtS): Likewise.
 
-       * tm-a29k.h, tm-romp.h, tm-rs6000.h (BYTE_LOADS_ZERO_EXTEND): Add to
-       support combine.c in development.
+2000-01-06  Richard Henderson  <rth@cygnus.com>
 
-       * jump.c (jump_optimize, can_reverse_comparison_p, delete_jump):
-       Consistently allow NOTEs between the set and use of CC0.
-       * reorg.c (delete_scheduled_jump): Likewise.
+       * alpha.md (adddi_2+1): Limit offset such that it will be
+       loadable with a single ldah+lda pair.
+       (adddi_2+2): Explicitly fail split if we can't make it work.
 
-       * expmed.c (emit_store_flag): Pass in UNSIGNEDP; can't derive it from
-       comparison code.
-       * expr.c (do_store_flag): Add UNSIGNEDP arg to emit_store_flag call.
-       * jump.c (jump_optimize): Likewise.
-       * optabs.c (expand_binop): Likewise.
+2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
 
-       * local-alloc.c (requires_inout_p): New function.
-       (block_alloc): Use high-priority preferences if we have a hard
-       register used in an insn that requires the same register for
-       input as for the output.
-       (combine_regs): Rename argument COPY to MAY_SAVE_COPY.
+       * protoize.c: Conditionally include unistd.h.
+       (IS_SAME_PATH_CHAR): New macro.
+       (IS_SAME_PATH): New macro.
+       (CPLUS_FILE_SUFFIX): New macro.
+       (cplus_suffix): New static variable.
+       (is_abspath): New static function.
+       (in_system_include_dir): Handle DOS style pathnames.
+       (file_could_be_converted): Likewise.
+       (file_normally_convertible): Likewise.
+       (directory_specified_p): Likewise.
+       (file_excluded_p): Likewise.
+       (abspath): Likewise.
+       (shortpath): Likewise.
+       (referenced_file_is_newer): Likewise.
+       (save_def_or_dec): Likewise.
+       (do_processing): Likewise.
+       (main): Likewise.
+       (edit_file): Likewise. Use rename instead of link.
+       (rename_c_file): Likewise. Don't rename syscalls file.
+       (munge_compile_params): Define null device for DOS based systems.
+       (process_aux_info_file): Use binary mode if appliable.
+       (edit_file): Likewise.
+       * invoke.texi (Running Protoize): Document C++ suffixes used.
 
-       * cse.c (simplify_binary_operation, case MULT): Convert multiply
-       by power of two to shift.
-       (cse_insn): Don't share rtx obtained from the hash table; copy it.
+       * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
+       IS_DIR_SEPARATOR macros.
+       * collect2.c: Likewise.
+       * cppinit.c: Likewise.
+       * dwarf2out.c: Likewise.
+       * gcc.c: Likewise.
+       * gcov.c: Likewise.
+       * prefix.c: Likewise.
+       * rtl.c: Likewise.
+       * toplev.c: Likewise.
+       * system.h: And move to here.
 
-Sat Feb 23 00:27:26 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * prefix.c (update_path): Fix typo in variable name.
 
-       * rtlanal.c (dead_or_set_p): Don't check for REG_INC.
+2000-01-06  Richard Henderson  <rth@cygnus.com>
 
-       * reload.c (push_reload): (subreg:m1 (reg:m2 ...) ...) with M1 wider
-       than M2 is also a paradoxical SUBREG.
+       * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
+       (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
+       (count_reg_sets_1, count_reg_references): Likewise.
+       (flow_loops_level_compute): Start counting actual loop depth at 1.
+       (flow_loops_find): Likewise.
+       * local-alloc.c (update_equiv_regs): Likewise.
+       * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
 
-Fri Feb 22 14:43:44 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
 
-       * reload1.c (possible_group_p): Add missing forward declaration.
+       * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
+       FIRST_PSEUDO_REGISTER
+       * dwarf2out.c: Don't include frame.h
+       * dwarfout.c: Likewise
+       * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
+       frame.h
 
-       * reload1.c (eliminate_regs, case PLUS): Ensure we handle the
-       case of (plus reg1 reg2) where REG1 is eliminable and REG2 is
-       psuedo that didn't get a hard reg and has reg_equiv_constant nonzero.
-       (choose_reload_regs): If reload_needed_for_multiple,
-       the reload can't be input-only or output-only.
-       (emit_reload_regs): Avoid regno_dead_p.
-       * combine.c (regno_dead_p): Function deleted.
+Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
 
-       * Makefile.in (maketest): Finish renaming config to configure.
+       * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
+       dead registers.
 
-       * gcc.c (lookup_compiler): Create a new entry to represent
-       the result of searching for an alias entry.
+       * i386.c (movsf splitter): Fix typo in my last checkin.
 
-       * reload.c (combine_reloads): Swap args to reg_overlap_mentioned_p.
+2000-01-05  Nick Clifton  <nickc@cygnus.com>
 
-Fri Feb 22 09:40:50 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
+       own definition of this macro.
+       (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
+       flag_data_sections or UNIQUE_SECTION_P are true.
 
-       * cplus-parse.y (base_class_list): Re-fix precedence so we can use MI.
+       * tm.texi (UNIQUE_SECTION): Document that it can be called for
+       uninitialized data decls.
 
-       * cplus-except.c (init_exception_processing): Push exception ctors
-       and dtors into scope so they can be inlined.
+       * config/i386/winnt.c (i386_pe_unique_section): Cope with
+       being called for uninitialized data.
 
-Fri Feb 22 08:03:47 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * config/i386/interix.c (i386_pe_unique_section): Cope with
+       being called for uninitialized data.
 
-       * genemit.c (output_init_mov_optab): New function.
-       (main): Have insn-emit.c include insn-codes.h.
-       Call output_init_mov_optab.
-       * optabs.c (gen_move_insn): Handle moving MODE_CC modes; we may have
-       to find a different mode to do this in.
-       (init_optabs): Try to initialize CCmode in mov_optab; if we have
-       EXTRA_CC_MODES, call init_mov_optab.
-       * Makefile.in (insn-emit.o): Now depends on insn-codes.h.
+       * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
+       for uninitialized data.
 
-       * rtl.h (get_last_insn_anywhere): Add missing declaration.
+       * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
+       for uninitialized data.
 
-       * stmt.c: Now includes hard-reg-set.h (for n_non_fixed_regs).
-       (preserve_subexpressions_p): Renamed from inside_loop.
-       Always return true if optimize >= 2; always return false if
-       optimize == 0.  If optimize == 1, only return true if we aren't
-       very far into a loop instead of whenever we are in any loop.
-       * Makefile.in (stmt.o): Now includes hard-reg-set.h.
-       * expr.c (expand_expr): Use preserve_subexpressions_p instead of
-       inside_loop.
-       Only set TARGET to SUBTARGET if TARGET isn't a pseudo register.
-       (expand_expr, case REAL_CST): Don't call force_reg; now done in
-       expand_binop, if required.
-       * optabs.c (expand_binop, expand_twoval_binop, emit_cmp_insn):
-       If arg is expensive constant and preserve_subexpressions_p is true,
-       force it into a register.
-       * out-sparc.c (emit_move_sequence): Call preserve_subexpressions_p
-       instead of inside_loop.
+       * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
+       for uninitialized data.
 
-       * reload1.c (eliminate_regs, case SUBREG): Correct test for paradoxical
-       SUBREG.
+       * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
+       (UNIQUE_SECTION_P): Always generate a unique section if
+       flag_data_sections is true.
+       (UNIQUE_SECTION): Also generate unique sections for
+       uninitialized data.
+       (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
+       named_section().
 
-       * varasm.c (output_constant_pool): If entry refers to a deleted label,
-       write a zero instead of the undefined label.
+2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Fri Feb 22 02:49:24 1991  Ken Raeburn  (raeburn at watch.com)
+       * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
+       SI, or DI.
 
-       * Reversed all changes dated 20 February.
-       * cplus-template.c (pending_template_expansion): New function;
-       given template name, returns class name of expansion in progress.
-       * cplus-parse.y (PTYPENAME -> typespec): Call it.
-       ('~' PTYPENAME -> notype_declarator): Ditto.
+2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-Thu Feb 21 15:17:13 1991  Craig Burley (burley at geech.ai.mit.edu)
+       * config/c4x/c4x.md (udivqi3, divqi3): Delete.
+       (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
+       (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
+       (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
+       (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
 
-       * c-common.c (check_case_value): If value is NULL_TREE, return it
-       without any further checking.
+       * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
 
-       * stmt.c (pushcase_range): If value1 is NULL_TREE, substitute
-       minimum value for the type, if value2 is NULL_TREE, substitute
-       maximum value for the type, from then on assume both are not NULL_TREE.
-       These changes appear to provide minimal support for case ranges.
+2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
 
-       * c-typeck.c (digest_init): For explicit array element initializer
-       case, change check against max value of domain so index may equal it.
-       For array element initialization, give next initializer a chance to
-       override the choice of next index before falling out of loop because
-       next index is out of range.  For structure initialization, give next
-       initializer a similar chance before falling out of loop because no
-       more fields exist.
+       * c-decl.c (finish_enum): Simplify code to determine minimum and
+       maximum values of the enum, and calculate the type.  Remove check
+       for FUNCTION_DECLs in the values list, which cannot happen.  Replace
+       the DECL_INITIAL of each enumeration constant with a copy converted
+       to the enumeration type.  When updating variant types, don't bother
+       updating the type itself.
 
-       * reload1.c (possible_group_p): Needed a forward decl (static).
+       * c-typeck.c (build_binary_op): Simplify conditional expressions
+       when weeding out spurious signed-unsigned warnings.  Add new
+       spurious warning category: if the unsigned quantity is an enum
+       and its maximum value fits in signed_type(result_type).  Update
+       commentary.
+       (build_conditional_expr): Warn here if one alternative is signed
+       and the other is unsigned.
 
-Thu Feb 21 14:37:01 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-05  Nick Clifton  <nickc@cygnus.com>
 
-       * c-decl.c (grokdeclarator):
-       Don't make bitfield type unsigned if comes from typedef.
+       * config/fr30/fr30.h: Remove extraneous comments.
 
-       * reload1.c (reload): Don't require INITIAL_FRAME_POINTER_OFFSET
-       if cannot eliminate the frame pointer.
+2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * i860.md (cbranch, inverse_cbranch): Use eq to test cc0.
-       (negated branch patterns): New patterns.
+       * reload1.c (choose_reload_regs): When disabling a reload, also
+       set reload_spill_index to -1.
+
+2000-01-04  Joel Sherrill (joel@OARcorp.com>
+
+       * configure.in (m68*-*-rtemscoff*): New target, formal name for
+       old m68*-*-rtems*.
+       (m68*-*-rtemself*): New target.
+       (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
+       (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
+       (sparc*-*-rtemself*): New target.
+       (sparc*-*-rtems*): Now elf not a.out.
+       * config/i386/rtems.h: Include config/rtems.h.
+       * config/i386/rtemself.h: Include config/rtems.h.
+       * config/i960/rtems.h: Include config/rtems.h.
+       * config/m68k/rtems.h: Include config/rtems.h.
+       * config/m68k/rtemself.h: Include config/rtems.h.
+       * config/mips/rtems64.h: Include config/rtems.h.
+       * config/pa/rtems.h: Include config/rtems.h.
+       * config/rs6000/rtems.h: Include config/rtems.h.
+       * config/sh/rtems.h: Include config/rtems.h.
+       * config/sh/rtemself.h: Include config/rtems.h.
+       * config/sparc/rtems.h: Include config/rtems.h.
+       * config/sparc/rtemself.h: Include config/rtems.h
+
+Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
+
+       * final.c (shorten_branches): Correctly compute length of
+       asms without operands.
+
+Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
+
+       * configure.in: Add pj target.
+       * configure: Regenerate.
+       * config/pj: New directory.
+       * config/pj/lib1funcs.S: New file.
+       * config/pj/linux.h: New file.
+       * config/pj/pj.c: New file.
+       * config/pj/pj.md: New file.
+       * config/pj/pjl.h: New file.
+       * config/pj/t-pj: New file.
+       * config/pj/xm-pj.h: New file
+
+Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * toplev.c (rest_of_compilation): Run shorten-branches before
+       reg-stack for now.
+
+2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behavior of
+       macros so that they're consistent with their names.
+       * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
+       * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
 
-       * tm-i860.h (INITIALIZE_TRAMPOLINE): Use size_int, not build_int.
+2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
-       * reload1.c (reload): Save and restore notes around find_reloads.
+       * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
+       modified inadvertently.
 
-       * tm-sun2os4.h (LINK_SPEC): New macro.
-       * tm-sun386i.h (LINK_SPEC): Undef before redefining.
+2000-01-04  Joel Sherrill <joel@OARcorp.com>
 
-       * cccp.c (do_include): Check for -2, not -1, as value of lookup_import.
+       * configure.in (v850*-*-rtems*): New target.
+       * configure: Regenerate.
+       * config/v850/rtems.h: New file.
 
-       * c-parse.y (initlist): Fix typo.
+2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
 
-Mon Feb 18 02:50:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
+       (__gthread_key_create): Likewise.
+       (__gthread_key_dtor):  Likewise.
+       (__gthread_once): Fix logic.
+       (__gthread_key_delete): Cast away constness.
 
-       * cplus-decl.c (grokdeclarator): Try to come up with better magic
-       for implicitly globalizing classes implicitly declared in class
-       scope.
+       * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
+       * invoke.texi: Document.
+       * i386/mingw32.h (CPP_SPEC): Use.
+       (LIBGCC_SPEC): Likewise.
+       * i386/crtdll.h (LIBGCC_SPEC): Likewise.
 
-Sun Feb 17 09:27:38 1991  Michael Tiemann  (tiemann at cygnus.com)
+2000-01-04  David Edelsohn  <edelsohn@gnu.org>
 
-       * cplus-tree.c (virtual_offset): New function.  Returns the offset
-       of a baseclass that is virtual or comes from a virtual baseclass, or
-       NULL if there is no such baseclass.
-       * cplus-class.c (modify_vtable_entries): Call this function instead
-       of `virtual_member'.  `virtual_member' can return the wrong thing if
-       we try to use it for an offset computation of a baseclass which is
-       not strictly a virtual baseclass.
+       * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
+       (HANDLE_PRAGMA_PACK): Undefine.
+       (SLOW_UNALIGNED_ACCESS): Define.
 
-Sat Feb 16 06:21:03 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+2000-01-04  David Edelsohn  <edelsohn@gnu.org>
 
-       * recog.c (validate_replace_rtx_1): Use correct rtx_code for the
-       new operation when commuting operands.
-       Generalize to commute operands on comparison operation.
+       * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
+       to default definition.
+       (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
+       (store_fixed_bit_field): Call macro with word_mode and alignment.
+       (extract_bit_field): Call macro with relevant mode and alignment.
+       * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
+       to default definition.
+       (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
+       and alignment.
+       (move_by_pieces_ninsns): Likewise.
+       (clear_by_pieces): Likewise.
+       (emit_push_insn): Likewise.
+       (store_field): Call macro with relevant mode and alignment.
+       (expand_expr): Likewise.
+       (expand_expr_unaligned): Likewise.
 
-Fri Feb 15 23:01:24 1991  Richard Stallman  (rms at geech.ai.mit.edu)
+       * rs6000.h (HANDLE_PRAGMA_PACK): Define.
+       (SLOW_UNALIGNED_ACCESS): Define.
+       (CASE_VECTOR_MODE): Always use 32-bit offsets.
+       (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
+       (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
+       (toc_section): Likewise and .toc pseudo-op.
+       (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
+       64-bit mode.
+       (TEXT_SECTION_ASM_OP): Likewise.
+       (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
+       32-bit offsets.
 
-       * c-parse.y (initlist): Finish changing `case N:' to `[N]'.
+       * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
+       * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
+       * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
+       * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
+       * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
 
-       * combine.c (try_combine): Update reg_first_use.  Flush useless links.
+Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
 
-Thu Feb 14 17:06:44 1991  Ken Raeburn  (raeburn at watch.com)
+       * regclass.c: Revert my Jan 4 change to loop cost computation.
 
-       * cplus-parse.y (template_parm): New derivation from `class ID',
-       for consistent return of `identifier_node' nodes with `class A :
-       B' case.
-       * cplus-template (end_template_parm_list): Nothing to strip off of
-       identifier_nodes now.
-       (process_template_parm): Strip off one level of tree_list,
-       discarding (for now) the required base class.  Don't need to run
-       through grok* any more.
+Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
 
-Sun Feb 10 19:23:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
+       compilation.
 
-       * gcc.c (main, process_command, default_compilers): Fix typos.
+2000-01-04  Stan Cox  <scox@cygnus.com>
 
-Sat Feb         9 15:06:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * haifa-sched.c (build_control_flow): Change unreachable simple
+       loop test to check if current block has only one predecessor.
+       (find_rgns): Initialize degree.  Use dest as degree index, not src.
 
-       * gcc.c (process_command): Handle separate args for -B, -b, -V.
+2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-       * gcc.c (lookup_compiler): New function.  Handles alias entries.
-       (main): Call that.
-       (default_compilers): Make all real suffixes into alias entries.
-       (infiles): Now a vector of structures, containing specified language.
-       (process_command): Handle -x to specify language.
-       (main): Use specified language if any.
+       * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
 
-Fri Feb         8 18:31:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * calls.c (expand_call): Likewise for
+       `old_stack_arg_under_construction'.
 
-       * fold-const.c (fold): Set TREE_USED when create COMPOUND_EXPR.
-       * stmt.c (warn_if_unused_value): Don't warn if TREE_USED.
-       * c-typeck.c (build_unary_op): Handle multiple casts inside ++.
+       * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
 
-Fri Feb         8 07:37:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * function.c (pad_to_arg_alignment): Likewise for `save_var' and
+       `save_constant'.
 
-       * real.h (dconst2): New variable.
-       * emit-rtl.c (init_emit_once): Initialize dconst2.
-       * tree.c (real_twop): New function.
-       * cse.c (simplify_unary_operation): Fold FLOAT, FLOAT_EXTEND, and
-       FLOAT_TRUNCATE.
-       (simplify_binary_operation): Convert x*2 to x+x.
-       (cse_insn): Handle case where constant equivalent is in table.
-       Fix minor bug with merging src_related_elt.
-       * fold-const.c (fold): If commutative operation, move a constant
-       first operand to the second operand.
-       Remove tests of constants as first operand for commutative operations.
-       Convert x*2 to x+x.
+       * gcc.c (execute): Likewise for `ut' and `st'.
 
-Fri Feb         8 03:07:34 1991  Ken Raeburn  (raeburn at watch.com)
+       * genattrtab.c (attr_rtx): Likewise for `rt_val'.
 
-       * cplus-ptree.c (print_lang_decl): Corrected argument list.  Print
-       address of template info for TEMPLATE_DECL nodes.
+       * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
 
-       * cplus-decl.c (set_current_level_tags_transparency): New
-       function, for altering tag-transparency of a context.
+       * jump.c (jump_optimize_1): Likewise for `temp2'.
 
-       * cplus-parse.y (PRE_PARSED_METHOD_DEF): Was unused; now gone.
-       (template_instantiation): Handle $-references correctly.  Generate
-       a class_head-like value for LC actions to operate on.
-       (maybe_base_class_list): New non-terminal: colon and base class
-       list, or empty.
-       (named_class_head): Use it.
-       (unnamed_class_head): Use '{', not LC.
-       (class_head): If template_instantiation found, use its value.
-       (template_arg): Apply groktypename to typename args.
+       * local-alloc.c (block_alloc): Likewise for `r1'.
 
-       * cplus-template.c (template_text_obstack): Deleted, just use
-       permanent_obstack instead.
-       (init_template): Deleted; callers changed.
-       (current_template_info): New variable: pointer to last-saved
-       template info record.
-       (end_template_decl): Use DECL_NAME, DECL_ARGUMENTS,
-       DECL_LANG_SPECIFIC, rather than TREE_OPERANDs.  Save most of
-       template info here.
-       (reinit_parse_for_template): Only save text here, in
-       already-allocated template info record.
-       (mangle_class_name_for_template): New function.
-       (instantiate_template): Finally written.
+       * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
 
-Thu Feb         7 22:06:56 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
+       (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
 
-       * tm-i386v4.h (ASM_OUTPUT_COMMON): Specify rounding in the output.
-       (ASM_OUTPUT_LOCAL): Use .local and .comm.
+       * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
+       and `set2'.
 
-       * tm-news.h (FUNCTION_PROLOGUE): Correct syntax of link insn.
-       (PRINT_OPERAND_ADDRESS): Use period, not colon, before index reg width.
+       * reload.c (find_reloads): Likewise for `goal_alternative_number'
+       and `goal_earlyclobber'.
 
-       * stmt.c (pushcase, pushcase_range):
-       Don't warn for code before first `case' if there is a label on it.
+       * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
 
-Thu Feb         7 06:23:10 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
 
-       * integrate.c (initialize_for_inline): Accept COPY argument.
-       Only copy parameter DECL_RTL if COPY non-zero; in that case,
-       also replace DECL_RTL with copy.  All callers changed.
-       (copy_decl_rtls): New function.
-       (save_for_inline_copying): Use copy_decl_rtls to copy MEM DECL_RTLs
-       in the function.
-       Copy address of pseudos if they are a MEM.
+       * stupid.c (stupid_life_analysis): Likewise for `chain'.
 
-Wed Feb         6 19:19:25 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * c-typeck.c (build_binary_op_nodefault): No warn for RSHIFT by 0.
-
-Wed Feb         6 17:37:23 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
-
-       * function.c (fixup_var_refs_1):  Accept a location in rtx instead
-       of an rtx.
-       Unless -fforce-mem, if an insn is valid with MEM, leave it alone.
-       Rework ZERO_ and SIGN_EXTRACT cases to properly do adjustments
-       and generalize to support other than QImode MEMs.
-       (fixup_var_refs_insns): Change call to fixup_var_refs_1.
-
-Wed Feb         6 08:14:21 1991  Tom Wood  (wood at dg-rtp.dg.com)
-
-       * m88k.md (cmp): Use reg_or_0_operand to avoid swapped compares.
-       (call patterns): Put use of r1 in a parallel construct.
-       (multiply and divide by a power of two): Now just multiply.  The
-       new combiner will change divide by a power of two into multiply.
-       (movhi, movqi): Use zero-extend load.
-       * tm-m88k.h (BYTE_LOADS_ZERO_EXTEND): Use it.
-       (H constraint): Changed to mean one or two.
-       * out-m88k.c: Use the proper includes for non-USG systems.
-       * xm-m88k.h: Include tm.h at the end.   
-
-Wed Feb         6 02:24:38 1991  Michael Tiemann  (tiemann at cygnus.com)
-
-       * cplus-decl.c (pushtag): Don't try to nest classes from non-C++
-       language scopes.
-
-Wed Feb         6 01:33:16 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * cse.c (simplify_binary_operation): Don't change div into mult.
-
-Tue Feb         5 10:59:53 1991  Ken Raeburn  (raeburn at watch.com)
-
-       * cplus-parse.y (template_instantiation): Supply base class list
-       and use guts of class declaration.  Untested; will have to be
-       fixed up to deal with template context manipulations.
-
-Tue Feb         5 00:52:57 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * c-common.c (combine_strings): Finish fixing wide strings.
-
-       * reload1.c (possible_group_p): New subroutine.
-       (reload): Don't kill last group when looking for a non-group.
+       * unroll.c (copy_loop_body): Likewise for `copy'.
 
-       * expmed.c (expand_divmod): If emit cmp insn, force op0 into reg.
-
-       * objc-parse.y (init_lex, yylex): max_wide now measured in chars. 
-       (yylex): Treat \r as whitespace if traditional.
-
-       * toplev.c (compile_file): Add missing arg for dbxout_finish.
-
-       * objc-actions.c (lang_finish): New dummy function.
-
-       * calls.c (expand_call): Recognize other names for setjmp-like fns.
-
-       * gcc.c (main): Use obstack_init, not gcc_obstack_init.
-
-       * varasm.c (assemble_zeros): New function.
-       All calls to ASM_OUTPUT_SKIP elsewhere now use this function.
-       Handle ASM_NO_SKIP_IN_TEXT.
-       * toplev.c (compile_file): Use assemble_zeros.
-       * final.c (end_final): Likewise.
-       * tm-3b1.h, tm-att386.h, tm-mot3300.h (ASM_NO_SKIP_IN_TEXT):
-       Define as 1.
-       * tm-3b1.h (ASM_OUTPUT_SKIP): Don't deal with outputting zeros.
+       * varasm.c (output_constructor): Likewise for `byte'.
 
-Mon Feb         4 20:37:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
 
-       * m68k.md: Use %$ and %& where appropriate.
-       (special float_truncate pattern): New, for 68040.
-       (68881 DF multiply recognizers): Avoid fscale if 68040. 
-       (68881 SF multiply recognizers): Avoid fsglmul if 68040.
+       * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
+       all FP constants for constant->reg moves.
+       (ix86_split_to_parts): Try to convert memory address into immediate
+       when available in the constant pool.
+       * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
+       moves.
+       (LEGITIMATE_CONSTANT_P): Return 1.
+       * i386.md (pushsf): New splitter to convert constant pool memory
+       reference to immediate.
+       (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
+       reload.
 
-       * tm-next.h (SECTION_FUNCTION): Simplify; remove last arg. 
-       (EXTRA_SECTION_FUNCTIONS): Rewrite to go with that change. 
+2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-Mon Feb         4 18:22:54 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
+       * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
+       (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
+       ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
+       (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
+       rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
 
-       * reorg.c (link_cc0_isns): New function.
-       (fill_simple_delay_slots, fill_slots_from_thread): Call it.
-       (fill_slots_from_thread): Don't make REG_CC_STATUS notes.
-       (delete_scheduled_jump): Use REG_CC_SETTER instead of REG_CC_STATUS.
-       Correctly locate compare insn in CC0 case.
-       (steal_delay_list_from_target): Don't steal an insn that sets cc0;
-       we can't safely copy it.
-       (fill_slots_from_thread): Can't put insn that sets CC0 in delay slot
-       if we don't own its thread; this would otherwise require copying it.
-       (relax_delay_slots): Don't collapse jump to next insn if it has a
-       cc0-setting insn in a delay slot.
+2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
 
-       * reorg.c (update_block): Accept location to place USE marker; use if
-       INSN is in a delay slot.
-       (mark_target_live_regs): Handle the case where we deleted the start
-       of the basic block that was previously used for a target.
-       Ignore insns with INSN_FROM_TARGET_P.
-       (optimize_skip, try_merge_delay_insns, fill_simple_delay_slots):
-       Pass new argument to update_block.
-       (try_merge_delay_insns, redundant_insn_p): Clear INSN_FROM_TARGET_P
-       to show that this insn will be used in both paths of the branch.
-       (try_merge_delay_insns): Add calls to update_block for insns deleted
-       from delay slots.
+       * ginclude/stdbool.h:  Support compilation as C++.
 
-       * reorg.c (mostly_true_jump): If no jumps between target and end of
-       function, predict as false.
-       If comparison == 0, predict false; != 0, predict true.
+Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
 
-       * reorg.c (steal_delay_list_from_{target,fallthrough}):
-       Ignore redundant insn even if it can't be placed in our delay slot.
-       (fill_slots_from_thread): Likewise.
-       Ensure we don't call redundant_insn_p on any insns that conflict
-       with what we need and set.
+       * fold-const.c (make_range): Don't try to reverse an unbounded range.
 
-       * reorg.c (fill_eager_delay_slots): Pick up new value of JUMP_LABEL;
-       it may have been changed by first call to fill_slots_from_thread.
+Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
 
-       * rtl.h (REG_TAIL_CALL): Deleted; never documented or used.
-       (REG_CC_SETTER, REG_CC_USER): Replacements for REG_CC_STATUS.
-       * rtl.c (reg_note_name): New names.
-       * final.c (final_scan_insn): Replace REG_CC_STATUS with REG_CC_SETTER;
-       now only one insn.
-       * emit-rtl.c (next_cc0_user, prev_cc0_setter): Use REG_CC_SETTER and
-       REG_CC_USER.
+       * regclass.c (regclass): Properly compute loop_cost.  Adjust
+       comments.
 
-       * cplus-cadillac.c, cplus-class.c, cplus-decl.c, cplus-lex.c:
-       Replace obstack_init with gcc_obstack_init.
-       * cplus-search.c, flow.c, gcc.c, loop.c, reload1.c: Likewise.
-       * reorg.c, stmt.c: Likewise.
+       * regclass.c: Fix minor whitespace problems.
 
-       * reload1.c (eliminate_regs, case ASM_OPERANDS): Fix typo when making
-       new ASM_OPERANDS.
+2000-01-03  Anthony Green  <green@cygnus.com>
 
-       * recog.c: Now includes insn-flags.h and insn-codes.h.
-       (validate_replace_rtx_1): If replacing the source of a ZERO_ or
-       SIGN_EXTRACT with a MEM, try to put the MEM in the mode to be used for
-       the MEM.
-       * Makefile.in (recog.o): Depends on insn-flags.h and insn-codes.h.
+       * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
+       Restore the pic register if required.
 
-Mon Feb         4 17:39:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
 
-       * c-typeck.c (digest_init): Error if init array with another array.
-
-Mon Feb         4 04:58:20 1991  Ken Raeburn  (raeburn at watch.com)
-
-       * cplus-tree.def (TEMPLATE_DECL): New node type.
-       (TEMPLATE_PARM_IDX): New node type; like integer, with an extra
-       field.
+       * c-common.c (format_char_info): Update comment.
+       (check_format_info): Recognize 'z' modifier in the same way 'Z'
+       was recognized.  Emit warning for formats new in ISO C99 only
+       if flag_isoc9x is not set.
 
-       * cplus-method.c (check_text_len): Fix up error message to be more
-       correct.  Moved function before new_text_len so that the latter
-       can call it and inlining can work.
-       (new_text_len): Call check_text_len.
+Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
 
-       * cplus-method.c (build_overload_name): No longer static.
+       * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
 
-       * cplus-class.c (unuse_fields): Now static.
-       (popclass): Use a temporary when building C_C_D.
+Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
 
-       * cplus-decl.c (lookup_tag): Don't complain about type mismatch if
-       the tag found is for a template.
+       * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
+       SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
+       (make_compound_operation): Choose cheaper alternative between
+       ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
 
-       * cplus-lex.c: New lookup tables, for new "template" keyword.
-       (reinit_lang_specific): Call init_template.
-       (init_lex): Ditto.
-       (file_from_saved_text): Renamed from input_from_saved_text.
+       * regclass.c (op_costs): Remove global variable.
+       (record_reg_classes): New parameter "op_costs" and "reg_pref".
+       (record_operand_costs): Break out from ...
+       (scan_one_insn): ... here.
+       (dump_regclass): Make dumps nicer.
+       (regclass): Dump preferrences choosed and changes done during passes.
 
-       * cplus-lex.c (identifier_type): New function; returns primary
-       type (IDENTIFIER, TYPENAME, PTYPENAME) indicated by token name.  A
-       PTYPENAME is returned for (TYPE_DECL (TEMPLATE_DECL ...)) nodes.
-       (see_typename): Call it.
+2000-01-03  Jakub Jelinek  <jakub@redhat.com>
 
-       * cplus-lex.c (yylex): In handling identifiers, use subset of
-       TYPENAME code for PTYPENAME tokens.
+       * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
 
-       * cplus-template.c: New file.
-       (begin_template_parm_list): Push new scope and switch to permanent
-       obstack.
-       (end_template_parm_list): Return parameter list as a tree vector.
-       (end_template_decl): Save away new TEMPLATE_DECL node.
-       (process_template_parm): Build up tree list of template
-       parameters.
-       (instantiate_template): For now, just complain.
-       (init_template): Set up template obstack.
-       (reinit_parse_for_template): Gobble up class definition text and
-       save it away.
+2000-01-03  Jakub Jelinek  <jakub@redhat.com>
 
-       * cplus-parse.y (template_header, template_parm_list): Call above
-       routines.
-       (datadef): Put template declarations here, instead of in
-       class_head.
-       (named_class_head_sans_basetype, named_class_head,
-       unnamed_class_head): Break up old class_head derivations.
-       (class_head): Now any of the above, plus template types with or
-       without instantiation.
-       (template_type): Call instantiate_template.
-       (template_arg_list): Build up list of args.
+       * config/sparc/sparc.c (gen_df_reg): New function.
+       * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
+       * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
+       movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
+       movtf_cc_reg_sp64+1): Use it.
 
-       * cplus-tree.h (lang_type): Add TEMPLATE field.  Also add macro
-       TYPE_TEMPLATE.
+2000-01-02  Mark Mitchell  <mark@codesourcery.com>
 
-Sun Feb         3 21:16:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
+       copied LABEL_DECLs.
 
-       * tm-m68k.h (PRINT_OPERAND): Handle `&' and `$'.
-       (PRINT_OPERAND_PUNCT_VALID): They are valid.
+Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
-       * out-next.c (handle_pragma): Unread the newline.
+       * config/i386/i386.c (ix86_expand_unary_operator): Function
+       definition made void.
+       (ix86_expand_binary_operator): Update outdated preceding comment.
+       * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
+       prototype.
 
-       * toplev.c (main): Warn if meaningless optimizations are requested.
-       Don't enable options by default that would get warnings.
+       * config/i386/i386.c (override_options): Fix option-name typo.
 
-       * m68k.md (extend QI to HI): Typo in clr insn.
+2000-01-02  Mark Mitchell  <mark@codesourcery.com>
 
-       * c-common.c (combine_strings): Decrement LEN properly when copying.
-       * c-parse.y (init_lex, yylex): max_wide now measured in chars. 
+       * system.h (CEIL): Define.
+       * builtins.c (CEIL): Remove.
+       * expmed.c (CEIL): Likewise.
+       * expr.c (CEIL): Likewise.
+       * stor-layout.c (CEIL): Likewise.
 
-       * tree.c (gcc_obstack_init): Fix typo in forward decl.
+2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
 
-Sat Feb         2 09:24:56 1991  Michael Tiemann  (tiemann at cygnus.com)
+       * expr.c (store_constructor_field): Fix typo introduced with last
+       gcc2 merge.
 
-       * cplus-decl.c (poplevel): Change DECL_CONTEXT of decls only of
-       their context is CURRENT_FUNCTION_DECL.
+2000-01-01  Mark Mitchell  <mark@codesourcery.com>
 
-Fri Feb         1 13:46:07 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+       * tree.h (BINFO_N_BASETYPES): New macro.
 
-       * print-tree.c (print_node): Don't print chain for `c' and `x' nodes.
+2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
 
-       * loop.c (record_excess_regs): Moved here.
+       * expmed.c (emit_store_flag): Prevent losing a pending stack
+       adjust the same way we prevent losing queued increments.
 
-See file ChangeLog.2.
+See ChangeLog.2 for earlier changes.