Annotation of GNUtools/cc/ChangeLog.2, revision 1.1

1.1     ! root        1: Thu Jan 31 00:33:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !             2: 
        !             3:        * loop.c (scan_loop): Check each libcall for regs it uses
        !             4:        but does not mention in the equivalent value.
        !             5:        To move the libcall, we must have at most one such reg
        !             6:        and it must be moved as well.
        !             7:        (libcall_other_reg): New subroutine.
        !             8:        * rtlanal.c (record_excess_regs): New function.
        !             9: 
        !            10:        * tree.c (gcc_obstack_init): New function.
        !            11:        (init_obstacks, save_tree_context): Use that.
        !            12:        (OBSTACK_CHUNK_SIZE): New parameter.
        !            13:        * xm-next.h: New file.
        !            14:        * configure (m68k/next): Use that file.
        !            15: 
        !            16:        * flags.h (flag_no_common): Declare new flag to treat external defs
        !            17:        as ANSI specifies (i.e. not as common).
        !            18:        * toplev.c (flag_no_common, f_options): Support -fno-common.
        !            19:        * varasm.c (assemble_variable): Don't output a common if
        !            20:        flag_no_common is set.  Treat as if initialized to 0.
        !            21: 
        !            22:        * gcc.c (default_compilers): Define __ASSEMBLER__ for .S file.
        !            23: 
        !            24:        * tm-aix386.h (ASM_OUTPUT_LOCAL): Ok to use bss, since no shared libs.
        !            25:        (LINK_SPEC): Pass through all -K and -T options.
        !            26:        * xm-aix386.h (TRUE, FALSE): Undef if already def, to avoid warning.
        !            27: 
        !            28:        * tm-m68k.h (TARGET_68040, TARGET_68040_ONLY): New machine flags.
        !            29:        (TARGET_SWITCHES): Alternatives to set them.
        !            30:        * tm-next.h (TARGET_DEFAULT): Changed to 0407 for 68040.
        !            31: 
        !            32:        * out-m68k.h (standard_68881_constant_p):  Always return 0
        !            33:        for TARGET_68040 since fmovecr is no longer implemented in hardware.
        !            34: 
        !            35:        * m68k.md (ftruncdf2, ftruncsf2): Don't emit fintrz for
        !            36:        TARGET_68040, since it is no longer implemented in hardware.
        !            37:        (muldf3): Don't use fscale on 68040, since not implemented in hardware.
        !            38: 
        !            39:        * toplev.c (optimize): Now stores specified optimization level.
        !            40:        (main): Keep the largest optimization level specified.
        !            41:        Handle any integer.
        !            42: 
        !            43:        * c-decl.c (pushdecl): Don't make an extern global for -traditional
        !            44:        if it uses any local types.
        !            45: 
        !            46:        * tm-sun386i.h (PCC_BITFFIELD_TYPE_MATTERS): Use 1 as value.
        !            47: 
        !            48: Wed Jan 30 12:41:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !            49: 
        !            50:        * fixincludes (sys/systypes.h): Edit this to handle _SIZE_T, etc.
        !            51: 
        !            52:        * function.c (put_var_into_stack): Allocate var ref chain link
        !            53:        while in the proper function's obstack.
        !            54: 
        !            55:        * fold-const.c (const_binop): Don't crash for real/0 if have infinity.
        !            56: 
        !            57:        * flow.c (mark_set_1): Don't make log link for hard reg in asm insn.
        !            58: 
        !            59: Wed Jan 30 07:45:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
        !            60: 
        !            61:        * sched.c (schedule_block): Indicate what insns constitute each
        !            62:        basic block.
        !            63: 
        !            64: Tue Jan 29 12:35:42 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !            65: 
        !            66:        * Makefile.in (gnulib1.*, gnulib2.*): Declare them phony targets.
        !            67: 
        !            68:        * print-tree.c (print_node): Print message if TREE_PERMANENT is wrong.
        !            69:        * tree.c (object_permanent_p): New function.
        !            70: 
        !            71:        * print-tree.c (print_node): Remove DECL_LANG_FLAG_10.
        !            72: 
        !            73: Tue Jan 29 10:07:48 1991  Tom Wood  (wood at dg-rtp.dg.com)
        !            74: 
        !            75:        * m88k.md (minus/xor/and, neg/ne/compare/and): Delete these.  This
        !            76:        should be done by combine.
        !            77:        (compare operator): Eliminate except when a SET_SRC.
        !            78:        * tm-m88k.h (OPTIMIZATION_OPTIONS): -fomit-frame-pointer is a
        !            79:        default optimization.
        !            80: 
        !            81: Mon Jan 28 12:52:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !            82: 
        !            83:        * tree.h (DECL_VIRTUAL_P): Renamed from TREE_VIRTUAL.
        !            84:        (struct tree_common): Eliminate virtual_flag.
        !            85:        (struct tree_decl): Add virtual_flag.
        !            86: 
        !            87:        * Makefile.in (enquire.o): Pass -DNO_STDDEF.
        !            88: 
        !            89:        * m68k.md (tablejump): Now have a define_expand that does
        !            90:        different things depending on CASE_VECTOR_PC_RELATIVE,
        !            91:        and a separate define_insn for each case.
        !            92: 
        !            93:        * function.h (outer_function_chain): Declare the variable.
        !            94: 
        !            95:        * tree.c (debug_obstack): Fix typos.
        !            96:        * tree.h (struct tree_common): Fix typo.
        !            97: 
        !            98:        * Makefile.in (GNULIB1_TARGET, GNULIB2_TARGET): Variables deleted.
        !            99:        (gnulib): Depend on gnulib1.target and gnulib2.target explicitly.
        !           100: 
        !           101:        * dbxout.c (dbxout_type): Use DECL_VIRTUAL_P, not TREE_VIRTUAL.
        !           102: 
        !           103:        * cplus-tree.h (TREE_PRIVATE, TREE_PROTECTED): #if 0.
        !           104: 
        !           105:        * cexp.y (keywords): Cast names for parens to U_CHAR *.
        !           106: 
        !           107:        * gcc.c (process_command): Fix typo setting switches[n_switches].arg.
        !           108: 
        !           109:        * loop.c (loop_reg_used_before_p): Check insns before INSN, not after.
        !           110: 
        !           111:        * objc-actions.c (objc_finish): Renamed from lang_finish.
        !           112:        * objc-parse.y (program): Call objc_finish at the end.
        !           113: 
        !           114:        * Changes from Matthew Self ([email protected]):
        !           115: 
        !           116:        * objc-parse.y:  Since objc-parse.y was so out of date with
        !           117:        respect to c-parse.y, I started over with c-parse.y and
        !           118:        reintegrated the Objective-C modifications.  Now that
        !           119:        Objective-C is working I hope that objc-parse.y will be kept
        !           120:        more up to date....  I did not re-integrate the lexer since I
        !           121:        don't have gperf working.  I simply cut and pasted what
        !           122:        Stallman had in objc-parse.y.  Someone with access to gperf
        !           123:        should re-generate this stuff.
        !           124: 
        !           125:        * objc-actions.c (comp_method_with_proto,
        !           126:        comp_proto_with_proto):  Stallman's change to use the
        !           127:        functions end_temporary_allocation and
        !           128:        resume_temporary_allocation is incorrect, since it always
        !           129:        leaves allocation temporary, whether it was before or not. 
        !           130: 
        !           131:        Perhaps the push and pop functions would do the trick....
        !           132: 
        !           133:        * objc-actions.c (get_arg_type_list):  Use new function
        !           134:        groktypename_in_parm_context.
        !           135: 
        !           136:        * objc-actions.c (_OBJC_SELECTOR_REFERENCES_decl,
        !           137:        _OBJC_SELECTOR_REFERENCES_id):  Removed.
        !           138: 
        !           139:        * objc-actions.c (synth_module_prologue):  Eliminated code to
        !           140:        forward declare the selector references array.
        !           141: 
        !           142:        * objc-actions.c (init_objc_symtab):  Eliminated code to
        !           143:        initialize "refs" field in objc_symtab structure (which is
        !           144:        now vestigial).
        !           145: 
        !           146:        * objc-actions.c (build_selector_translation_table): Rewrote.
        !           147: 
        !           148:        * objc-actions.c (build_selector_reference):  New routine.
        !           149: 
        !           150:        * objc-actions.c (build_message_expr, build_selector_expr):
        !           151:        Use new routine.
        !           152: 
        !           153:        * config/tm-next.h (GO_IF_INDEXABLE_BASE):  Don't use pc
        !           154:        relative addressing for LABEL_REF's.  Since branch tables are
        !           155:        in the const section, we treat LABEL_REF's like SYMBOL_REF's
        !           156:        here.  Otherwise invalid addresses were being generated.
        !           157: 
        !           158:        * config/tm-next.h (CASE_VECTOR_PC_RELATIVE, CASE_VECTOR_MODE):
        !           159:        Use absolute branch tables rather than relative ones.
        !           160: 
        !           161:        * config/tm-next.h (ASM_OUTPUT_MAIN_SOURCE_FILE_END):  Output
        !           162:        an N_SO symbol with no name to mark the end of the module.
        !           163:        This is needed to support scattered loading on the NeXT.
        !           164: 
        !           165:        * config/out-next.c (handle_pragma):  Call to xrealloc had wrong args.
        !           166: 
        !           167:        * configure: Entry for NeXT must set out_file to out-next.c.
        !           168: 
        !           169:        * config/out-next.c:  Typo: "flags" -> "flags.h"
        !           170: 
        !           171:        * config/tm-next.h (LIB_SPEC):  Brought up-to-date.  There
        !           172:        are probably more changes needed here.
        !           173: 
        !           174:        * c-decl.c (pushdecl_top_level):  New function.  This was
        !           175:        copied from an older version of g++.
        !           176: 
        !           177:        * c-decl.c (init_decl_processing): Make alloca first arg sizetype.
        !           178: 
        !           179:        * c-decl.c (groktypename_in_parm_context): New function.
        !           180: 
        !           181: Mon Jan 28 07:07:01 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           182: 
        !           183:        * loop.c (loop_reg_used_before_p): Don't use INSN_LUID since INSN
        !           184:        might have been made by loop.c for an outer loop.
        !           185: 
        !           186:        * loop.c (move_movables, strength_reduce): Replace register references
        !           187:        in REG_NOTES as well as PATTERN.
        !           188: 
        !           189:        * loop.c (strength_reduce): Call maybe_eliminate_biv twice, not 
        !           190:        three times.
        !           191:        (maybe_eliminate_biv): Don't abort if elimination fails even though
        !           192:        we thought it wouldn't.  This can happen if certain insn patterns 
        !           193:        aren't valid.
        !           194:        (maybe_eliminate_biv_1): Ensure that we do not change the insn at
        !           195:        all if all the required changes can't be done.
        !           196: 
        !           197: Sun Jan 27 21:26:29 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           198: 
        !           199:        * Makefile.in: Rename config-dir back to config.
        !           200: 
        !           201: Sat Jan 26 17:48:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           202: 
        !           203:        * objc-parse.y (program): Call objc_finish.
        !           204:        * objc-actions.c (objc_finish): Renamed from lang_finish.
        !           205: 
        !           206:        * objc-actions.c, objc-parse.y: New version from NeXT.
        !           207: 
        !           208: Sat Jan 26 17:37:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           209: 
        !           210:        * expr.c (expand_expr, case COND_EXPR): Disable special-case of
        !           211:        A ? B : C when B and C are simple.  This is now done better by jump.
        !           212: 
        !           213: Sat Jan 26 13:16:58 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           214: 
        !           215:        * tree.h (TREE_PRIVATE, TREE_PROTECTED, TREE_VIRTUAL): New macros.
        !           216:        (struct tree_common): New flag fields.
        !           217:        * dbxout.c (dbxout_type): Get rid of conditional; can always use these.
        !           218: 
        !           219:        * cccp.c (lookup_import): Do return -2 if file found.
        !           220:        (main): Handle `.m' suffix like `.S'.
        !           221: 
        !           222:        * configure (m68k/next): Use out-next.c.
        !           223: 
        !           224:        * WORD_SWITCH_TAKES_ARG and SWITCH_TAKES_ARG now give # of args.
        !           225:        * gcc.c (struct switchstr): New field `args' replaces `part2'.
        !           226:        (process_command): Record all the args a switch has.
        !           227:        (give_switch): Pass all the strings in `args'.
        !           228: 
        !           229:        * tree.h (struct tree_common): Normally make `code' an enum tree_code.
        !           230: 
        !           231:        * m68k.md (tablejump): New pattern.
        !           232:        (casesi, etc.): Deleted.
        !           233: 
        !           234:        * tree.c (debug_obstack): New function.
        !           235: 
        !           236:        * toplev.c (compile_file): Call dbxout_finish near the end.
        !           237:        * dbxout.c (dbxout_finish): New function.
        !           238: 
        !           239:        * print-tree.c (print_node): Always print ERROR_MARK node briefly. 
        !           240: 
        !           241:        * objc-actions.h (METHOD_ENCODING, CLASS_CATEGORY_LIST): New macros.
        !           242: 
        !           243:        * gcc.c (execute): Make fatal signal message clearer.
        !           244:        (default_compilers): For .m file, define __OBJC__,
        !           245:        and pass -lang-objc and -gen-decls to cc1.
        !           246: 
        !           247:        * dwarfout.c: Include output.h.
        !           248:        (current_function_decl, asm_out_file): Explicit extern decls deleted.
        !           249:        (abort, fatal): Explicit extern decls deleted.
        !           250:        (NO_RETURN): Definition deleted.
        !           251:        (named_labels): Don't declare it.
        !           252:        (output_symbol): Don't use it.
        !           253:        (MAXPATHLEN): Don't define this.  Don't include sys/param.h.
        !           254:        (output_source_file_die): Avoid limit on file name size.
        !           255:        (output_symbols_for_stmt): Deleted.
        !           256:        (output_symbols_for_block): Adapt to using BLOCK, not LET_STMT.
        !           257: 
        !           258:        * configure: Renamed from `config'.
        !           259:        * config: Directory renamed back from config-dir.
        !           260: 
        !           261: Sat Jan 26 1990         Ron Guilmette (rfg at ncd.com)
        !           262: 
        !           263:        * README.DWARF: updated to reflect changes to dwarfout.c, the
        !           264:        inclusion of dwarf.h (and its changes) and the fact that the
        !           265:        DWARF support is no longer directly tied to the DG versions of
        !           266:        GCC.
        !           267: 
        !           268:        * dwarfout.c: included a patch (provided by Ray Essick) to allow
        !           269:        dwarfout.c to properly get a value for MAXPATHLEN even on (old)
        !           270:        System V.3 systems.
        !           271: 
        !           272:        * dwarfout.c: added support for long long types (as suggested by
        !           273:        Ray Essick).
        !           274: 
        !           275:        * dwarfout.c: added support for the AT_comp_dir attribute.  Also,
        !           276:        as part of this change, the name of the compilation directory is
        !           277:        no longer placed into in the .sources section.
        !           278: 
        !           279:        * dwarfout.c: added support for the AT_addr_ranges attribute.
        !           280: 
        !           281:        * dwarfout.c: added support for the AT_prototyped attribute.
        !           282: 
        !           283:        * dwarfout.c: added support for the AT_src_info attribute. Also,
        !           284:        as part of this change, there is no longer a "special" entry
        !           285:        at the start of the .srcinfo section for each compilation unit,
        !           286:        and the contents of the "special" final entry in the .srcinfo
        !           287:        section have changed (to { -1, -1 }).
        !           288: 
        !           289:        * dwarfout.c: modified to allow additional GNU DWARF extensions
        !           290:        to be generated whenever the corresponding extended attribute
        !           291:        codes are defined (presumably within a modified dwarf.h file).
        !           292: 
        !           293:        * dwarfout.c: use the section names .srcinfo and .sources rather
        !           294:        than .finfo and .files.  The additional specificity is warranted
        !           295:        because the DWARF information may someday include information
        !           296:        about object files as well as source files.
        !           297: 
        !           298:        * dwarfout.c: fixed a bug where a type attribute was being generated
        !           299:        for functions and function types even when the return type was
        !           300:        void.  "Standard" dwarf says that if the return type for a function
        !           301:        or function type is void then no type attribute should be generated
        !           302:        for the corresponding DIE.
        !           303: 
        !           304: Sat Jan 26 04:22:08 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           305: 
        !           306:        * cplus-lex.c (interface_strcmp): Handle String.String.Map.cc and
        !           307:        friends.
        !           308: 
        !           309:        * cplus-typeck.c (build_unary_op): Merge change to generate better
        !           310:        code from simple cast expression.
        !           311: 
        !           312: Fri Jan 25 10:06:28 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           313: 
        !           314:        * cplus-decl.c (pushtag): Don't call `pushdecl' if the type's name
        !           315:        is anonymous, lest we recurse ad infinitum.
        !           316: 
        !           317: Thu Jan 24 23:56:55 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           318: 
        !           319:        * optabs.c (expand_binop, expand_unop): Word at a time only for ints.
        !           320: 
        !           321: Thu Jan 24 09:40:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
        !           322: 
        !           323:        * sdbout.c (sdbout_symbol): Apply changes in dbxout.c to deal with
        !           324:        SUBREG.  Don't emit a symbolic definition for variables that can't
        !           325:        be represented.
        !           326: 
        !           327: Thu Jan 24 21:18:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           328: 
        !           329:        * config: Conditional for setting $os was backward.
        !           330:        Also mention name of make-var file if one exists.
        !           331: 
        !           332:        * out-i386.c: Delete a large piece of accidental insertion.
        !           333: 
        !           334:        * dwarfout.c: Don't include c-tree.h or cplus-tree.h.
        !           335:        (INT_TYPE_SIZE, etc.): Define them if not overridden.
        !           336:        (fundamental_type_code): Distinguish types by TYPE_PRECISION.
        !           337:        But also check for the built-in C type names.
        !           338: 
        !           339: Thu Jan 24 15:23:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           340: 
        !           341:        * gcc.c (default_compilers): Pass all args starting with "O" to 
        !           342:        cc1 so that -O2 is passed along.
        !           343: 
        !           344: Thu Jan 24 13:10:27 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           345: 
        !           346:        * stmt.c (expand_expr_stmt): Don't warn for any casts to void.
        !           347: 
        !           348:        * config: Fix typos setting shell vars.
        !           349:        Rename config to config-dir.
        !           350:        Insert missing \ in case for delta.
        !           351: 
        !           352: Wed Jan 23 16:31:27 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           353: 
        !           354:        * emit-rtl.c (emit_jump_insn_{before,after}): Allow PATTERN to be
        !           355:        a SEQUENCE.
        !           356: 
        !           357:        * loop.c (check_dbra_loop): Use emit_jump_insn_before when writing 
        !           358:        out compare and jump sequence, not emit_insn_before, to ensure that
        !           359:        if we only write one insn  that it is a JUMP_INSN.
        !           360: 
        !           361:        * toplev.c (flag_rerun_cse_after_loop): New: -frerun-cse-after-loop.
        !           362:        (rest_of_compilation): Rerun cse after loop if desired.
        !           363:        (main): Add support for -O2.
        !           364:        Prescan args for -O and -O2 to set default values for many -f options.
        !           365:        Add call to new macro OPTIMIZATION_OPTIONS.
        !           366:        Save status of -version until all args have been processed; then
        !           367:        write out the info.
        !           368:        (print_single_switch): New function.
        !           369:        (print_switch_values): Renamed from print_target_switch_defaults.
        !           370:        Now prints out currently enabled -f, -m, and -W switches.  Calls
        !           371:        print_single_switch to write out switch and handle long lines.
        !           372: 
        !           373:        * rtl.def (SUBREG): Change rtx class from 'o' to 'x'.
        !           374: 
        !           375:        * cse.c (find_comparison_args): Ignore hash table entry if not valid.
        !           376: 
        !           377: Wed Jan 23 00:12:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           378: 
        !           379:        * config: File renamed from config.gcc.
        !           380:        Allow abbreviations for +-options.
        !           381:        Allow config HOST TARGET.
        !           382:        Support +gas and +nfp as separate options.
        !           383:        Rename all the machine alternatives to general scheme:
        !           384:        cpu/company-system.  Allow abbreviations for cpu/company pairs.
        !           385:        * config-dir: Dir renamed from config.
        !           386: 
        !           387:        * Makefile.in (install-dir): Create bindir here.
        !           388: 
        !           389:        * cccp.c (main): Delete duplicat p++ left in last change.
        !           390: 
        !           391:        * Makefile.in (GNULIB1, GNULIB1_TARGET): Renamed from GNULIB*.
        !           392:        (gnulib1.portable, gnulib1.target): Renamed from gnulib.*.
        !           393:        They now make a file named gnulib1, from gnulib1.c.
        !           394:        (LIB1FUNCS, LIB1FUNCS_EXTRA): Renamed from LIBFUNCS*.
        !           395:        (for-bootstrap, rest.encap): Depend on gnulib, not GNULIB2_TARGET.
        !           396:        (stamp-gnulib2): This file is no longer used.
        !           397:        (gnulib2.portable): Old stamp-gnulib2 rule renamed to this.
        !           398:        Now create a file named gnulib2, from gnulib2.c alone.
        !           399:        (gnulib): New target, combines gnulib1 and gnulib2 into gnulib.
        !           400:        (mostlyclean): Delete additional temporary files.
        !           401:        No need to avoid deleting stamp-gnulib2.
        !           402:        (clean): Delete gnulib1 and gnulib2, but not stamp-gnulib2.
        !           403:        (realclean): No need to delete gnulib here.
        !           404:        (install-gnulib): Changed dependencies.
        !           405:        * gnulib1.c: File gnulib.c renamed.
        !           406: 
        !           407:        * Makefile.in (install-dir): Create bindir here.
        !           408: 
        !           409:        * cccp.c (main): Delete duplicat p++ left in last change.
        !           410: 
        !           411: Sun Jan 20 14:00:16 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           412: 
        !           413:        * cplus-class.c (finish_struct): Conditionalize EMPTY_FIELD_BOUNDARY
        !           414:        on whether or not it is defined.  Similarly for PCC_BIT_FIELD_MATTERS. 
        !           415: 
        !           416: Wed Jan 16 18:56:30 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           417: 
        !           418:        * cse.c (fold_rtx): When folding dispatch table, stay inside bounds.
        !           419: 
        !           420: Wed Jan 16 08:11:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           421: 
        !           422:        * reload.c (find_reloads_toplev): Fix typo in recent change.
        !           423: 
        !           424:        * reload1.c (eliminate_regs): If we have a non-paradoxical
        !           425:        (subreg (pseudo)) and the pseudo has an equivalent memory
        !           426:        location, replace the SUBREG because find_reloads may do it.
        !           427: 
        !           428: Tue Jan 15 01:41:28 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           429: 
        !           430:        * loop.c (scan_loop): Condition for movability was wrong.
        !           431:        A reg that isn't necessarily set may be unsafe
        !           432:        even if used only inside the loop.
        !           433:        However, a reg used only in the same basic block after the set is safe.
        !           434:        So is a reg that isn't a user-level variable.
        !           435: 
        !           436:        * loop.c (loop_optimize): Reverse order of scanning loops.
        !           437: 
        !           438:        * loop.c (scan_loop): After skipping the insns of a libcall sequence,
        !           439:        ignore notes when searching back to find the last insn of the seq.
        !           440: 
        !           441:        * cccp.c (main): Use envvar GCC_EXEC_PATH to specify translation
        !           442:        of prefixe in default include dirs.
        !           443: 
        !           444:        * cccp.c (main): Do path_includes after explicit options.
        !           445: 
        !           446:        * combine.c (try_distrib): Don't push + thru negative count shifts.
        !           447: 
        !           448: Mon Jan 14 09:40:28 1991  Ken Raeburn  (raeburn at watch.com)
        !           449: 
        !           450:        * cplus-lex.c (yylex): Even in `extern "C"', the keywords are the
        !           451:        same.
        !           452: 
        !           453:        * cplus-lex.c (input_from_saved_text): New function.  Set string
        !           454:        source for FILE pointer.
        !           455:        (yylex, do_pending_inlines): Call it.
        !           456: 
        !           457:        * cplus-parse.y (stmts, stmt): Type is now `tree'.  Some actions
        !           458:        fixed to return it.
        !           459: 
        !           460:        * cplus-lex.c (reinit_parse_for_block): New function, with most of
        !           461:        the guts of reinit_parse_for_method.  Magic argument IS_TEMPLATE
        !           462:        chooses a set of error messages.
        !           463:        (reinit_parse_for_method): Call it.
        !           464:        cplus-template.c (reinit_parse_for_template): New function, also
        !           465:        calls reinit_parse_for_block.
        !           466: 
        !           467: Mon Jan 14 07:20:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           468: 
        !           469:        * loop.c (skip_consec_insns, move_movables, strength_reduce): Don't
        !           470:        call find_reg_note on a NOTE.
        !           471: 
        !           472: Sun Jan 13 15:45:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           473: 
        !           474:        * cccp.c: Separate namespace for assertions.  Don't expand macros
        !           475:        inside assertions in #if.  Allow arbitrary token sequences.
        !           476:        (rescan): Special handling after `#' if assertions_flag.
        !           477:        (expand_to_temp_buffer): New arg sets assertions_flag. Callers changed.
        !           478:        (eval_if_expression): Pass 1 for that arg.
        !           479:        (skip_paren_group): New function.
        !           480:        (assertion_hashtab, ASSERTION_HASHSIZE, ASSERTION_HASHNODE): New.
        !           481:        (assertion_install, assertion_lookup, delete_assertion): New functions.
        !           482:        (T_ASSERTION): Deleted.
        !           483:        (tokenlist_list): Renamed from arglist_list.
        !           484:        (read_token_list): Renamed from read_keyword_list.  Much changed.
        !           485:        Copy the strings into the heap.
        !           486:        (free_token_list): Renamed from free_keyword_list.  Free the strings.
        !           487:        (do_assert, do_unassert): Considerably changed.
        !           488:        (check_assertion): Somewhat changed.
        !           489:        (check_macro_name): Extra arg contributes to error message.
        !           490:        * cexp.y (yylex): Parse everything as a name if keyword_parsing.
        !           491:        (rule for assertions): Set, then clear, keyword_parsing.
        !           492:        (keywords): Allow empty sequence.  Allow nested parens.
        !           493: 
        !           494: Sat Jan 12 12:18:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           495: 
        !           496:        * c-typeck.c (build_unary_op): Make better code for simple casts.
        !           497: 
        !           498:        * reload.c (find_reloads): Computing reload_when_needed, don't neglect
        !           499:        operands that don't have output reloads.
        !           500: 
        !           501:        * cse.c (refers_to_mem_p): At check_addr, handle PLUS inside CONST.
        !           502: 
        !           503: Sat Jan 12 06:30:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           504: 
        !           505:        * reorg.c (steal_delay_list_from_*): Add missing argument to calls to
        !           506:        insn_sets_resource_p.
        !           507:        (fill_eager_delay_slots, relax_delay_slots): Add missing argument
        !           508:        to calls to mostly_true_jump.
        !           509:        (relax_delay_slots): Correctly handle case where we can't invert jump.
        !           510: 
        !           511:        * reload.c (find_reloads_toplev): If we have a SUBREG of a
        !           512:        pseudo that resides in memory and the address is not offsettable,
        !           513:        substitute for the pseudo now so we can generate a reload for the
        !           514:        address.
        !           515: 
        !           516: Fri Jan 11 14:39:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           517: 
        !           518:        * tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p.
        !           519: 
        !           520: Thu Jan 10 12:26:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           521: 
        !           522:        * tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target.
        !           523:        (WORD_SWITCH_TAKES_ARG): Define to recognize -target.
        !           524:        (LIB_SPEC): Define; handle -a.
        !           525:        * tm-sun2os4.h: New file.
        !           526:        * tm-m68k.h (TARGET_SWITCHES): Handle -msky and -mnosky.
        !           527:        (TARGET_SKY): New macro.
        !           528: 
        !           529:        * tm-next.h (LIB_SPEC): Use -lsys_s, not -lc.
        !           530: 
        !           531:        * c-parse.y (yylex): Fix typo.
        !           532: 
        !           533:        * genoutput.c (output_prologue): Make insn-output.c use insn-codes.h.
        !           534:        * Makefile.in (insn-output.o): Depend on insn-codes.h.
        !           535: 
        !           536:        * Makefile.in (install-headers): Save $(libsubdir) before cd.
        !           537: 
        !           538:        * Makefile.in (gnulib): Depend on config.status.
        !           539: 
        !           540:        * gnulib2.c (__umulsidi3): Use #else around inline function.
        !           541:        Use __-style names for all machines.
        !           542: 
        !           543: Wed Jan         9 17:06:18 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           544: 
        !           545:        * out-sparc.c (various places): Change \; to \n\t in printf
        !           546:        strings.
        !           547: 
        !           548:        * sparc.md: Change PIC initialization pattern to recognize pattern
        !           549:        that doesn't involve a clobber.
        !           550:        * out-sparc.c: Rest of change is here, where PIC initialization is
        !           551:        emitted.
        !           552: 
        !           553:        * cse.c (simplify_unary_operation, simplify_binary_operation):
        !           554:        Correctly adjust VAL for bits outside MODE.
        !           555: 
        !           556: Wed Jan         9 15:45:26 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           557: 
        !           558:        * flow.c (libcall_dead_p): Handle a CALL in a PARALLEL.
        !           559: 
        !           560: Tue Jan         8 13:35:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           561: 
        !           562:        * expmed.c (emit_store_flag): Correct UNSIGNEDP value passed to
        !           563:        convert_to_mode and expand_unop.
        !           564: 
        !           565: Mon Jan         7 11:56:31 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           566: 
        !           567:        * gplus.gperf: New keywords for templates and other extensions.
        !           568: 
        !           569:        * cplus-lex.c: Incorprate new gperf code.
        !           570: 
        !           571:        * cplus-class.c (resolve_scope_to_name): New function.
        !           572:        (build_scoped_method_call): Call `resolve_scope_to_name' instead of
        !           573:        handling by itself.
        !           574:        * cplus-decl.c (pushdecl_class_level): Give forward declaration.
        !           575:        (lookup_nested_type): New function.
        !           576:        (pushtag,lookup_tag,xref_tag): Handle nested classes.
        !           577:        (finish_function): Add comment about obscure argument passing
        !           578:        convention for static method calls (at the call site).  Also, don't
        !           579:        call operator delete with NULL pointer.  Call it with
        !           580:        `current_class_decl' instead.
        !           581:        (globalize_nested_type): New function.  Used when we learn that a
        !           582:        type which initially appeared to be nested should be defined in the
        !           583:        global scope instead.
        !           584:        (grokdeclarator): Call `globalize_nested_type' when grokking an
        !           585:        as-yet undefined class type.
        !           586:        * cplus-dem.c: Updated to handle qualified (i.e. nested) types.
        !           587:        This means handling the new letter `Q' in mangled names.
        !           588:        * cplus-init.c (build_member_call): Handle nested classes using
        !           589:        `resolve_scope_to_name' instead of handling itself.
        !           590:        * cplus-lex.c (typename_scope_in_progress): New static variable to
        !           591:        allow the lexer to figure out what are nested class typenames,
        !           592:        scoped member references, etc., without getting the parser too
        !           593:        involved.
        !           594:        (yylex): Recognize SCOPED_TYPENAME and TYPENAME_SCOPE tokens.
        !           595:        Also, recognize '<' and '>' separately from ARITHCOMPARE so we can
        !           596:        implement templates.
        !           597:        No longer recognizes (X::*) or (X::&) as single tokens.
        !           598:        * cplus-method.c (build_overload_nested_name): New function to build
        !           599:        internal names for nested typenames.
        !           600:        * cplus-parse.y: Handle parameterized type syntax (more or less).
        !           601:        (dummy_decl): Gone!
        !           602:        Nested types are now handled.
        !           603:        * cplus-tree.h (DECL_UNDEFINED_FRIENDS): Moved out of DECL_CONTEXT
        !           604:        slot of TYPE_DECLs.  DECL_CONTEXT of typename is now the enclosing
        !           605:        type for nested types.
        !           606:        (DECL_NESTED_TYPENAME): An identifier pointer that makes the name of
        !           607:        the type unique for the compilation.
        !           608:        (IDENTIFIER_*): When initializing, call `perm_calloc', not
        !           609:        permalloc, since non-zero values actually mean something,
        !           610:        and we don't guarantee to initialize everything in one go.
        !           611:        * tree.c (perm_calloc): New function.
        !           612:        * cplus-typeck.c (default_conversion): Don't defaultly convert a
        !           613:        naked METHOD_REF such that it becomes a virtual function table
        !           614:        index.  Only let this happen if user requests it with `&'.
        !           615: 
        !           616:        * Makefile.in: Handle new source file cplus-template.c.
        !           617: 
        !           618: Mon Jan         7 15:03:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           619: 
        !           620:        * c-typeck.c (process_init_constructor): Error if values
        !           621:        provided for an array of empty elements.
        !           622: 
        !           623:        * out-i386.c (fp_top_dead_p1): Follow jump only if optimizing.
        !           624:        (fp_call_internal): Discard result if unused.  Use fp_top_dead_p1.
        !           625: 
        !           626:        * cse.c (cse_insn): In special case for (set REG0 REG1),
        !           627:        change any REG_EQUIV notes to REG_EQUAL.
        !           628: 
        !           629:        * tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it.
        !           630: 
        !           631:        * tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section.
        !           632: 
        !           633:        * genrecog.c (write_tree_1): Typo in printf string.
        !           634: 
        !           635:        * flow.c (libcall_dead_p): New arguments NOTE and INSN.
        !           636:        Now test that the hard return reg in the call is dead.
        !           637:        Callers changed.
        !           638: 
        !           639: Mon Jan         7 12:27:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           640: 
        !           641:        * recog.c (cancel_changes): Cancel changes in opposite order we made
        !           642:        them.
        !           643: 
        !           644:        * integrate.c (subst_constants): Only commute operands if op0 is const.
        !           645: 
        !           646:        * rtl.def (INLINE_HEADER): Add new integer field.
        !           647:        * rtl.h (POPS_ARGS): New macro for place to save
        !           648:        current_function_pops_args.
        !           649:        (FUNCTION_FLAG_POPS_ARGS): Deleted; no longer a single bit.
        !           650:        * emit-rtl.c (gen_inline_header_rtx): Add new arg for "pops args".
        !           651:        * integrate.c (initialize_for_inline, output_inline_function):
        !           652:        Correctly save and restore current_function_pops_args.
        !           653: 
        !           654: Sun Jan         6 14:10:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           655: 
        !           656:        * rtl.h (ASM_OPERANDS_INPUT_LENGTH): New macro.
        !           657:        * reload1.c (eliminate_regs): Use ASM_OPERANDS_... macros.
        !           658:        * recog.c (asm_noperands, decode_asm_operands): Likewise.
        !           659: 
        !           660:        * rtl.def (IF_THEN_ELSE): Set class to '3'.
        !           661: 
        !           662:        * cse.c (simplify_{unary,binary,ternary}_operation): New functions,
        !           663:        from fold_rtx.
        !           664:        (fold_rtx): Call these function to do the bulk of the work.
        !           665:        Use GET_RTX_CLASS to find commutative and comparison operations.
        !           666:        Swap folded_arg[01] when commuting operands.
        !           667:        * rtl.h: Define new functions.
        !           668:        * integrate.c (try_constants): Replace constant folding code with
        !           669:        calls to new functions above.
        !           670:        In commutative operations, put constants last.
        !           671:        
        !           672:        * genemit.c (struct clobber_pat): New data structure.
        !           673:        (gen_insn): If pattern ends with a group of CLOBBERs of hard
        !           674:        registers, store this information in a struct clobber_pat.
        !           675:        (output_add_clobbers): New function.
        !           676:        (main): Call it to write code to add CLOBBERs.
        !           677:        * genrecog.c (struct decision): Add new field num_clobbers_to_add.
        !           678:        (make_insn_sequence): If pattern ends with a group of CLOBBERs,
        !           679:        set up to recognize it without the CLOBBERs but to indicate the
        !           680:        number of CLOBBERs omitted.
        !           681:        (add_to_sequence): Initialize num_clobbers_to_add.
        !           682:        Remove unnecessary conditionalization on STORE_FLAG_VALUE.
        !           683:        (break_out_subroutines, write_subroutine, write_tree): Remove
        !           684:        RETURN_PREFIX parameter; TYPE is sufficient.
        !           685:        (write_subroutine): Add extra parameter for recog_* functions.
        !           686:        (write_tree_1): Pass TYPE instead of string for return.
        !           687:        Write out code to return number of CLOBBERs needed.
        !           688:        (write_tree): Add new parameter to recog_*.
        !           689:        (main): Add new parameter to recog.
        !           690:        Don't pass return string to break_out_subroutines and write_tree.
        !           691:        * recog.c (recog_memoized): Pass extra (0) parameter to recog.
        !           692:        * combine.c (recog_for_combine): New function.
        !           693:        (try_combine, simplify_and_cc0, try_distrib): Use it instead of recog.
        !           694:        (reg_dead_at_p, reg_dead_at_p_1): New functions.
        !           695: 
        !           696:        * flow.c (mark_set_1): Count in reg_n_sets when a part of a register
        !           697:        is modified.
        !           698:        Update SIGNIFICANT correctly when subreg_p and multiple hard regs.
        !           699:        Compute reg_n_sets for hard registers.
        !           700: 
        !           701: Sun Jan         6 13:41:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           702: 
        !           703:        * function.c (locate_and_pad_parm): Do REG_PARM_STACK_SPACE just once.
        !           704: 
        !           705:        * Changes by [email protected].
        !           706:        * calls.c (expand_call): Test value of REG_PARM_STACK_SPACE instead
        !           707:        of assuming that it will always be greater than zero.
        !           708:        * function.c (assign_parms): Same as above.  Also, correct
        !           709:        calculation of STACK_BYTES.
        !           710: 
        !           711:        * reload1.c (reload_reg_free_p): Old input reload blocks input_addr.
        !           712: 
        !           713: Sat Jan         5 18:32:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           714: 
        !           715:        * Makefile.in (mostlyclean): New name for old `clean'.
        !           716:        (clean): Deletes gnulib also.
        !           717:        (cleanconfig): Need not delete gnulib here.
        !           718: 
        !           719:        * reload.c (push_reload): Don't use dying reg unless operand fits.
        !           720: 
        !           721:        * c-parse.y (yylex): Hex and octal constants now traditionally signed.
        !           722: 
        !           723: Sat Jan         5 18:03:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           724: 
        !           725:        * regclass.c (regclass): reg_n_sets is one per set.  It does not
        !           726:        take into account loop_depth.  So don't adjust by loop_depth here.
        !           727: 
        !           728: Fri Jan         4 13:18:07 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           729: 
        !           730:        * function.c (put_var_into_stack): Don't mung virtual reg.
        !           731:        (fix_lexical_addr): Accept the virtual arg pointer.
        !           732:        * function.h (struct var_refs_queue): New structure.
        !           733:        (struct function): Use that for the pending var refs queue.
        !           734: 
        !           735:        * print-tree.c (print_node): Nicer format for rtl of decls.
        !           736: 
        !           737:        * c-decl.c (push_c_function_context, pop_c_function_context):
        !           738:        No need to deal with current_function_decl.
        !           739: 
        !           740:        * c-parse.y (nested_function): Delete spurious nonterminal.
        !           741: 
        !           742: Fri Jan         4 12:13:14 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           743: 
        !           744:        * cplus-class.c (modify_vtable_entries): In case we are modifying
        !           745:        the main vtable, start with the vtable that comes from the immediate
        !           746:        baseclass, not the most base class.  This is needed because later
        !           747:        fixups (for non-first and virtual baseclasses) do not fix up this
        !           748:        case.
        !           749: 
        !           750: Fri Jan         4 06:55:00 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           751: 
        !           752:        * optabs.c (expand_binop): Fix typo in testing for SImode operation.
        !           753:        Generalize to apply in more cases by calling emit_store_flag rather
        !           754:        than doing the gen_sltu explicitly.
        !           755: 
        !           756:        * expmed.c (store_bit_field, extract_bit_field): When insv/extv
        !           757:        don't allow MEM and we need to load the field into a register, don't
        !           758:        use the mode of OP0 if it is wider than the mode to be used for
        !           759:        insv/extv operating on a register.
        !           760: 
        !           761:        * expmed.c (emit_stor_flag): Try to convert some comparisons with
        !           762:        1 and -1 to comparisons with zero.
        !           763:        Explicitly test sign bit of STORE_FLAG_VALUE rather than testing it
        !           764:        for being less than zero.
        !           765: 
        !           766:        * cse.c (find_comparison_args): Don't compute STORE_FLAG_VALUE < 0;
        !           767:        instead, test the relevant sign bit.
        !           768:        Use GET_RTX_CLASS instead of comparison_code_p.
        !           769:        * loop.c (get_condition): Likewise.
        !           770: 
        !           771:        * recog.c (validate_change): Eliminate duplicate code by always
        !           772:        saving the change.  If in_group == 0, call apply_change_group.
        !           773:        (apply_change_group): If recog_memoized fails, see if we have a
        !           774:        CLOBBER at the end.  Use validate_change to replace the pattern
        !           775:        with one without the CLOBBER if so; later we will verify that change.
        !           776: 
        !           777:        * tree.c (stabilize_reference_1): Now static; also, define as forward
        !           778:        reference at start of file.
        !           779: 
        !           780:        * rtl.def: Add new field in DEF_RTL_EXPR macro to give the "class"
        !           781:        of the rtx operation.
        !           782:        * rtl.h: DEF_RTL_EXPR has one additional arg.
        !           783:        (rtx_class, GET_RTX_CLASS): New var and macro.
        !           784:        * rtl.c: DEF_RTL_EXPR has one additional arg.
        !           785:        (rtx_class): Initialize table.
        !           786: 
        !           787:        * reload.c (push_reload): If an input operand contains a dead
        !           788:        register used nowhere else in the insn, try to use it as a reload reg.
        !           789:        * reload1.c (reload_as_needed): If cancelling optional reload,
        !           790:        clear reload_reg_rtx.
        !           791:        (choose_reload_regs): If we can find reload value lying around,
        !           792:        use that register unless choice made by find_reloads would also save
        !           793:        an insn (the new choice added above won't).
        !           794: 
        !           795:        * genoutput.c: Update comments on things written.  Change order to
        !           796:        agree with the order written.
        !           797:        (output_epilogue): Remove extraneous tests.
        !           798: 
        !           799: Thu Jan         3 13:32:54 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           800: 
        !           801:        * rtl.c (read_rtx): Cast NULL vector.
        !           802: 
        !           803:        * By Jim Wilson.
        !           804:        * tree.c (stabilize_reference): Modified to call stabilize_reference_1
        !           805:        instead of save_expr.
        !           806:        (stabilize_reference_1): New function.  For arithmetic operator trees,
        !           807:        recurse on the subtrees.  Otherwise, put a SAVE_EXPR around the
        !           808:        tree if it has side-effects.  
        !           809: 
        !           810: Thu Jan         3 12:37:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           811: 
        !           812:        * reload1.c (choose_reload_regs): Only set reload_when_needed to
        !           813:        RELOAD_FOR_OUTPUT or RELOAD_FOR_INPUT when it used to be RELOAD_OTHER.
        !           814: 
        !           815: Wed Jan         2 18:28:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           816: 
        !           817:        * emit-rtl.c (init_emit_once): Fix typo setting constm1_rtx.
        !           818: 
        !           819: Wed Jan         2 07:53:04 1991  Michael Tiemann  (tiemann at cygnus.com)
        !           820: 
        !           821:        * sparc.md (fix_truncdfsi2 recognizer): xoperands must have 3
        !           822:        elements because `output_fp_move_double' can write to operands[2].
        !           823: 
        !           824: Wed Jan         2 17:16:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           825: 
        !           826:        * calls.c (emit_call_1): If we have call_pop, use it if we have
        !           827:        no stack arguments.
        !           828: 
        !           829:        * out-vax.c (relational_op): Deleted, redundant.
        !           830:        * vax.md (branch): Use comparison_operator (in recog.c) instead of
        !           831:        relational_op.
        !           832:        * tm-vax.h (PRINT_OPERAND_PUNCT_VALID_P): "C" is not punctuation.
        !           833: 
        !           834:        * reload1.c (reload_as_needed, forget_old_reloads_1): Don't clear
        !           835:        reg_has_output_reload and reg_is_output_reload for each insn, just
        !           836:        ones that need reload.  Instead, interpret each entry as zero if
        !           837:        n_reloads == 0.
        !           838: 
        !           839: Wed Jan         2 15:52:13 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           840: 
        !           841:        * optabs.c (expand_binop): Fix typos.
        !           842: 
        !           843:        * toplev.c (rest_of_compilation): Clear cse_not_expected after loop.
        !           844:        * rtl.h (cse_not_expected): Declare here.
        !           845:        * expr.h: Not here.
        !           846: 
        !           847: Tue Jan         1 21:55:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           848: 
        !           849:        * emit-rtl.c (constm1_rtx): New standard constant.
        !           850:        (gen_rtx): Use it when appropriate.
        !           851:        (init_emit_once): Initialize it.
        !           852: 
        !           853:        * out-vax.c (split_quadword_operands): New function.
        !           854:        (relational_op): Likewise.
        !           855:        * vax.md (extendsidi2, adddi3, subdi3): New patterns.
        !           856:        (movdi): Use clrq when appropriate.
        !           857:        (movaq recognizer): New pattern.
        !           858: 
        !           859:        * recog.h (OUT_FCN): New macro.
        !           860:        * genoutput.c: Include recog.h in output file.  No
        !           861:        longer define "const", since that happens in recog.h.
        !           862: 
        !           863:        * tm-vax.h (PRINT_OPERAND): Add 'C' to print a reversed condition.
        !           864:        * out-vax.c (rev_cond_name): Return its name.
        !           865:        * vax.md (unnamed patterns): Combine several reversed branch patterns
        !           866:        into one, using match_operator with relational_op and "%C".
        !           867: 
        !           868:        * optabs.c (expand_binop): Handle multi-word addition and subtraction.
        !           869: 
        !           870:        * Makefile.in (install-gnulib): Use RANLIB_TEST.  Use libg_dir.
        !           871:        (libg_dir): New customization variable.
        !           872: 
        !           873:        * assert.h (__assert): Use standard GNU format for error messages.
        !           874: 
        !           875: Tue Jan         1 21:25:00 1991  Richard Kenner  (kenner at vlsi1)
        !           876: 
        !           877:        * reload1.c (eliminate_regs, case PLUS): Always move constant to the
        !           878:        outside of a PLUS expression.
        !           879: 
        !           880: Tue Jan         1 11:45:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
        !           881: 
        !           882:        * ecoff-cmp: Specify `c' in option to tail.
        !           883: 
        !           884:        * stor-layout.c (layout_record, layout_union, layout_type):
        !           885:        Use ROUND_TYPE_ALIGN and ROUND_TYPE_SIZE to compute
        !           886:        alignment and size of records, unions and arrays.
        !           887:        * ROUND_TYPE_ALIGN: New.  Args are type, spec'd align, other min align.
        !           888:        * ROUND_TYPE_SIZE: New.  Args are type, size of contents, align.
        !           889: 
        !           890:        * reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]:
        !           891:        Scan output and output-address reloads together.
        !           892:        Check for matching hard reg.
        !           893: 
        !           894:        * config.gcc: Set proper shell vars in big dispatch.  Not `machine'.
        !           895:        (i386-isc): New alternative.
        !           896: 
        !           897: Tue Jan         1 08:29:49 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           898: 
        !           899:        * reorg.c (update_block): Turn bb_tick update back on; it is needed,
        !           900:        after all.
        !           901: 
        !           902: Mon Dec 31 18:12:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           903: 
        !           904:        * genattrtab.c (write_test_expr, case EQ_ATTR): Use correct expression
        !           905:        number for attribute value.
        !           906: 
        !           907:        * cse.c (cse_insn): Use single_set when looking for an insn that sets
        !           908:        cc0 followed by one that no longer does.
        !           909: 
        !           910:        * recog.c (find_single_use): If the next insn after one that sets
        !           911:        cc0 is not an INSN or JUMP_INSN, return 0; don't blow up on a NOTE.
        !           912: 
        !           913:        * emit-rtl.c (emit_insn_before, emit_insn_after, emit_insn): Return
        !           914:        something sensible if a SEQUENCE of length zero was passed.
        !           915:        We no longer make a SEQUENCE with XVEC == 0, so don't test for it.
        !           916: 
        !           917:        * reload1.c (emit_reload_insns): Handle gen_move_insn returning
        !           918:        no insns (occurs on RT for dummy registers).
        !           919:        
        !           920:        * rtl.h (reg_cc0_rtx, find_cc): No longer needed.
        !           921:        * emit-rtl.c: Likewise.
        !           922:        * conditions.h: Entire file is #ifdef HAVE_cc0.
        !           923:        * final.c (CC_STATUS_INIT): Make a null default #ifndef HAVE_cc0.
        !           924:        (cc_status): No longer exists #ifndef HAVE_cc0.
        !           925:        (final_scan_insn): Do CC processing only #ifdef HAVE_cc0.
        !           926:        (alter_cond): Only exists #ifdef HAVE_cc0.
        !           927:        * genemit.c (gen_exp): No longer have CC0_REGNUM or reg_cc0_rtx.
        !           928:        * genoutput.c (main): Include insn-config.h before conditions.h.
        !           929:        * reorg.c: Likewise.
        !           930:        * jump.c (rtx_equal_for_thread_p): Remove reference to CC0_REGNUM;
        !           931:        we'll have to do this optimization some other way later.
        !           932:        * tm-a29k.h (NOTICE_UPDATE_CC): Deleted.
        !           933: 
        !           934: Mon Dec 31 14:44:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !           935: 
        !           936:        * reload.h (enum_reload_when_needed):
        !           937:        New alternatives RELOAD_FOR_OUTPUT, RELOAD_FOR_INPUT.
        !           938:        * reload1.c (choose_reload_regs): Use those when appropriate.
        !           939:        (mark_reload_reg_in_use): Record this usage specially.
        !           940:        (reload_reg_free_p, reload_reg_free_before_p): Handle this usage.
        !           941:        (reload_reg_reaches_end_p): Likewise.
        !           942:        (emit_reload_insns): Treat RELOAD_FOR_INPUT like RELOAD_OTHER.
        !           943: 
        !           944:        * i386.md (push for SFmode): Operand of fst was missing.
        !           945: 
        !           946: Mon Dec 31 08:50:17 1990  Craig Burley (burley at pogo.ai.mit.edu)
        !           947: 
        !           948:        * stor-layout.c (layout_type): For ARRAY_TYPE case, don't try
        !           949:        and compute a size if there is no TYPE_MAX_VALUE for the index.
        !           950:        * tree.c, tree.h (build_index_2_type): New function, like
        !           951:        build_index_type except it accepts the low value as an arg instead
        !           952:        of assuming 0.
        !           953: 
        !           954: Mon Dec 31 08:09:10 1990  Michael Tiemann  (tiemann at cygnus.com)
        !           955: 
        !           956:        * cplus-typeck.c (c_expand_return): Handle case when we try
        !           957:        to return a void value (such as a void function call) in a
        !           958:        function returning void, and there are cleanups to run.
        !           959: 
        !           960: Sun Dec 30 21:08:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           961: 
        !           962:        * tm-a29k.h (TARGET_VERSION): Can't use target_flags since we can
        !           963:        be called from gcc.c.
        !           964: 
        !           965:        * tm-rs6000.h (REG_ALLOC_ORDER): Put r12 after r13; it might be 
        !           966:        holding a DImode value and so might be very expensive (we won't
        !           967:        worry about TImode).
        !           968: 
        !           969:        * rs6000.md (subtract patterns): Fix incorrect operand number in %I.
        !           970:        (movti): Disallow indexed memory operands.
        !           971: 
        !           972:        * out-rs6000.c (print_operand, case 'm'): Fix typo.
        !           973:        (includes_rshift_p): Correctly compute mask.
        !           974: 
        !           975:        * out-a29k.c (output_operand): Add missing parentheses.
        !           976:        (print_operand): Replace if/then/else structure with switch statement.
        !           977: 
        !           978:        * a29k.md (beq, bne): Try to use NE test whenever possible; it
        !           979:        will produce better code if we have bit-tests.
        !           980: 
        !           981: Sun Dec 30 12:02:03 1990  Michael Tiemann  (tiemann at cygnus.com)
        !           982: 
        !           983:        * tm-sparc.h (PRINT_OPERAND): Put 'R' case before REG so that it
        !           984:        takes when 'R' is passed in as CODE.  Also, handle 'B' letter.
        !           985: 
        !           986:        * sparc.md: (pattern for converting DFmode to SImode): Second
        !           987:        argument to `output_asm_insn' should be `operands', not zero.
        !           988:        (tablejump): The jump insn is "jmp", not "jump".
        !           989:        (gen_fixtruncdfsi2): operands[2] should get the pseudo, not
        !           990:        operands[3] (which is nonexistent).
        !           991:        (call): Fix typo which had %o7 being emitted as %o.
        !           992:        (various patterns): Fixed places where match_operand had the wrong
        !           993:        operand number.
        !           994: 
        !           995: Sat Dec 29 17:27:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !           996: 
        !           997:        * sparc.md: cc_status no longer handles condition code updates.
        !           998:        Instead, condition codes are explicitly set and used via
        !           999:        hard register 0.  Special attributes specific to condition codes
        !          1000:        (such as whether conditional branches should test the integer or
        !          1001:        floating-point condition codes, or that the condition codes cannot
        !          1002:        be tested for a condition which would test the overflow bit) are
        !          1003:        handled by encoding the attribute in the mode for the condition
        !          1004:        code register.
        !          1005:        (type attributes): type "unary" insns have one input operand (1)
        !          1006:        and one output operand (0)
        !          1007:        type "binary" insns have two input operands (1,2) and one output (0)
        !          1008:        type "compare" insns have one or two input operands (0,1) and no output
        !          1009:        type "move" and type "arith" have been deleted.
        !          1010:        (prescan attribute): Deleted.  Machine description now puts
        !          1011:        floating-point zero in registers when needed.
        !          1012:        (use_cc attribute): Deleted.
        !          1013:        (fpcc define_delay): No longer depend on "use_cc" attribute.
        !          1014:        Also, fpcc delay characteristics hold for "fpcc" type insns.
        !          1015:        (cc attribute): Deleted.
        !          1016:        (cmpxx patterns): Now written as `define_expand's so we can stow
        !          1017:        away operands.  When the pattern that will use the results of the
        !          1018:        conditional test is emitted, it can use these operands to figure
        !          1019:        out the right way to emit the compare.
        !          1020:        (bcc patterns): Rewritten to emit comparison (based on stowed-away
        !          1021:        info) before emitting branch.
        !          1022:        (scc patterns): Handle all the cases with branch-free code.
        !          1023:        Added new pattern to recognize (x + (i == 0)).
        !          1024:        (movsi pattern recognizer): Split into two patterns so that e.g.
        !          1025:        "(set:SI (mem:SI ...) (const_int 5))" is never considered valid.
        !          1026:        Instead this has to be a two-insn sequence.
        !          1027:        (mov{hq}i pattern recognizers): Ditto.
        !          1028:        (movstrsi): Force operands[2] out of memory if it was in memory.
        !          1029:        ({zero,sign}_extendXY): Now written as `define_expand's instead of
        !          1030:        `define_insn's for more accurate machine modeling.
        !          1031:        Added new pattern to optimize bit-field compares.
        !          1032:        (floatsisf2 patterns): Delete redundant setting of "in_call_delay"
        !          1033:        attribute.
        !          1034:        (fix_trunc{sf,df}si2 pattern): Use clobberable register in which
        !          1035:        the conversion can take place.  Used to use %f30,%f31.
        !          1036:        ({add,sub}di3 pattern): Put explicit clobber of (reg 0) in the
        !          1037:        pattern.
        !          1038:        (negdi2 pattern): Ditto.
        !          1039:        Added new patterns to handle merging of addition/subtraction with
        !          1040:        condition code testing (with (reg:CC_NOOV 0)).
        !          1041:        ({and,ior,xor}cbsi3 pattern): Obsolete.  Deleted.
        !          1042:        Added patterns to represent setting of condition codes in addition
        !          1043:        to performing logical operations.
        !          1044:        ({neg,abs}df2 pattern): Use `R' print letter to overcome the need
        !          1045:        to use a C action instead of a simple template.
        !          1046:        (ash{l,r}{hi,qi}3): Define patterns for shifts on sub-SImode
        !          1047:        operands.
        !          1048:        (jump pattern): Use `*' print code to obviate the need for a C
        !          1049:        action when a template can do.
        !          1050:        (tablejump pattern): Ditto, with `^' code as well.
        !          1051:        Deleted `define_split's that were used to handle mem-mem moves in
        !          1052:        the case of PIC generation.  Since all move insns are emitted and
        !          1053:        maintained as SPARC-valid insns, these should no longer be needed.
        !          1054:        (various patterns): (HI ...) is spelled (HI:SI ...).  Also, use
        !          1055:        `gen_lowpart' instead of building subregs directly.
        !          1056:        New `define_split's were added to split scc insns into simpler
        !          1057:        components which have single-insn templates.
        !          1058:        Fixed a return peephole when returning a SFmode value (it was
        !          1059:        missing the "ret"!).
        !          1060:        Lots of complicated peepholes that brought cc testing and
        !          1061:        arithmetic operations together were deleted.  This is because the
        !          1062:        combiner should now handle all these cases.
        !          1063: 
        !          1064:        * out-sparc.c (sparc_compare_op{0,1}): New global variables.
        !          1065:        Used to hold the operand(s) to compare insns in lieu of emitting a
        !          1066:        compare.
        !          1067:        (reg_or_cc0_operand): Deleted.
        !          1068:        (normal_comp_operator): New function.
        !          1069:        (cc_arithop): Now returns 0 for PLUS and MINUS.
        !          1070:        (cc_arithopn): Now returns 0 for XOR.
        !          1071:        (gen_compare_reg): New function.
        !          1072:        (sparc_address_cost): Simplified because it turns out it doesn't
        !          1073:        matter what is returned for illegitimate addresses.
        !          1074:        (hard_regno_mode_ok): Updated to use these new #defines.
        !          1075:        (C_MODES): New #define, for condition code modes.
        !          1076:        (S_MODES): Ditto, for single-word (and smaller) quantities.
        !          1077:        (D_MODES): Ditto, for double-word (and smaller) quantities.
        !          1078:        (T_MODES): Ditto, for tetra-word (and smaller) quantities.
        !          1079:        (SF_MODES): Ditto, for SFmode quantities.
        !          1080:        (DF_MODES): Ditto, for SF_MODE, DFmode, SCmode, etc.
        !          1081:        (TF_MODES): Ditto, for DF_MODE, TFmode, DCmode, etc.
        !          1082:        (output_floatsi{df,sf}2): Greatly simplified.
        !          1083:        (output_pic_sequence,output_pic_sequence_2,fp_zero_hook,
        !          1084:        output_tail_call): Turned off.
        !          1085: 
        !          1086:        * tm-sparc.h (ASM_SPEC): Pass `-k' to assembler if compiling PIC.
        !          1087:        (WORDS_BIG_ENDIAN): Define as 1, not 0.
        !          1088:        (FIXED_REGISTERS): %f30 and %f31 are now allocatable.
        !          1089:        (REG_CC0_RTX, CC0_REGNUM): Deleted.
        !          1090:        (EXTRA_CC_MODES): New modes CC_NOOVmode and CCFPmode.  The former
        !          1091:        is for when the overflow bit it not to be tested; the latter is
        !          1092:        for when the condition is sitting in the floating point unit.
        !          1093:        (SELECT_CC_MODE): New macro.
        !          1094:        (FINAL_PRESCAN_INSN): Deleted.
        !          1095:        (CC_* macros): Deleted.
        !          1096:        (PRINT_OPERAND_PUNCT_VALID_P): New valid chars are '#' (for
        !          1097:        whether to print a noop or not), '*' (for whether to print a ",a"
        !          1098:        or not), and '^' (for whether to emit code for PIC branch or not).
        !          1099:        (PRINT_OPERAND{,_ADDRESS}): Replace calls to fprintf by calls to
        !          1100:        fputs where that is convenient.
        !          1101: 
        !          1102:        * expr.h, cplus-dbxout.c: #ifdef BYTES_BIG_ENDIAN should be #if.
        !          1103: 
        !          1104:        * reload.c (struct replacement): Add new field subreg_loc.
        !          1105:        (push_reload): If reloading SUBREG_REG of a paradoxical SUBREG,
        !          1106:        store the location of the SUBREG in subreg_loc in REPLACEMENTS.
        !          1107:        (push_replacement): Initialize subreg_loc.
        !          1108:        (subst_reloads): Don't produce nested SUBREGs; use subreg_loc.
        !          1109: 
        !          1110:        * regclass.c (regclass): Handle (set X (op CONST Y)) properly when
        !          1111:        the modes of operands 0 and 1 are different.
        !          1112: 
        !          1113: Sat Dec 29 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1114: 
        !          1115:        * cccp.c (macroexpand): Test traditional when computing expansion size.
        !          1116: 
        !          1117:        * toplev.c (compile_file):
        !          1118:        If profiling, leave some space after `gcc_compiled.'.
        !          1119:        * tm-m88k.h, tm-sparc.h, tm-sun386i.h (ASM_IDENTIFY_GCC): Deleted.
        !          1120: 
        !          1121:        * reload1.c (emit_reload_insns): Set reg_reloaded_contents, etc, here.
        !          1122:        (choose_reload_regs): Not here--except for reg_has_output_reload.
        !          1123: 
        !          1124:        * c-parse.y (nested_function, notype_nested_function):
        !          1125:        Use compstmt for body, not compstmt_or_error.
        !          1126: 
        !          1127:        * Makefile.in (install-headers): Use basename on 
        !          1128:        * stupid.c (stupid_mark_refs): Really do mark clobbered hardreg
        !          1129:        live before the insn.
        !          1130: 
        !          1131: Fri Dec 28 05:44:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1132: 
        !          1133:        * emit-rtl.c (subreg_lowpart_p): Use correct modes in
        !          1134:        WORDS_BIG_ENDIAN case.
        !          1135: 
        !          1136:        * reload.c (combine_reloads): Don't try to reference
        !          1137:        insn_operand_constraint for an ASM insn.
        !          1138:        Fix typo in testing for modified operand.
        !          1139: 
        !          1140: Thu Dec 27 19:02:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1141: 
        !          1142:        * cse.c (cse_insn): Ensure we invalidate SET_DEST if SET_SRC is a CALL.
        !          1143: 
        !          1144:        * cse.c (fold_rtx): Save mode of original first operand in case this
        !          1145:        is becoming (sign_extend (const_int)).
        !          1146: 
        !          1147: Thu Dec 27 16:15:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1148: 
        !          1149:        * m88k.md, out-m88k.c (CCmode): Use it.
        !          1150:        (emit_bcnd): Avoid loosing when bcnd is changed into sxx.
        !          1151:        (hi16/lo16): Don't use these to form 16-bit immediate values.
        !          1152:        Introduce and use %X/%x.
        !          1153:        (length attribute): Make better use of defaults.
        !          1154: 
        !          1155:        * tm-v88r32.h (LIB_SPEC): Goes here rather than in xm-v88r32.h.
        !          1156:        * xm-*88*.h: Clean these up.  Most differences go away by relying
        !          1157:        on the 88open standards.
        !          1158: 
        !          1159: Thu Dec 27 12:48:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1160: 
        !          1161:        * expmed.c (store_bit_field, extract_bit_field):
        !          1162:        Change #ifdef to #if, testing BYTES_BIG_ENDIAN.
        !          1163: 
        !          1164: Thu Dec 27 07:36:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1165: 
        !          1166:        * reorg.c (find_end_label): Ignore USE and CLOBBERs when looking for
        !          1167:        label at end of function.
        !          1168: 
        !          1169: Wed Dec 26 22:35:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1170: 
        !          1171:        * emit-rtl.c (sequence_element_free_list, sequence_result): New vars.
        !          1172:        (restore_emit_status, init_emit): Initialize them.
        !          1173:        (emit_insn_before, emit_insn_after, emit_insn): Save SEQUENCE in
        !          1174:        sequence_result.
        !          1175:        Make these three routines more alike in structure.
        !          1176:        (start_sequence, end_sequence, push_to_sequence): Cache INSN_LIST pairs
        !          1177:        in sequence_element_free_list rather than making new ones.
        !          1178:        (start_sequence): No longer return unused rtx; only one caller
        !          1179:        needed to be changed (in function.c, see below).
        !          1180:        (end_sequence): No longer has argument.
        !          1181:        (gen_sequence): Try obtaining a pre-built SEQUENCE from
        !          1182:        sequence_result; no longer special-case length 0 vectors.
        !          1183:        * function.c (fixup_memory_subreg): start_sequence no longer
        !          1184:        returns an rtx and end_sequence no longer has an argument.
        !          1185:        * rtl.h (start_sequence): Now void.
        !          1186:        (push_to_sequence, end_sequence): Define.
        !          1187: 
        !          1188: Wed Dec 26 13:19:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1189: 
        !          1190:        * gnulib.c: No longer #undef perform_* if not __GNUC__.
        !          1191:        (perform_*): Define each if not already def.
        !          1192: 
        !          1193: Tue Dec 25 17:31:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1194: 
        !          1195:        * loop.c (get_condition): Rework scan that looks for sets of things
        !          1196:        being compared to allow intervening insns; check to ensure that
        !          1197:        they don't set something that we need.  Return 0 if the best we can
        !          1198:        do is find something whose mode is in class MODE_CC.
        !          1199: 
        !          1200:        * calls.c (emit_call_1): RETURN_POPS_ARGS now gets the length of
        !          1201:        arguments on the stack and returns the number of bytes popped by the
        !          1202:        called function.
        !          1203:        * output.h (current_function_pops_args): Change description.
        !          1204:        * function.c (current_function_pops_args): Likewise.
        !          1205:        (assign_parms): Initialize current_function_pops_args here.
        !          1206:        (init_function_start): Not here.
        !          1207:        * tm-*.h (RETURN_POPS_ARGS): Reflect new meaning.
        !          1208:        (FUNCTION_EPILOGUE): Use new meaning of current_function_pops_args.
        !          1209:        * out-i386.c (function_epilogue): Likewise.
        !          1210: 
        !          1211: Tue Dec 25 15:52:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1212: 
        !          1213:        * gnulib.c (all functions): Support a hook for redefining contents.
        !          1214:        These hooks are called perform_addsi3, and so on.
        !          1215:        They are used only if compiling with GCC.
        !          1216: 
        !          1217:        * rtlanal.c (single_set): Moved from loop.c.
        !          1218: 
        !          1219:        * cse.c (fold_rtx): For a MEM, fold address when looking for constant.
        !          1220:        (cse_insn): When fetch a constant label from a dispatch,
        !          1221:        substitute into following tablejump.
        !          1222:        (find_best_addr): Clear do_not_record before hashing.
        !          1223:        * jump.c (mark_jump_label): Don't record table-labels on non-jumps.
        !          1224: 
        !          1225:        * m68k.md (casesi_2 recognizer): Use register_operand as predicate.
        !          1226: 
        !          1227: Mon Dec 24 17:54:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1228: 
        !          1229:        * cse.c (fold_rtx): Handle ADDR_DIFF_VEC like ADDR_VEC,
        !          1230:        when the index in it is constant.
        !          1231: 
        !          1232:        * c-decl.c (start_function): Handle new option -Wmissing_prototypes.
        !          1233:        (c_decode_option): Likewise.
        !          1234: 
        !          1235: Mon Dec 24 07:21:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1236: 
        !          1237:        * rtl.h (reload_completed, reload_in_progress): Now defined here.
        !          1238:        * output.h (reload_completed): No longer defined here.
        !          1239:        * emit-rtl.c, optabs.c, recog.c, sched.c, toplev.c, out-a29k.c:
        !          1240:        Don't define reload_in_progress or reload_completed.
        !          1241:        * a29k.md, romp.md, rs6000.md: Likewise.
        !          1242: 
        !          1243:        * machmode.def: Terminate GET_MODE_WIDER_MODE chains with VOIDmode,
        !          1244:        not zero.
        !          1245:        (CCmode): New mode.
        !          1246:        * machmode.h (enum machine_mode): Includes modes in EXTRA_CC_MODES,
        !          1247:        if defined.
        !          1248:        (enum mode_class): New class MODE_CC; delete MODE_FUNCTION.
        !          1249:        * rtl.c (mode_name): Define to be known size; add names for extra
        !          1250:        CC modes, if present.
        !          1251:        (mode_class, mode_size, mode_unit_size, mode_wider_mode): Define
        !          1252:        to be known size.
        !          1253:        (init_rtl): Initialize extra CC modes.
        !          1254: 
        !          1255: Sat Dec 22 19:33:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1256: 
        !          1257:        * tm-i386v.h (MAXPATHLEN): Define if not already defined.
        !          1258:        * tm-i386vgas.h: New file.
        !          1259: 
        !          1260:        * out-i386.c (print_operand_address): Handle scaled indexing.
        !          1261: 
        !          1262: Sat Dec 22 11:15:03 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1263: 
        !          1264:        * m88k.md, out-m88k.c, tm-m88k.h (swapped cmpsi): Don't rely on
        !          1265:        NOTICE_UPDATE_CC doing the job.  Instead, compliment the swapped
        !          1266:        compare.  Also, make COMPARE SImode.
        !          1267:        (and/cmpsi/sxx/neg): Add patterns to do this in one instruction.
        !          1268:        Change sign_extend/sxx to neg/sxx for other cases.
        !          1269:        (iorsi3/xorsi3): Use alternatives and explicit patterns.
        !          1270:        (casesi): Make the constant the second operand to cmpsi.
        !          1271:        (output_and): Must compliment value to use the clr instruction.
        !          1272:        (output_reg_adjust): Simplify the interface and use TEMP_REGNUM.
        !          1273:        (TARGET_SWITCHES): Eliminate needless no-* options.
        !          1274: 
        !          1275: Fri Dec 21 05:46:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1276: 
        !          1277:        * recog.c (find_single_use{,_1}): New functions.
        !          1278:        * rtl.h (find_single_use): Declare it.
        !          1279: 
        !          1280: Thu Dec 20 21:27:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1281: 
        !          1282:        * optabs.c (init_optabs): Add __ to names of floating compare fcns.
        !          1283: 
        !          1284: Thu Dec 20 18:21:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1285: 
        !          1286:        * expr.c (expand_builtin, case BUILTIN_FFS): Get mode for arg from
        !          1287:        tree, not rtx, in case arg was CONST_INT.
        !          1288: 
        !          1289: Thu Dec 20 17:31:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1290: 
        !          1291:        * c-decl.c (init_decl_processing): Don't define `ffs'.
        !          1292: 
        !          1293: Wed Dec 19 16:59:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1294: 
        !          1295:        * gcc.c (main): Handle if SIGPIPE not defined.
        !          1296: 
        !          1297:        * cccp.c (xmalloc, xrealloc, xcalloc): Don't declare malloc or realloc.
        !          1298: 
        !          1299: Wed Dec 19 06:50:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1300: 
        !          1301:        * combine.c (gen_lowpart_for_combine): Avoid making a nested SUBREG
        !          1302:        when we are being passed a paradoxical SUBREG of MEM.
        !          1303: 
        !          1304:        * cse.c (new_basic_block): Compilations spend about 5% of their time
        !          1305:        in this function so replace loop initializing qty_{first,last}_reg
        !          1306:        with copy from a larger consec_ints.  Only loop over extra entries.
        !          1307:        (cse_main): Allocate consec_ints to be default size of max_qty large.
        !          1308: 
        !          1309:        * reorg.c (get_branch_condition): Fix typos when reversing condition.
        !          1310:        (condition_dominates_p): Fix typo in comparison.
        !          1311:        (redundant_insn_p): This function was taking about 4% of the
        !          1312:        compilation time.  Rework so it doesn't split, only looks at resource
        !          1313:        usage if it finds a matching insn (since it usually won't), and
        !          1314:        improve code that looks at resources.  Now takes about 0.5% of
        !          1315:        compilation time.
        !          1316:        (fill_simple_delay_slots): Always call mark_target_live_regs with an
        !          1317:        active insn; currently being called with a CODE_LABEL.
        !          1318: 
        !          1319: Tue Dec 18 14:08:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1320: 
        !          1321:        * out-sparc.c: Fix uninitiated comment.
        !          1322: 
        !          1323:        * final.c (end_final): Call strip_off_ending to remove the file
        !          1324:        name suffix.
        !          1325:        (final_start_function): Execute SDB_DEBUGGING_INFO code only if
        !          1326:        generating SDB symbol info.
        !          1327: 
        !          1328:        * Makefile.in (cccp.o): Depend on gcc.
        !          1329: 
        !          1330:        * tm-sparc.h, xm-sparc.h: Make this machine big-endian.
        !          1331: 
        !          1332:        * expr.c (expand_builtin): Pass correct arguments to gen_cmpstrsi4.
        !          1333: 
        !          1334:        * recog.c (nonmemory_operand): Reject reg whose class is NO_REGS.
        !          1335: 
        !          1336:        * c-decl.c (finish_struct, grokdeclarator):
        !          1337:        Strip NON_LVALUE_EXPR more than once.
        !          1338: 
        !          1339:        * combine.c (combine_instructions): Check that a jump insn uses CC0
        !          1340:        before trying to combine it with an insn that sets CC0.
        !          1341: 
        !          1342:        * cplus-decl.c, cplus-search.c, gcc.c, objc-actions.c, rtl.c, stmt.c,
        !          1343:        symout.c, toplev.c: Use xmalloc instead of malloc.
        !          1344: 
        !          1345:        * cccp.c (do_include): Check for truncation of precompiled file name.
        !          1346: 
        !          1347: Mon Dec 17 16:53:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1348: 
        !          1349:        * c-typeck.c (build_binary_op_nodefault, build_conditional_expr):
        !          1350:        Fix indentation.
        !          1351:        * reload1.c (choose_reload_regs): Fix indentation.
        !          1352:        (gen_input_reload): Fix typo in comment.
        !          1353: 
        !          1354:        * reload.c (find_reloads): Call abort when the last operand is
        !          1355:        marked commutative, to make it easier to find this error.
        !          1356: 
        !          1357:        * rtlanal.c (refers_to_regno_p): Don't crash if X is 0.
        !          1358: 
        !          1359: Mon Dec 17 15:29:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1360: 
        !          1361:        * local-alloc.c (combine_regs): No need to see if suggested hard reg
        !          1362:        is suitable; if it isn't, it won't end up being used.  Existing tests
        !          1363:        were too conservative.
        !          1364: 
        !          1365:        * jump.c (delete_jump): When searching for the SET of the condition
        !          1366:        codes for a jump insn, give up if we hit a SEQUENCE.
        !          1367: 
        !          1368: Mon Dec 17 02:14:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1369: 
        !          1370:        * c-typeck.c (c_size_in_bytes): New function.
        !          1371:        (pointer_int_sum, pointer_diff): Use that.
        !          1372:        (pointer_diff): Handle warn_pointer_arith.
        !          1373: 
        !          1374: Sun Dec 16 22:27:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1375: 
        !          1376:        * c-decl.c (start_decl): Ignore with error any init for a parm.
        !          1377:        (finish_decl): Likewise.
        !          1378: 
        !          1379: Sun Dec 16 01:02:57 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1380: 
        !          1381:        * jump.c (rtx_equal_for_thread_p): Treat the special CC register as
        !          1382:        equivalent for the two threads we are looking at.
        !          1383: 
        !          1384:        * combine.c (try_combine): Fix typo in loop over I1 with PARALLEL
        !          1385:        body.  Also, don't test HARD_REGNO_MODE_OK for hard registers we are
        !          1386:        thinking about combining.  This screws up using registers to
        !          1387:        represent the condition codes, and probably doesn't save anything in
        !          1388:        the general case.
        !          1389: 
        !          1390:        * expmed.c (expand_and): Comment says that result is always stored
        !          1391:        in target, so the code now does this.
        !          1392: 
        !          1393: Sat Dec 15 18:09:46 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1394: 
        !          1395:        * loop.c (get_condition): Try a little harder to find the setter of
        !          1396:        the register used in a conditional test.  On the SPARC it is vital
        !          1397:        to either find the setter of the register used for the condition
        !          1398:        codes or for this function to return 0.  Also, have test for
        !          1399:        non-NULL, matching `set' govern both normal and reversed cases of
        !          1400:        comparisons.
        !          1401: 
        !          1402:        * jump.c (jump_optimize): When moving USE insns from before jumps to
        !          1403:        after BARRIERs, put the label for the redirected jump after the
        !          1404:        BARRIER instead of just before the PREV_INSN of the original target.
        !          1405:        This gets around problems when there are NOTEs between the BARRIER
        !          1406:        and the original target.
        !          1407:   
        !          1408: Sat Dec 15 10:16:29 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1409: 
        !          1410:        * sparc.md (cmpdf,cmpsf): No longer a define expand.  Now depends
        !          1411:        on fp zero being loaded into a register.
        !          1412:        (tstsi,tstdf,tstsf): Deleted.
        !          1413:        (seq,sne): Fail if we are not testing operands of integer mode.
        !          1414:        (movsi): Split recognizers into two parts.  The first handles
        !          1415:        [reg,mem,zero] <=> [reg,mem]; the second handles [reg,const] =>
        !          1416:        [reg].
        !          1417:        (adddf,subdf,negdf): Simplify output routines using 'R' as an
        !          1418:        output letter.
        !          1419:        (tail_call): Turn this off.  It is never used, and it depends on
        !          1420:        routines which are about to become broken.
        !          1421:        (various places): Add USE_CC attribute where appropriate.
        !          1422:        (various places): Change (use (reg:SI 0)) to (clobber (reg:SI 0))
        !          1423:        and delete CC_CLOBBER attribute from the pattern.
        !          1424:        * out-sparc.c (move_operand): No longer recognize certain
        !          1425:        immediates as a `move_operand'.
        !          1426:        (move_reg_or_immed_operand): New recognizer for immediates no
        !          1427:        longer recognized by `move_operand'.
        !          1428:        (output_pic_sequence*): Turned off.
        !          1429:        (sparc_address_cost): Simplified, since the value returned is not
        !          1430:        used if the address is not legitimate.
        !          1431:        (emit_move_sequence): Use `gen_lowpart' instead of building
        !          1432:        SUBREGs explicitly.
        !          1433:        (make_f30_contain_zero): Deleted.
        !          1434:        (output_tail_call): Turned off.
        !          1435:        * tm-sparc.h (PRINT_OPERAND): Recognize 'R' code letter, which
        !          1436:        means print the name of REGNO (X)+1.  No longer recognizes the 'G'
        !          1437:        letter.
        !          1438:        (PRINT_OPERAND,PRINT_OPERAND_ADDRESS): Replace various calls to
        !          1439:        fprintf with calls to fputs or fputc.
        !          1440:        (FINAL_PRESCAN_INSN): No longer defined.
        !          1441: 
        !          1442: Sat Dec 15 14:37:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1443: 
        !          1444:        * recog.c (offsettable_address_p): Check validity in narrower modes.
        !          1445: 
        !          1446: Sat Dec 15 11:21:55 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1447: 
        !          1448:        * syms.h sdbout.c (T_VOID): Ensure that T_VOID is provided a
        !          1449:        default meaning if <syms.h> is used.
        !          1450: 
        !          1451: Fri Dec 14 14:39:10 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1452: 
        !          1453:        * m88k.md (increment and test peephole): Updated so it would apply
        !          1454:        with the new method for doing cmpsi/bxx.
        !          1455:        * m88k.md (function units): Replace decode with alu and update
        !          1456:        accordingly.
        !          1457:        * out-m88k.c (emit_test): Add a mode parameter.
        !          1458:        * tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Constrain how the arg
        !          1459:        pointer can be used.
        !          1460: 
        !          1461: Fri Dec 14 06:48:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1462: 
        !          1463:        * expr.c (convert_move): Add missing argument to some recursive calls.
        !          1464: 
        !          1465:        * jump.c (invert_jump): Pass new label to recursive call.
        !          1466: 
        !          1467:        * expr.h (setcc_gen_code): Replaces setcc_gen_fctn; stores insn_code.
        !          1468:        (expand_and, emit_store_flag, label_rtx): Add definitions.
        !          1469:        (get_condition, compare_from_rtx): Likewise.
        !          1470:        * rtl.h  (STORE_FLAG_VALUE): Provide a default value of 1.
        !          1471:        (reg_set_last): Add definition.
        !          1472:        (const_true_rtx): New variable.
        !          1473:        * cse.c: Remove defaulting of STORE_FLAG_VALUE from here.
        !          1474:        (const_true_rtx): Remove static version; now global.
        !          1475:        * emit-rtl.c (const_true_rtx): Define here.
        !          1476:        (gen_rtx): Return const_true_rtx for CONST_INT of STORE_FLAG_VALUE.
        !          1477:        (init_emit_once): Initialize const_true_rtx.
        !          1478:        * expmed.c (emit_store_flag): Rewritten.  Is passed the operands
        !          1479:        to compare in addition to the compare operation and emits both the
        !          1480:        comparison and the store-flag insn.
        !          1481:        Handles special-case of testing for A < 0 and A >= 0.
        !          1482:        If result is constant, just return it.
        !          1483:        Accepts an argument saying how to normalize the result and does
        !          1484:        appropriate normalization.
        !          1485:        Give preference to using the sign bit rather than the low-order bit.
        !          1486:        Allow sxx insns to fail.
        !          1487:        If don't have seq or sne insns, can sometimes do with abs.
        !          1488:        * expr.c (expand_expr, case COND_EXPR): For X ? A + 1 : A, only
        !          1489:        do store_flag if it is cheap.
        !          1490:        (do_jump): True comparisons return STORE_FLAG_VALUE, not 1.
        !          1491:        (compare_constants): Correctly handle unsigned comparisons.
        !          1492:        Return STORE_FLAG_VALUE, not 1, for true comparison.
        !          1493:        (compare_from_rtx): New name for compare1.
        !          1494:        Accept size and alignment, for BLKmode.
        !          1495:        No longer statuc.
        !          1496:        (compare, compare_from_rtx): No need to pass forward and reverse codes;
        !          1497:        can trivially derive the reverse code from the forward one.
        !          1498:        All callers changed.
        !          1499:        If one operand is constant, make it the second one.
        !          1500:        (compare): Let compare1 do most of the work.
        !          1501:        (do_store_flag): Rewritten, now lets emit_store_flag do most of
        !          1502:        the work.
        !          1503:        Handles the special-case of comparing a single bit with zero.,
        !          1504:        Add additional argument ONLY_CHEAP; if non-zero, fail if it looks like
        !          1505:        this will be an expensive operation; all callers changed.
        !          1506:        If it looks like it will be possible to do a store-flag operation,
        !          1507:        call emit_store_flag; if it can't do it, emit as assignments and a
        !          1508:        jump.  If it doesn't look possible to do a store-flag operation, return
        !          1509:        zero before expanding anything.
        !          1510:        * final.c: (final_scan_insn): Don't check STORE_FLAG_VALUE; if the
        !          1511:        insn doesn't exist, we won't try to change it.
        !          1512:        * genemit.c (gen_exp): Use const_true_rtx when appropriate.
        !          1513:        * genrecog.c (add_to_sequence): Likewise.
        !          1514:        (try_merge_1): Two nodes aren't identical if they are to test
        !          1515:        different modes or if they have different values of EXACT.
        !          1516:        * integrate.c: Don't supply a default value for STORE_FLAG_VALUE here.
        !          1517:        * jump.c: Now includes expr.h (for emit_store_flag and get_condition).
        !          1518:        (jump_optimize): Split optimization that made store-flag insn
        !          1519:        into three separate optimizations, the first two of which are useful
        !          1520:        even in the absence of store-flag operations.
        !          1521:        (can_reverse_comparison): Set and use of cc0 must be immediately
        !          1522:        adjacent.
        !          1523:        (mark_jump_label): Abort if LABEL_REF codesn't contain a CODE_LABEL.
        !          1524:        Consider two labels adjacent after reload if separated by just USE or
        !          1525:        CLOBBER insns.
        !          1526:        * loop.c: Now includes real.h.
        !          1527:        (get_condition_for_loop): New function.  All callers of get_condition
        !          1528:        in this file now call this function.
        !          1529:        (strength_reduce): no_labels_between_p now skips FROM.
        !          1530:        (get_condition): No longer static.
        !          1531:        Refine cases when we can't reverse a comparison operation.
        !          1532:        * optabs.c (init_optabs): Initialize and define setcc_gen_code
        !          1533:        instead of setcc_gen_fctn.
        !          1534:        * rtlanal.c (no_labels_between_p): Skip FROM, like as ..._between_...
        !          1535:        functions do.
        !          1536:        (no_labels_between): Deleted.
        !          1537:        (reg_set_last, reg_set_last_1): New functions.
        !          1538:        * Makefile.in (jump.o): Now include expr.h.
        !          1539:        (loop.o): Now includes real.h.
        !          1540: 
        !          1541:        * c-tree.h (int_ftype_cptr_cptr_sizet, ptr_ftype_ptr_cptr_sizet):
        !          1542:        New names.
        !          1543: 
        !          1544:        * alliant.md, i386.md, m68k.md, m88k.md, ns32k.md, sparc.md: Add mode
        !          1545:        to comparison operators (EQ, NE, etc.) to agree with the mode of the
        !          1546:        destination.
        !          1547:        * out-m88k.c (emit_test): Likewise.
        !          1548: 
        !          1549: Fri Dec 14 00:12:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1550: 
        !          1551:        * c-decl.c (finish_struct): Strip NON_LVALUE_EXPR from field width.
        !          1552: 
        !          1553: Thu Dec 13 13:10:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1554: 
        !          1555:        * cplus-init.c (expand_vec_init): Add missing arg to
        !          1556:        expand_exit_loop_if_false.
        !          1557: 
        !          1558:        * config.gcc (tron): Alias for gmicro.
        !          1559: 
        !          1560:        * c-decl.c (int_ftype_cptr_cptr_sizet): Variable renamed.
        !          1561:        (ptr_ftype_ptr_cptr_sizet): Likewise.
        !          1562: 
        !          1563:        * gcc.c (default_compilers): Handle .C.
        !          1564: 
        !          1565:        * Makefile.in (enquire.o): Add -I. so can find stddef.h.
        !          1566:        (install-cross): Install cc1obj like the others.
        !          1567: 
        !          1568:        * Makefile.in (gnulib.target): Renamed from gnulib.
        !          1569:        (gnulib): Renamed from tmpgnulib.  Rename that file in this rule.
        !          1570:        Also delete stamp-gnulib2 here.
        !          1571:        (gnulib.portable, gnulib.convert): Input now is named gnulib.
        !          1572:        (GNULIB_TARGET, GNULIB2_TARGET): Define these vars (already in use).
        !          1573:        (gnulib2.target): Renamed from gnulib2.
        !          1574:        (gnulib2): New rule, alias for gnulib2.target.
        !          1575: 
        !          1576:        * local-alloc.c (local_alloc): Cast an enum used as index.
        !          1577:        * optabs.c (emit_indirect_jump): Likewise.
        !          1578:        * reload1.c (choose_reload_regs): Likewise.
        !          1579: 
        !          1580: Thu Dec 13 12:38:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1581: 
        !          1582:        * expmed.c (store_bit_field): Verify that operand 1 of movstrict
        !          1583:        satisfies its predicate.
        !          1584: 
        !          1585: Wed Dec 12 17:26:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1586: 
        !          1587:        * gvarargs.h: Avoid duplicate inclusion using _VARARGS_H.
        !          1588: 
        !          1589: Wed Dec 12 14:11:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1590: 
        !          1591:        * tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed condition
        !          1592:        code register.  As a temporary measure, NOTICE_UPDATE_CC is used
        !          1593:        to track swapped cmpsi cases.
        !          1594: 
        !          1595:        * m88k.md (shift patterns): Deal with TARGET_*_LARGE_SHIFT
        !          1596:        uniformly with define_expand.  Make gen_lshlsi3 generate ASHIFT
        !          1597:        and eliminate the optimization patterns using ASHIFT.  Eliminate
        !          1598:        other optimization patterns that will be handled by combine.
        !          1599: 
        !          1600: Tue Dec 11 22:13:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1601: 
        !          1602:        * expr.c (convert_move): With slt, handle dest that's invalid.
        !          1603: 
        !          1604:        * stmt.c, tree.h (stmt_nesting):
        !          1605:        Typedef deleted; use `struct nesting *'.
        !          1606:        * stmt.c (expand_start_cond): If exitable, make an exit label.
        !          1607: 
        !          1608: Tue Dec 11 21:28:56 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1609: 
        !          1610:        * combine.c (subst, case SUBREG): Update TO for earlier
        !          1611:        changes so we can always detect (subreg (mem ...)).
        !          1612: 
        !          1613: Tue Dec 11 10:56:53 1990  Craig Burley (burley at pogo.ai.mit.edu)
        !          1614: 
        !          1615:        * stmt.c (expand_start_loop{,_continue_elsewhere}): Return pointer
        !          1616:        to nesting structure (new type stmt_nesting).
        !          1617:        (expand_exit_loop{,_if_false},expand_continue_loop): Accept pointer
        !          1618:        to nesting structure, substitute loop_stack if 0 (same behavior as
        !          1619:        before when there was no argument), so F90 CYCLE and EXIT statements
        !          1620:        (like C's continue and break stmts) can refer to other than the
        !          1621:        innermost loop.
        !          1622:        (expand_start_cond): Uses new names for if-related labels that
        !          1623:        reflect addition of "elseif" call, and sets endif_label to whatever
        !          1624:        exit_label gets set to (so we don't generate two identical labels
        !          1625:        for languages from which if is exitable via expand_exit_something).
        !          1626:        (expand_start_elseif): New function, used by Fortran.
        !          1627:        (expand_start_else): Moved above _end_cond so these four functions
        !          1628:        appear in the order they get called; uses new names, and fills in
        !          1629:        only endif_label if needed, not exit_label.
        !          1630:        (expand_end_cond): Handles end of any if, not just if-without-else.
        !          1631:        Generates both labels for next else/elseif pending (there was none)
        !          1632:        and the endif itself, if they exist (and there will always be at least
        !          1633:        one).
        !          1634:        (expand_end_else): Gone, call expand_end_cond instead.
        !          1635:        * c-parse.y, cplus-parse.y, objc-parse.y: Pass new 0 argument to
        !          1636:        expand_..._loop_... to indicate the innermost loop; call
        !          1637:        expand_end_cond instead of expand_end_else.
        !          1638:        * tree.h: Typedef for stmt_nesting returned by expand_start_loop...
        !          1639:        and change their return types accordingly.
        !          1640: 
        !          1641: Mon Dec 10 06:59:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1642: 
        !          1643:        * combine.c (check_asm_operands): Delete from here.
        !          1644:        * recog.c (check_asm_operands): Move to here; no longer static.
        !          1645:        (validate_change): Don't assume change is valid is asm_noperands >= 0.
        !          1646:        If recog_memoized returns < 0, accept change if asm_noperands >= 0
        !          1647:        and check_asm_operands returns non-zero.
        !          1648:        (apply_change_group): Likewise.
        !          1649:        (validate_replace_rtx_1): Swap operands on commutative operation
        !          1650:        if first is constant.
        !          1651:        Use plus_constant to simplify a PLUS with CONST_INT as second operand.
        !          1652: 
        !          1653:        * reload.c (find_equiv_reg): We must have a stable SP if GOAL is
        !          1654:        a MEM that uses SP.
        !          1655: 
        !          1656:        * combine.c (try_combine): Don't do anything if I2 or I1
        !          1657:        has an ASM_OPERANDS and CLOBBERS; we'll need those clobbers
        !          1658:        and it is too messy to try to get things set up correctly.
        !          1659: 
        !          1660: Sun Dec         9 22:07:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1661: 
        !          1662:        * cccp.c (collect_expansion): Don't check for /* */ concat here.
        !          1663:        (macroexpand): Always use raw arg if traditional.
        !          1664: 
        !          1665:        * c-parse.y (unary): Mark address of label as constant.
        !          1666: 
        !          1667: Sun Dec         9 14:45:34 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1668: 
        !          1669:        * cplus-class.c (propagate_basetype_offsets): Take effect on ASSOC
        !          1670:        before recursive calling.
        !          1671:        (finish_struct): Call `layout_decl' with zero for KNOWN_ALIGN
        !          1672:        when laying out TYPE_DECL.
        !          1673:        * cplus-tree.c (assoc_value): Change recursion condition to compare
        !          1674:        ASSOC_VALUE (assoc) against TYPE_MAIN_VARIANT (type) instead of just
        !          1675:        against type.
        !          1676: 
        !          1677: Sat Dec         8 10:40:00 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1678: 
        !          1679:        * m88k.md (attributes): Reorganize and include a block diagram.
        !          1680:        Make better use of defaults.
        !          1681:        * m88k.md (peephole), out-m88k.c, tm-m88k.h (short_branch): Add
        !          1682:        the sparc peepholes for changing bsr/br into bsr.n/addu or
        !          1683:        bsr.n/subu.  Install the length attribute for this.  Requires the
        !          1684:        use of `def' to accomodate broken assemblers in the bsr.n/addu
        !          1685:        case.
        !          1686: 
        !          1687: Fri Dec         7 06:12:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1688: 
        !          1689:        * reorg.c (find_end_label): Increment usage count of label we return
        !          1690:        so we know it won't go away.
        !          1691:        (dbr_schedule): Decrement count of end label and delete it if dead.
        !          1692: 
        !          1693: Wed Dec         5 17:36:23 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1694: 
        !          1695:        * m88k.md: Add instruction attributes for scheduling and delay
        !          1696:        slot information.
        !          1697:        * m88k.md (addsi pattern): Adding large constants does arise.
        !          1698:        (udivsi pattern): Wrong predicate.
        !          1699:        * tm-m88k.h, out-m88k.c (NOTICE_UPDATE_CC): Do so using
        !          1700:        attributes.
        !          1701: 
        !          1702:        * make-m88k, make-m88kdgux: Say how to create m88k-trace.asm.
        !          1703: 
        !          1704: Wed Dec         5 13:52:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1705: 
        !          1706:        * optabs.c (expand_binop): Support insn_before == 0.
        !          1707: 
        !          1708:        * function.c (optimize_bit_field): Fix wrong arg to validate_change.
        !          1709: 
        !          1710:        * Makefile (includes): Export LIB.
        !          1711: 
        !          1712: Wed Dec         5 13:31:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1713: 
        !          1714:        * combine.c (try_combine): Don't discard CLOBBERs from an insn
        !          1715:        with ASM_OPERANDS.
        !          1716: 
        !          1717: Tue Dec         4 16:12:21 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1718: 
        !          1719:        * tm-m88k.h, out-m88k.c, m88k.md: More cleanups: introduce
        !          1720:        POWER_OF_2 for tests (x && (x & (x-1) == 0); rename predicate
        !          1721:        functions *_p instead of *_operand; cleanup addsi3 insns; simplify
        !          1722:        udivsi3 insns; simplify memory shift insns; make LOW_SUM and HIGH
        !          1723:        SImode instead of VOIDmode; add a predicate to the increment and
        !          1724:        test peephole insn; deal with setting SFmode to zero; delete bogus
        !          1725:        pattern for divide-by-power-of-2.
        !          1726:        * make-m88k, make-m88kdgux: dg88k-trace.asm is now m88k-trace.asm.
        !          1727:        Move movstr-m88k.sh to config/m88k-movstr.sh.
        !          1728: 
        !          1729: Mon Dec         3 19:08:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1730: 
        !          1731:        * Makefile.in (gnulib2.ready): New target.
        !          1732:        (stamp-gnulib2): Depend on that.
        !          1733:        Avoids recompiling gnulib2 each time cc1 changes.
        !          1734: 
        !          1735: Mon Dec         3 16:17:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          1736: 
        !          1737:        * tm-m88kdgux.h, xm-m88kdgux.h (SEPARATE_AUX_OUTPUT): Should be in
        !          1738:        xm-m88kdgux.h.
        !          1739:        * tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed literal
        !          1740:        synthesis register.  Reworked the addressing method to be like the
        !          1741:        sparc (uses HIGH and LO_SUM).  Numerous cleanups.  These changes
        !          1742:        are based on work done by Steve Chamberlain (steve@cygnus).
        !          1743:        * tm-m88k.h, out-m88k.c (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER):
        !          1744:        Implemented.
        !          1745: 
        !          1746: Mon Dec         3 15:19:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1747: 
        !          1748:        * cccp.c (special_symbol): Use time_t as type of t.
        !          1749: 
        !          1750:        * m88k-movstr.sh, m88k-trace.asm, va-m88k.h: New files.
        !          1751: 
        !          1752:        * gcc.c: Don't define R_OK, etc. if already defined.
        !          1753: 
        !          1754:        * out-sparc.c (finalize_pic, emit_move_sequence, output_arc_profiler):
        !          1755:        Finish change to emit HIGH and LO_SUM as Pmode instead of VOIDmode.
        !          1756: 
        !          1757: Sun Dec         2 22:13:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1758: 
        !          1759:        * config.gcc (tower): New alternative.
        !          1760:        (mips-news): Adapt for version 2.
        !          1761: 
        !          1762:        * tm-tower.h, tm-tower-as.h, xm-tower.h: New files.
        !          1763: 
        !          1764: Sun Dec         2 17:47:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1765: 
        !          1766:        * reload1.c (eliminate_regs, case ASM_OPERANDS): Fix typo in testing
        !          1767:        for changed vector.
        !          1768: 
        !          1769:        * out-rs6000.c (output_epilogue): Fix typo restoring general registers.
        !          1770:        (print_operand): Add new option %H.
        !          1771:        * rs6000.md: Add (clobber (reg:SI 64)) to many patterns even though
        !          1772:        they don't clobber MQ to allow combining to work well.  This will be
        !          1773:        removed once combine knows how to add clobbers when required.
        !          1774:        Change patterns to reflect new canonicalization rules.
        !          1775:        Where we have (and (xshift)), add patterns for (zero_extend (xshift)).
        !          1776:        (andsi3, xorsi3): Fix bug in case where two insns are needed.
        !          1777:        (moveti): Don't call change_address when in reload.
        !          1778:        (sign_extend): Add patterns for sign extend preceeded or followed by
        !          1779:        one of the shifts it will do.  Use %H to output the merged shift.
        !          1780: 
        !          1781:        * out-romp.c (print_operand): Allow exact_log2 result to be zero.
        !          1782:        * romp.md: Likewise.
        !          1783:        * tm-romp.h (CONST_OK_FOR_LETTER): Likewise.
        !          1784: 
        !          1785:        * a29k.md (type attribute): Add types for floating-point insns.
        !          1786:        (in_delay_slot attribute): Update to allow for new types.
        !          1787:        (function_unit definitions): Add definitions for floating-point units.
        !          1788:        (andcb*3): Delete obsolete names.
        !          1789:        (convert insn): Use register_operand instead of gen_reg_operand for
        !          1790:        floating-point operand.
        !          1791:        (cpeq, feq, deq, etc): New patterns.
        !          1792:        (floating-point arithmetic): Add support for 29050 insns and
        !          1793:        accumulators; indicate function unit usage.
        !          1794:        (ior/and patterns): Put NOT as second operand.
        !          1795:        (orn insn): New, for 29050.
        !          1796:        (load patterns): If using match_operator, make it the highest operand
        !          1797:        number.
        !          1798:        (loadm insns): Add workaround for rev A1 bug on 29050.
        !          1799:        (negsf2, negdf2): Don't use XOR to negate on 29050.
        !          1800:        (movsf, movdf): Add support for accumulators on 29050.
        !          1801:        (movsi, movhi, movqi): No need to support special->special copies.
        !          1802:        Support consthz insn on 29050.
        !          1803:        (compare, scc, and branch insns): Rework to not use cc0.  Use a pseudo
        !          1804:        register instead.  Compare doesn't generate any code, but merely
        !          1805:        saves the operands.  scc and branch then emit the appropriate compare
        !          1806:        and jump (if branch) insns.
        !          1807:        (tstsi): Delete pattern; not used when no cc0.
        !          1808:        (peepholes): Remove peepholes to convert jumps to scc insns; now
        !          1809:        done in jump.c.
        !          1810:        * out-a29k.c (a29k_compare_*): New variables.
        !          1811:        (long_const_operand): Anything with low-order 16 bits zero is not a
        !          1812:        long constant on the 29050.
        !          1813:        (accum_reg_operand): New function.
        !          1814:        (gen_reg_operand): Returns false for accumulator registers.
        !          1815:        (output_operand): Allow accumulators.
        !          1816:        (ne_comparison_p, fp_comparison_p, return_peep_operand): Deleted.
        !          1817:        (fp_comparison_operator, branch_operator): New functions.
        !          1818:        (output_compare): Deleted.
        !          1819:        (print_operand): Change meaning of %b and %B.
        !          1820:        Add new code %J.
        !          1821:        * tm-a29k.h (TARGET_VERSION): Say if compiling for 29050.
        !          1822:        (TARGET_FLAGS): Add -29000 to turn off support for 29050; this is
        !          1823:        still the default.
        !          1824:        (various register macros): Add support for the floating-point
        !          1825:        accumulators on the 29050.
        !          1826:        (CONST_OK_FOR_LETTER): Use 'O' for a constant that can be set using
        !          1827:        conthz on the 29050; keep old definition for 29000.
        !          1828:        (STORE_FLAG_VALUE): Now 0x80000000.
        !          1829:        (ASM_FILE_START): Write ".cputype 29050" when compiling for 29050.
        !          1830: 
        !          1831:        * combine.c (subst): Put NOT, NEG, MULT, PLUS, and MINUS as the
        !          1832:        first operand of commutative operations.  Note that NOT used to be
        !          1833:        put as the second operand but it has always been assumed that 
        !          1834:        MULT would be the first operand in address expressions, so we have
        !          1835:        to change the previous canonicalization.  This is possible now that we
        !          1836:        have eliminated the andcbm3 operations.
        !          1837:        * i860.md (andnot): Remove obsolete andcbsi3 name and place NOT
        !          1838:        as first operand.
        !          1839:        * m68k.md (fpm*): Delete patterns with MULT as second operand and
        !          1840:        use "@" construct when possible.
        !          1841:        * m88k.md (and.c, ior.c): Remove obsolete andcbsi3 and iorcbsi3 names.
        !          1842:        Delete patterns with NOT as second operand.
        !          1843:        (xor.c): Rewrite in new canonical form.
        !          1844:        * mips.md (nor): Rewrite in new canonical form.
        !          1845:        * pyr.md (bicw): Remove pattern with NOT as first operand, removing
        !          1846:        obsolete name andcbsi3 in the process.
        !          1847:        * sparc.md: Remove patterns with NOT as first operand.
        !          1848:        Remove obsolete names andcbsi3, iorcb3, and xorcbsi3.
        !          1849:        Rewrite xnor into new canonicalized form.
        !          1850:        Add mode to HIGH and LO_SUM operations.
        !          1851:        * vax.md (bic*): Remove obsolete andcbm3 names.
        !          1852:        Put NOT as first operand when both generating and recognizing RTL.
        !          1853:        (jlbc): Rewrite with NOT as first operand.
        !          1854: 
        !          1855: Sun Dec         2 17:08:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1856: 
        !          1857:        * m68k.md (recognizer for casesi_2): Handle ASM_RETURN_CASE_JUMP.
        !          1858: 
        !          1859:        * stddef.h (ptrdiff_t): Prevent definition, as with size_t.
        !          1860: 
        !          1861: Sat Dec         1 16:31:30 1990  Ron Guilmette  (rfg at ncd.com)
        !          1862: 
        !          1863:        * dwarfout.c (lookup_filename, dwarfout_finalize): changed from
        !          1864:        maintaining a linked list of filename entries to maintaining an
        !          1865:        (expandable) array of filename entries instead.  Also, changed
        !          1866:        code so that *all* filename strings are output (to the .files
        !          1867:        section of the asm file) in one swell foop just as the asm file is
        !          1868:        being finalized rather than writing out new filenames one-by-one
        !          1869:        as they arise (as previously). This circumvents a problem caused
        !          1870:        by rfg's naive assumption that assemblers kept a stack of prior
        !          1871:        section names (of depth > 1) which could be successively popped
        !          1872:        via multiple `previous' directives.  For some assemblers, the
        !          1873:        depth of the stack is only 1 and they can get confused if you do
        !          1874:        two (or more) `previous' directives in a row.  Anyway, it is no
        !          1875:        longer either necessary or useful to do that, so who cares.
        !          1876: 
        !          1877:        * dwarfout.c: added code to output newlines to the asm file just
        !          1878:        prior to each and every change of section (for better readability
        !          1879:        of the asm files).
        !          1880: 
        !          1881:        * dwarfout.c: changed code so that if DWARF_DESCRIBE_USED_EXTERNS
        !          1882:        is defined, it forces DWARF_LOCATION_ATTRIBUTES to also be defined.
        !          1883: 
        !          1884:        * dwarfout.c: changed code so that if DWARF_LOCATION_ATTRIBUTES
        !          1885:        is defined, it forces DWARF_DESCRIBE_FILES to be defined (to `1').
        !          1886: 
        !          1887:        * dwarfout.c: changed code so that if DWARF_DESCRIBE_FILES is not
        !          1888:        already defined (in the user's tm.h file) it will automatically be
        !          1889:        defined (by default) to `1'.  Also changed all instances of
        !          1890:        `#ifdef DWARF_DESCRIBE_FILES' to `#if DWARF_DESCRIBE_FILES'.
        !          1891:        The user must now intentionally *disable* this feature (by
        !          1892:        defining DWARF_DESCRIBE_FILES to `0' in his tm.h file) if he
        !          1893:        wishes to have the additional information about files suppressed.
        !          1894: 
        !          1895:        * dwarfout.c: changed comments relating to optional defines for
        !          1896:        extended GNU DWARF features to include more information and to
        !          1897:        add some additional clarity.
        !          1898: 
        !          1899: Sat Dec         1 16:00:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1900: 
        !          1901:        * combine.c (subst): Call reverse_condition instead of
        !          1902:        reverse_comparison.
        !          1903:        We are allowed to reverse floating-point EQ and NE comparisons.
        !          1904: 
        !          1905:        * combine.c (subst): Call simplify_and_const_int for all AND
        !          1906:        and ZERO_EXTEND cases and all cases where we make one of them.
        !          1907:        Remove all other code in AND and ZERO_EXTEND cases.
        !          1908:        (simplify_and_const_int): Rewritten to follow a consistent model
        !          1909:        of tracking what AND's need to be done and which bits are not
        !          1910:        significant.  Consistently try a ZERO_EXTEND for all cases where
        !          1911:        the result is an AND with a mode-wide mask.  Move all remaining
        !          1912:        cases from AND any ZERO_EXTEND cases from subst.
        !          1913: 
        !          1914: Sat Dec         1 09:13:17 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1915: 
        !          1916:        * cplus-tree.h (lang_type): Remove any_assigns_this,
        !          1917:        none_assigns_this from type_flags.
        !          1918:        * cplus-decl2.c (get_temp_name): If the initializer is a
        !          1919:        pointer to zero, cache it in EMPTY_TABLE.
        !          1920:        (finish_builtin_type): New function, to factor common code
        !          1921:        arising from building internal structures.
        !          1922:        * cplus-decl.c (init_decl_processing): Call it.
        !          1923: 
        !          1924: Fri Nov 30 10:39:04 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          1925: 
        !          1926:        * cplus-decl.c (finish_function): Use CLASSTYPE_ASM_WRITTEN instead
        !          1927:        of TREE_USED to indicate that we need debugging info for
        !          1928:        TTYPE.
        !          1929:        Note that nobody ever sets EXTENDED_DBX_DEBUG.  For now,
        !          1930:        change to test DBX_DEBUG.  For later, change everything to
        !          1931:        key off of EXTENDED_DBX_DEBUG.  
        !          1932:        Also, set `warn_return_type' to one always, since this warning
        !          1933:        is too valuable to lose.
        !          1934:        * cplus-tree.c (lang_output_debug_info): Don't test TREE_USED.  That
        !          1935:        field is already used by other routines, and we have all we need now
        !          1936:        in CLASSTYPE_ASM_WRITTEN.
        !          1937:        * cplus-dbxout.c (dbxout_type_method_1): Handle const,
        !          1938:        volatile, and const/volatile member functions.
        !          1939: 
        !          1940: Fri Nov 30 04:51:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          1941: 
        !          1942:        * combine.c (reg_last_set_value): New variable.
        !          1943:        (combine_instructions): Allocate and initialize it.
        !          1944:        (record_dead_and_set_regs): Set reg_last_value to source
        !          1945:        of assignment; clear it for a CLOBBER or partial assignment.
        !          1946:        (subst): Use reg_last_set_value instead of interpreting the
        !          1947:        insn in reg_last_set as if it was a single SET.
        !          1948: 
        !          1949:        * combine.c (gen_lowpart_for_combine): Call gen_lowpart for CONST_INT.
        !          1950:        When making a new MEM, copy MEM_VOLATILE_P and MEM_IN_STRUCT_P.
        !          1951:        If cannot recognize the argument, just form a SUBREG; usually,
        !          1952:        it won't be recognized, but sometimes will allow further
        !          1953:        simplifications.
        !          1954: 
        !          1955:        * regclass.c (reg_scan): Save size of uid map; reallocate if
        !          1956:        we have more registers than we allocated.
        !          1957:        Leave some extra room in map.
        !          1958: 
        !          1959:        * stmt.c (emit_case_nodes): Supply missing argument to emit_cmp_insn.
        !          1960: 
        !          1961:        * fold-const.c (decode_field_reference): Add missing arg declaration.
        !          1962: 
        !          1963:        * expmed.c (store_bit_field): Add missing last argument to
        !          1964:        recursive call.
        !          1965: 
        !          1966:        * cse.c (cse_insn): Remove extra arg passed to rtx_equal_p.
        !          1967: 
        !          1968:        * Makefile.in (proto): Make protoize.1 and unprotoize.1.
        !          1969:        (protoize.1, unprotoize.1): New targets.
        !          1970:        (install_man): Install protoize.1 and unprotoize.1./
        !          1971:        * proto-unproto.1: New file.
        !          1972: 
        !          1973:        * loop.c (scan_loop): Properly set SET_SRC in movables entry for
        !          1974:        MOVE_INSN == 1 and CONSEC > 0 case.
        !          1975:        (force_movables): Don't look at SET_SRC when CONSEC > 0.
        !          1976: 
        !          1977:        * expr.c (expand_expr, case ARRAY_REF): Ensure TYPE_POINTER_TO
        !          1978:        gets initialized after we build a variant type.
        !          1979: 
        !          1980: Fri Nov 30 00:35:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1981: 
        !          1982:        * m68k.md (ashr of 16 to 24 bits): Use extl, not extw.
        !          1983: 
        !          1984: Thu Nov 29 21:41:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          1985: 
        !          1986:        * tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.
        !          1987: 
        !          1988:        * gcc.c (add_prefix): Add new element, don't replace old first elt.
        !          1989: 
        !          1990:        * dwarfout.c (dwarfout_finalize): Go to DEBUG_SECTION first thing.
        !          1991: 
        !          1992: Thu Nov 29 17:50:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
        !          1993: 
        !          1994:        * stmt.c (expand_end_loop): Stop looking for branch to the loop
        !          1995:        exit when we hit a NOTE_INSN_BLOCK_{BEG,END}.
        !          1996:        * jump.c (duplicate_loop_exit_test): Likewise.
        !          1997:        Also, only copy line-number notes.
        !          1998: 
        !          1999:        * integrate.c (expand_inline_function): Call expand_expr for the
        !          2000:        arguments before allocating maps that are based on register numbers.
        !          2001: 
        !          2002:        * loop.c (loop_reg_used_before_p): Accept new argument, SET, to
        !          2003:        indicate which part of INSN is setting the relevant register.
        !          2004:        (scan_loop): Pass new arg to loop_reg_used_before_p.
        !          2005: 
        !          2006:        * function.c (optimize_bit_field): Don't assume ZERO_EXTRACT can
        !          2007:        be replaced by MEM; use validate_change to check.
        !          2008: 
        !          2009:        * reload.c (find_reloads_toplev): Add missing arg to recursive call.
        !          2010: 
        !          2011:        * calls.c (expand_call): Correct two cases of missing mode to gen_rtx.
        !          2012: 
        !          2013: Thu Nov 29 02:42:35 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2014: 
        !          2015:        * version.c: Bump version number to 1.90.04.
        !          2016: 
        !          2017:        * toplev.c (rest_of_compilation): If FLAG_PIC is nonzero, emit any
        !          2018:        special PIC code once we start really compiling a function (i.e., we
        !          2019:        are not in an inline function).  Inline functions cannot
        !          2020:        meaningfully hold PIC code because there is no notion of position
        !          2021:        independence in code that isn't really being written down.
        !          2022: 
        !          2023:        * Makefile.in: Don't build cplus-cadillac.o by default.  Build
        !          2024:        cplus-edsel.o instead.  Until Lucid frees their programming
        !          2025:        environment, their Cadillac will always be an Edsel to GNUsers.
        !          2026: 
        !          2027:        * stmt.c (fixup_gotos): Change loop to run in two passes so that
        !          2028:        cleanups don't experience a race condition.
        !          2029:        (expand_cleanups): Replace Nov 5 word-around with consistency check.
        !          2030:        The same cleanups should never be run twice.
        !          2031: 
        !          2032:        * cplus-decl.c (lang_{init,finish}): Move these functions...
        !          2033:        cplus-lex.c: ...to here.  Also, make change to lang_init analogous
        !          2034:        to Nov 27 change for C compiler.
        !          2035: 
        !          2036:        * cplus-decl.c (pushdecl): Don't warn about static/extern conflicts
        !          2037:        if X is a TYPE_DECL.
        !          2038:        (build_enumerator): Certain CONST_INT nodes cannot be coopted to be
        !          2039:        the constant for enumerator.  Mark them as non-shareable and don't
        !          2040:        coopt them.
        !          2041: 
        !          2042:        * cplus-decl.c (lang_{init,finish}): Declare these to be void
        !          2043:        functions to match new tree.h.
        !          2044: 
        !          2045: Wed Nov 28 18:48:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2046: 
        !          2047:        * reload1.c (eliminate_regs): Convert (subreg (mem)) to (mem) when
        !          2048:        not a paradoxical SUBREG.
        !          2049: 
        !          2050: Wed Nov 28 17:15:43 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2051: 
        !          2052:        * emit-rtl.c (gen_label_rtx): Clear LABEL_NAME via gen_rtx.
        !          2053: 
        !          2054: Tue Nov 27 21:54:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2055: 
        !          2056:        * varasm.c (assemble_external): Never write a .extern for a static
        !          2057:        name.
        !          2058: 
        !          2059:        * recog.c (validate_replace_rtx_1): Handle making a SUBREG of a MEM
        !          2060:        by trying a new MEM.
        !          2061: 
        !          2062: Tue Nov 27 11:54:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2063: 
        !          2064:        * c-lang.c, objc-action.c: Include input.h.
        !          2065:        (lang_init): Call check_newline here.
        !          2066:        * toplev.c (compile_file): Not here.
        !          2067:        Call lang_init after setting input_filename.
        !          2068: 
        !          2069:        * tree.h: Declare numerous functions that the front end must provide.
        !          2070: 
        !          2071:        * rtl.h (LABEL_REFS): Use operand 5, same as LABEL_NUSES.
        !          2072: 
        !          2073:        * toplev.c (warn_return_type, W_options): Handle -Wreturn-type here.
        !          2074:        * c-decl.c: Not here.
        !          2075:        * flags.h: Declare it here, not in c-tree.h.
        !          2076: 
        !          2077:        * gcc.c (pexecute): Wait and retry if fork fails.
        !          2078: 
        !          2079:        * expr.c (do_jump): Pass all args to get_inner_reference.
        !          2080:        (expand_assignment): Fix typo in arg to get_inner_reference.
        !          2081: 
        !          2082:        * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set.
        !          2083: 
        !          2084: Mon Nov 26 18:28:51 1990  Michael I Bushnell  (mib at churchy.ai.mit.edu)
        !          2085: 
        !          2086:        * cccp.c (handle_directive): Do backslash-newlines inside of
        !          2087:        strings.
        !          2088: 
        !          2089: Mon Nov 26 15:39:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2090: 
        !          2091:        * cccp.c (main): Handle -w.
        !          2092:        (warning): Do nothing if -w.
        !          2093:        * gcc.c (compilers): Pass -w to cpp.
        !          2094: 
        !          2095:        * c-decl.c (grokdeclarator): Don't discard arg types
        !          2096:        for prototype even if traditional.
        !          2097: 
        !          2098: Sun Nov 25 20:52:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2099: 
        !          2100:        * protoize.c: Undef CHAR_BIT, etc, before including limits.h.
        !          2101: 
        !          2102:        * reload1.c (old_asm_operands_vec, new_asm_operands_vec): 
        !          2103:        Type should point to a vector.
        !          2104:        (Eliminate_regs): For asm_operands, copy the vector properly.
        !          2105: 
        !          2106: Sun Nov 25 20:35:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
        !          2107: 
        !          2108:        * jump.c (jump_optimize): Fix typo in stack push combining code.
        !          2109: 
        !          2110:        * reload1.c (eliminate_regs): Ensure we share operands 3 and 4
        !          2111:        of ASM_OPERANDS operations if they were originally shared.
        !          2112:        Copy all rtx flags when making a new MEM.
        !          2113:        (eliminate_regs_in_insn): Initialize for ASM_OPERANDS sharing check.
        !          2114: 
        !          2115: Sun Nov 25 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2116: 
        !          2117:        * Makefile.in (stamp-gnulib2): Don't depend on gnulib2-indirect.
        !          2118: 
        !          2119:        * gcc.c (do_spec_1): Handle %W{...}.
        !          2120:        (default_compilers): Use %W{...} when passing -o option.
        !          2121: 
        !          2122: Sat Nov 24 16:39:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2123: 
        !          2124:        * cplus-lex.c (init_lex, do_pending_inlines, reinit_lang_specific):
        !          2125:        Add conditionals for __GNU_LIBRARY__.
        !          2126: 
        !          2127: Thu Nov 22 13:48:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2128: 
        !          2129:        * fold-const.c (optimize_bit_field_compare): Pass additional
        !          2130:        arg to get_inner_reference; it gets set if something was volatile.
        !          2131:        (decode_field_reference): New arg PVOLATILEP; passed to
        !          2132:        get_inner_reference.
        !          2133:        (merge_component_references): Add pointer to place to store if
        !          2134:        something is volatile to calls to decode_field_reference; don't
        !          2135:        do anything if it gets set (this may be very conservative).
        !          2136: 
        !          2137:        * stmt.c (expand_end_loop): Skip initial CODE_LABEL at start of
        !          2138:        loop when looking for qualified conditional exit.
        !          2139: 
        !          2140:        * reload.c (push_reload): If (subreg:M1 (reg:M2 ....)) and we
        !          2141:        have trouble access the register in M1, reload the reg, not subreg.
        !          2142:        Fix typo in testing for memory.
        !          2143:        (reload): Force reload of the operand in the above cases.
        !          2144: 
        !          2145: Wed Nov 21 17:39:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2146: 
        !          2147:        * loop.c (strength_reduce, combine_givs): Don't penalize
        !          2148:        non-replaceable givs unless they are user variables; temporaries
        !          2149:        are probably dead even though we can't prove it.
        !          2150: 
        !          2151:        * integrate.c (save_constants): Don't get confused by looking
        !          2152:        inside CONST_DOUBLE_MEM.
        !          2153:        Call recursively on what get_pool_constant returned, in case it
        !          2154:        was itself the address of a pool constant.
        !          2155:        (copy_for_inline, copy_rtx_and_substitute, restore_constants):
        !          2156:        Remake CONST_DOUBLE so it gets chained in correctly and we don't use
        !          2157:        obsolete CONST_DOUBLE_MEM values.  Call recusively on operand we are
        !          2158:        about to pass to force_const_mem; it might have been a case of a
        !          2159:        constant value being an address of another constant.
        !          2160: 
        !          2161:        * loop.c (find_mem_givs): Don't make a DEST_ADDR giv with mult_val == 1
        !          2162:        and add_val == 0.
        !          2163:        (maybe_eliminate_biv_1): Turn off elimination in (compare biv1 biv2)
        !          2164:        cases; they have problems.
        !          2165: 
        !          2166: Wed Nov 21 16:06:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2167: 
        !          2168:        * dwarfout.c (location_attribute): Offset for bitfields is special.
        !          2169: 
        !          2170:        * expr.c (get_inner_reference): New arg pvolatilep.
        !          2171:        (expand_expr, expand_assignment): Use to set MEM_VOLATILE_P.
        !          2172: 
        !          2173: Wed Nov 21 10:34:25 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2174: 
        !          2175:        * stor-layout.c (layout_decl): Record whether a FIELD_DECL is a
        !          2176:        bit-field and if so its original type.
        !          2177:        * tree.h (DECL_BIT_FIELD_TYPE): New.
        !          2178:        * dbxout.c (dbxout_type): Use DECL_BIT_FIELD_TYPE.
        !          2179:        * dwarfout.c (output_member_die, bit_offset_attribute,
        !          2180:        bit_size_attribute, member_declared_type): Use DECL_BIT_FIELD_TYPE.
        !          2181:        * sdbout.c (sdbout_one_type): Use DECL_BIT_FIELD_TYPE.
        !          2182: 
        !          2183:        * sdbout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): New
        !          2184:        interfaces to compute the location of arguments and automatic
        !          2185:        variables.
        !          2186:        * dbxout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Likewise.
        !          2187: 
        !          2188:        * dbxout.c (dbxout_parms): Describe a parameter passed in
        !          2189:        registers but living on the stack as N_PSYM rather than N_LSYM.
        !          2190:        These are typically arg_pointer based locations.
        !          2191: 
        !          2192:        * out-m88k.c (m88k_debugger_offset): New function.
        !          2193:        * tm-m88k.h (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Replaces
        !          2194:        SDB_AUTO_NORMALIZE_OFFSET.
        !          2195:        * tm-m88k.h (STACK_BOUNDARY): Update to 16 byte aligned stacks.
        !          2196: 
        !          2197: Tue Nov 20 23:48:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2198: 
        !          2199:        * dwarfout.c (dwarfout_init): Set stack depth to 1 at start.
        !          2200:        (output_padded_null_die): New function.
        !          2201:        (dwarfout_finalize): Use that to ensure length divisible by 4.
        !          2202: 
        !          2203:        * ns32k.md (addsi3): Don't use `addr' for very large displacements.
        !          2204: 
        !          2205: Tue Nov 20 05:48:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2206: 
        !          2207:        * jump.c (can_reverse_comparison_p): It is safe to reverse an EQ
        !          2208:        or NE comparison, even if IEEE floating-point.
        !          2209: 
        !          2210:        * integrate.h (struct inline_remap): const_*_map now maps registers
        !          2211:        in calling function, not called function.
        !          2212:        Add fields to save values recorded from SETs.
        !          2213:        * integrate.c: Now includes insn-config.h and real.h.
        !          2214:        (expand_inline_function): New meaning for const_*_map.
        !          2215:        Don't fill in constant equivalences here; now done in try_constants.
        !          2216:        Show CALL_INSNs potentialy clobber all hard registers since we
        !          2217:        now record equivalences for hard registers.
        !          2218:        (try_constants): No longer need original RTL; all callers changed.
        !          2219:        Call note_stores to kill any known equivalences for registers changed.
        !          2220:        Record equivalences for PC, CC0, and registers set by this insn.
        !          2221:        (subst_constants): No longer need original RTL; all callers changed.
        !          2222:        Reflect new meaning of const_*_map.
        !          2223:        Perform more extensive constant folding, basically a subset of
        !          2224:        fold_rtx in cse.c; specifically, fold the result of comparison
        !          2225:        operations and IF_THEN_ELSE operations.
        !          2226:        Record the constant equivalences of SETs, if any.
        !          2227:        (try_fold_condition, const_equiv, fold_out_const_cc0): Deleted.
        !          2228:        * Makefile.in (integrate.o): Now includes insn-config.h and real.h.
        !          2229: 
        !          2230: Sat Nov 17 07:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2231: 
        !          2232:        * local-alloc.c (local_alloc): Don't allocate a reg that wants a
        !          2233:        class that has only one register; let global-alloc do it so that it
        !          2234:        can be given a GENERAL_REG if reload needs a spill reg of that class.
        !          2235: 
        !          2236:        * regclass.c (regclass, reg_class_record): Count savings in loops as
        !          2237:        being greater the same way we adjust reg_n_refs for loops in flow.c.
        !          2238: 
        !          2239:        * expmed.c (store_bit_field, extract_bit_field): Remove change of
        !          2240:        Oct 16; it causes problems with long long bit fields.
        !          2241: 
        !          2242:        * rtlanal.c (reg_overlap_mentioned_p): If called with a constant,
        !          2243:        return zero.  If called with a MEM, return 1 iff the second arg
        !          2244:        contains a MEM. 
        !          2245:        * reload.c (push_reload): Call reg_overlap_mentioned_p only if OUT
        !          2246:        is a MEM and then pass it the address of OUT.
        !          2247: 
        !          2248:        * cse.c (cse_insn): Refine when SRC_EQV, SRC, and DEST are added
        !          2249:        to the hash table.  SRC_EQV is not added to the hash table if it
        !          2250:        is volatile or equal to DEST and similarly for SRC.  DEST is not
        !          2251:        added to the hash table unless either SRC_EQV or SRC is.
        !          2252: 
        !          2253: Thu Nov 15 23:43:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2254: 
        !          2255:        * c-typeck.c (convert_for_assignment): Change warning message.
        !          2256: 
        !          2257: Thu Nov 15 18:44:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2258: 
        !          2259:        * stmt.c (expand_end_loop): Generalize code to look for more
        !          2260:        than one branch to the exit and include unconditional branches
        !          2261:        to the exit; move the whole range to the end of the loop.
        !          2262:        * jump.c (duplicate_loop_exit_test): New function.
        !          2263:        (jump_optimize): Call it.
        !          2264:        Don't allocate jump_chain until we have finished deleting dead code.
        !          2265:        Leave some more room in jump_chain.
        !          2266:        (simplejump_p): Reject if not JUMP_INSN.
        !          2267:        (delete_insn): If simplejump_p, remove from jump chain.
        !          2268:        * loop.c (loop_skip_over): Deleted.
        !          2269:        (scan_loop): No longer call it.
        !          2270:        * cse.c (predecide_loop_entry): Deleted.
        !          2271:        (cse_basic_block): No longer call it.
        !          2272: 
        !          2273: Thu Nov 15 18:00:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2274: 
        !          2275:        * math-68881.h (HUGE_VAL): Add extra braces for Sun.
        !          2276: 
        !          2277:        * stor-layout.c (layout_type): Don't let array have less
        !          2278:        alignment than its mode calls for.
        !          2279: 
        !          2280: Thu Nov 15 13:05:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2281: 
        !          2282:        * sdbout.c (sdbout_parms, sdbout_reg_parms): Reimplemented based
        !          2283:        on dbxout_parms and dbxout_reg_parms.
        !          2284: 
        !          2285: Wed Nov 14 08:48:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2286: 
        !          2287:        * emit-rtl.c (emit_...): All of these now return the last insn
        !          2288:        emitted; previously some of them returned void.
        !          2289:        (emit_barrier_before): New function, similar to others.
        !          2290:        * rtl.h: All emit_... functions now return an rtx; reorder so
        !          2291:        declarations are in the same order as definitions in emit-rtl.c.
        !          2292: 
        !          2293:        * reorg.c (steal_delay_list_from_{target,fallthrough}): Add missing
        !          2294:        test when checking candidate insn for resource conflicts.
        !          2295: 
        !          2296: Wed Nov 14 07:08:19 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2297: 
        !          2298:        * c-parse.y (pushlevel, compstmt): Place a line note at the first
        !          2299:        token beginning a block and at the close brace ending a block.
        !          2300:        These are the conventional locations for SDB and DWARF debugging
        !          2301:        information.
        !          2302: 
        !          2303: Tue Nov 13 18:16:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2304: 
        !          2305:        * function.c (assign_stack_local): If alignment not specified
        !          2306:        and not BLKmode, use at least word alignment.
        !          2307:        (assign_outer_stack_local): Likewise.
        !          2308: 
        !          2309:        * sparc.md: Turn off patterns that specify no_ov or CC_NO_OVERFLOW.
        !          2310: 
        !          2311:        * dwarfout.c (file_attribute): Fix arg to ASM_OUTPUT_DWARF_ATTRIBUTE.
        !          2312:        (AT_line, AT_file): New definitions.
        !          2313: 
        !          2314:        * out-i860.c (output_block_move): Move .Lm%3 down one insn.
        !          2315: 
        !          2316:        * c-decl.c (grokdeclarator): -funsigned-bit-field doesn't affect enums.
        !          2317: 
        !          2318: Tue Nov 13 09:28:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2319: 
        !          2320:        * gcc.c (default_compilers): Report an error if -C is used without
        !          2321:        -E.  Pass -H to cpp.
        !          2322: 
        !          2323:        * sdbout.c (plain_type, plain_type1): save and output the
        !          2324:        rightmost array dimensions.
        !          2325: 
        !          2326:        * syms.h (enum sdb_type): Add T_VOID, equal in value to T_ARG.
        !          2327:        * sdbout.c (plain_type_1): Use T_VOID for VOID_TYPE and define it
        !          2328:        to be T_INT if not present in <syms.h>.
        !          2329: 
        !          2330:        * sdbout.c (sdbout_toplevel_data): Use abort rather than fatal.
        !          2331: 
        !          2332: Mon Nov 12 08:49:33 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2333: 
        !          2334:        * expr.c (compare): Fix use of GET_MODE_CLASS so we don't abort if
        !          2335:        MODE is VOIDmode.
        !          2336:        * optabs.c (init_optab): Call `xmalloc' instead of `malloc'.
        !          2337: 
        !          2338:        * out-sparc.c (hard_regno_mode_ok): Change initialization of array
        !          2339:        to match behavior of Nov 11 change for complex modes.
        !          2340: 
        !          2341:        * jump.c (delete_labelref_insn): Chase all LOG_LINKS of insn to try
        !          2342:        to delete references to LABEL.  This is needed for machines like
        !          2343:        SPARC which use multiple insns to get the value of LABEL into a
        !          2344:        register.
        !          2345: 
        !          2346: Mon Nov 12 16:07:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2347: 
        !          2348:        * machmode.def (SCmode, ...): Class is MODE_COMPLEX_FLOAT.
        !          2349: 
        !          2350: Sun Nov 11 00:27:34 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2351: 
        !          2352:        * tm-i860.h (HARD_REGNO_MODE_OK): Handle values more than 2 regs long.
        !          2353:        * tm-m68k.h (HARD_REGNO_MODE_OK): Likewise, for d7/a0 boundary.
        !          2354:        * tm-spur.h (HARD_REGNO_MODE_OK): Likewise, for 31/32 boundary.
        !          2355:        * tm-*.h (HARD_REGNO_NREGS): Use GET_MODE_NUNITS to handle
        !          2356:        complex values in fp registers on machines where one reg holds a DF.
        !          2357: 
        !          2358:        * sdbout.c (sdbout_one_type): Do nothing for incomplete type.
        !          2359: 
        !          2360:        * c-decl.c (duplicate_decls): Warning only when redefining built-in fn.
        !          2361: 
        !          2362:        * c-decl.c (init_decl_processing): Use sizetype, not unsigned long,
        !          2363:        in prototypes for memcpy and memcmp.
        !          2364: 
        !          2365:        * c-parse.y (component_decl): Don't read the semicolon here.
        !          2366: 
        !          2367:        * toplev.c (compile_file): Reverse top-level decls before output.
        !          2368: 
        !          2369: Sat Nov 10 22:27:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2370: 
        !          2371:        * stor-layout.c (layout_type): Use MODE_COMPLEX_{INT,FLOAT}.
        !          2372: 
        !          2373: Sat Nov 10 20:34:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2374: 
        !          2375:        * reload.c: Provide a default definition of REGISTER_MOVE_COST.
        !          2376: 
        !          2377: Sat Nov 10 01:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2378: 
        !          2379:        * cplus-init.c (emit_base_init): Don't use CLASSTYPE_ASSOC as a list
        !          2380:        of only immediate basetypes anymore.  Use `get_base_distance' to
        !          2381:        check whether a type is an immediate basetype or not.
        !          2382: 
        !          2383:        * stmt.c (expand_return): Don't emit a USE if VAL is a
        !          2384:        pseudo-register.
        !          2385: 
        !          2386:        * integrate.c (function_cannot_inline_p): Call to strcmp for
        !          2387:        "__builtin_va_alist" must use IDENTIFIER_POINTER not
        !          2388:        DECL_NAME.
        !          2389: 
        !          2390:        * genattrtab.c (check_attr_test): Use XSTR macro instead of
        !          2391:        XEXP macro in places where strings are used.
        !          2392: 
        !          2393:        * tree.c (type_hash_lookup): Have to check TYPE_DOMAIN for non-zero
        !          2394:        before comparing the equality of the possible lists.
        !          2395: 
        !          2396:        * cplus-typeck.c (build_c_cast): Check TREE_TYPE before checking
        !          2397:        that the TREE_TYPE is an OFFSET_TYPE.
        !          2398: 
        !          2399:        * cplus-typeck.c (c_expand_return): Use DECL_RESULT of
        !          2400:        current_function_decl instead of `result' since `result' might be
        !          2401:        set to zero.
        !          2402: 
        !          2403:        * cplus-decl.c (xref_tag): Fixed typo in setting
        !          2404:        TYPE_USES_COMPLEX_INHERITANCE.
        !          2405: 
        !          2406:        * cplus-tree.c (assoc_value): Changed interface to take COPYING
        !          2407:        parameter.
        !          2408:        * cplus-{class,init,search,tree}.c  All callers changed.
        !          2409: 
        !          2410:        * cplus-typeck.c (build_c_cast): Resolve OFFSET_REFs if the type we
        !          2411:        are converting to is not an OFFSET_TYPE.
        !          2412: 
        !          2413: Thu Nov         8 15:26:27 1990  Craig Burley  (burley at pogo.ai.mit.edu)
        !          2414: 
        !          2415:        * tm-*.h: Try to change HARD_REGNO_NREGS, HARD_REGNO_OK, and other
        !          2416:        macro defs to handle new complex type stuff.  Mostly guesswork; needs
        !          2417:        checking by people who really know each machine.
        !          2418:        * machmode.def (SCmode, DCmode, XCmode, TCmode): New complex modes.
        !          2419:        * machmode.h (GET_MODE_ALIGNMENT): New macro from stor-layout.c.
        !          2420:        * tree.c (build_complex_type): New function.
        !          2421:        * stor-layout.c (layout_type): Handle COMPLEX_TYPE.
        !          2422:        * expr.c (compare1, compare, move_block_to_reg, emit_push_insn):
        !          2423:        Change uses of GET_MODE_CLASS.
        !          2424:        * optabs.c (expand_binop, expand_twoval_binop, expand_unop):
        !          2425:        (emit_cmp_insn): Likewise.
        !          2426: 
        !          2427: Thu Nov         8 06:19:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2428: 
        !          2429:        * local-alloc.c (no_conflict_p): Initialize *WHERE_DEAD; previously
        !          2430:        uninitialized.
        !          2431: 
        !          2432: Thu Nov         8 01:08:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2433: 
        !          2434:        * c-parse.y (yylex): Size of wide STRING_CST counted terminator wrong.
        !          2435: 
        !          2436: Wed Nov         7 14:55:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2437: 
        !          2438:        * gnulib2.c (L_trampoline): Put it inside a dummy function.
        !          2439: 
        !          2440:        * enquire.c: Renamed from hard-params.c; new vers from [email protected].
        !          2441:        Modified to undef CHAR_BIT, etc. if defined in stdio.h.
        !          2442:        * Makefile.in (enquire): Targets renamed.
        !          2443:        (enquire.o): Define NO_MEM.
        !          2444: 
        !          2445: Wed Nov         7 14:18:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2446: 
        !          2447:        * jump.c (invert_jump): If it is going to fail (i.e., redirect_jump
        !          2448:        fails), don't invert the jump.
        !          2449: 
        !          2450:        * expr.c (expand_expr, case COND_EXPR): Don't accept a hard register
        !          2451:        as a target if we are going to store into it before testing the
        !          2452:        condition because that evaluation may involve a subroutine call
        !          2453:        which might clobber it.
        !          2454: 
        !          2455:        * jump.c (delete_jump): reg_set_p should be called with PATTERN (insn).
        !          2456:        (thread_jumps): Add omitted last argument to rtx_equal_for_thread_p.
        !          2457: 
        !          2458:        * reload.c (find_reloads): Only skip insns which set one hard register
        !          2459:        to another if the cost of doing so is low;  if not, there may not be
        !          2460:        a single insn to do the copy and we may need a reload register.
        !          2461: 
        !          2462: Wed Nov         7 00:01:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2463: 
        !          2464:        * c-parse.y (component_decl_list): Allow missing semi at end.
        !          2465: 
        !          2466:        * loop.c (move_movables): When moving and deleting library call,
        !          2467:        don't be confused if an insn is deleted.
        !          2468: 
        !          2469: Tue Nov         6 20:49:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2470: 
        !          2471:        * tm-m68k.h (TRANSFER_TO_TRAMPOLINE): Fix asm syntax.
        !          2472:  
        !          2473:        * xm-iris.h (alloca): Delete redundant definition.
        !          2474:        * tm-iris.h (CPP_SPEC): Define variant symbols starting with _.
        !          2475:        Define __EXTENSIONS__.
        !          2476: 
        !          2477:        * config.gcc (editing .gdbinit): Search current dir, not just srcdir.
        !          2478: 
        !          2479: Tue Nov         6 22:24:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2480: 
        !          2481:        * expr.c (expand_expr, case COND_EXPR): Generate efficient code for
        !          2482:        A ? A : FOO and similar.
        !          2483: 
        !          2484:        * combine.c (subst): If we have, e.g., (lt CONST FOO), convert it
        !          2485:        to (gt FOO CONST).
        !          2486: 
        !          2487:        * recog.c (comparison_operand): Use comparison_code_p.
        !          2488: 
        !          2489:        * genconfig.c (walk_insn_part):  Add operand to indicate if PART is
        !          2490:        going to be used to recognize an insn (as opposed to emitting rtl).
        !          2491:        If not, ignore CC0.
        !          2492:        (gen_insn, gen_expand, gen_split, gen_peephole): Add new operand to
        !          2493:        walk_insn_part calls.
        !          2494: 
        !          2495:        * cse.c (find_comparison_args): Correctly compute rtx_code of
        !          2496:        comparison; if we find another comparison code inside, use it.
        !          2497:        * loop.c (get_condition): Likewise.
        !          2498: 
        !          2499:        * expr.c (expand_builtin): For ffs, don't pass VOIDmode to expand_unop.
        !          2500: 
        !          2501: Mon Nov         5 12:55:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2502: 
        !          2503:        * final.c (output_addr_const): Don't print parens for CONST.
        !          2504: 
        !          2505:        * reload1.c (choose_reload_regs): Handle case where find_equiv_reg
        !          2506:        returns a SUBREG.  Also, use variable `regno' uniformly throughout
        !          2507:        code that finds equivalent register.
        !          2508: 
        !          2509:        * gnulib2.c (__floatdisf, __fixunssfsi): New functions.
        !          2510:        (__fixsfdi, __fixunssfdi): New functions.
        !          2511:        * gnulib.c (__floatsisf, __fixsfsi): New functions.
        !          2512: 
        !          2513: Mon Nov         5 06:37:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2514: 
        !          2515:        * fold-const.c (fold, case EQ_EXPR and NE_EXPR): Convert, e.g.,
        !          2516:        (A & 2) == 2 to (A & 2) != 0.  This eliminates the need for these
        !          2517:        patterns in MD files.
        !          2518:        Detect more general cases of comparing something with itself.
        !          2519: 
        !          2520: Mon Nov         5 00:09:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2521: 
        !          2522:        * stmt.c (expand_cleanups): Don't run any cleanup twice.
        !          2523: 
        !          2524: Sun Nov         4 23:49:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2525: 
        !          2526:        * expr.c (convert_move): Use emit_no_conflict_block when converting
        !          2527:        SImode to DImode.
        !          2528:        If have slt insn, emit a compare insn; we must not have a use of
        !          2529:        cc0 without a set; normally, the compare will be deleted as
        !          2530:        redundant in final.c.
        !          2531:        Use shift rather than clear/test/negate for high-order word when
        !          2532:        doing sign extension.
        !          2533: 
        !          2534:        * optabs.c (emit_no_conflict_block): Don't put REG_NO_CONFLICT
        !          2535:        notes on the trailing copy insn; nobody looks there.
        !          2536: 
        !          2537:        * combine.c (try_combine): Don't combine a reg-reg copy if the
        !          2538:        destination is used in a REG_NO_CONFLICT note.
        !          2539: 
        !          2540:        * reload.c (find_equiv_reg): Use true_regnum to support SUBREGs
        !          2541:        as well as REGs.
        !          2542: 
        !          2543: Sun Nov         4 12:55:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2544: 
        !          2545:        * i386.md (extend*): Take out last change.
        !          2546:        Unix assembler rejects movsx...
        !          2547: 
        !          2548:        * expr.c (expand_expr): Special case for ignored volatile
        !          2549:        failed to return.
        !          2550: 
        !          2551: Sat Nov         3 14:42:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2552: 
        !          2553:        * expr.c (do_jump, case PLUS_EXPR): Turn off this case; it was a
        !          2554:        pessimization.
        !          2555: 
        !          2556: Fri Nov         2 01:51:31 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2557: 
        !          2558:        * stmt.c (expand_return): Don't emit a USE if VAL is a
        !          2559:        pseudo-register.
        !          2560: 
        !          2561: Fri Nov         2 15:30:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2562: 
        !          2563:        * gnulib2.c (__builtin_saveregs): Add version for i860.
        !          2564: 
        !          2565:        * out-i860.c (output_block_move): Rearrange the copy loop.
        !          2566:        Now uses two labels and a more complicated lead-in.
        !          2567: 
        !          2568: Fri Nov         2 14:17:24 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2569: 
        !          2570:        * m88k.md (extendsidi2):  New define_expand.
        !          2571: 
        !          2572:        * out-m88k.c:  Converted various constructs to use conventinal
        !          2573:        formatting.
        !          2574: 
        !          2575:        * m88k.md (ext pattern): Must have parens.
        !          2576:        * m88k.md (mul/div patterns): Added better documentation.  Removed
        !          2577:        unfounded restriction on immediate values.
        !          2578:        * m88k.md (increment and test peephole): Don't use %L.
        !          2579: 
        !          2580:        * out-m88k.c (m88k_layout_frame): Must allocate space for the
        !          2581:        addressing base register (-mpic).
        !          2582:        * out-m88k.c (output_tdesc): Use version 2 tdesc with PIC.
        !          2583: 
        !          2584:        * tm-m88k.h, tm-m88kdgux.h,: Don't predefine memcpy and others.
        !          2585:        * tm-m88k.h: Fixes for dwarf.
        !          2586:        * tm-m88ksvr4.h: Dwarf changes.
        !          2587:        * xm-m88k.h xm-m88kdgux.h xm-v88r32.h: Update comments.
        !          2588: 
        !          2589: Fri Nov         2 12:30:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2590: 
        !          2591:        * jump.c (comparison_dominates_p): Return 1 if codes are the same.
        !          2592:        (thread_jumps): Use get_label_after.
        !          2593: 
        !          2594:        * a29k.md (movdi): Handle CONST_INT as well as CONST_DOUBLE.
        !          2595:        (comparisons): Fix typo in define_split for floating-point NE.
        !          2596: 
        !          2597:        * reorg.c (fill_slots_from_thread): Don't mark as annulled if no
        !          2598:        delay list.
        !          2599: 
        !          2600:        * loop.c: Allow use of any register to store comparison results.
        !          2601:        (loop_skip_over): Don't treat comparison specially; copy all insns
        !          2602:        preceeding the jump.
        !          2603:        (check_for_endtest, other_reg_use_p): Deleted.
        !          2604:        (can_eliminate_biv_p, eliminate_biv): Deleted; code merged and
        !          2605:        placed into new maybe_eliminate_p_1.
        !          2606:        (may_eliminate_biv, may_eliminate_biv_1): New functions; recursively
        !          2607:        look at all rtx to see if every occurrence of a biv can be
        !          2608:        eliminated.
        !          2609:        (check_eliminate_biv): Deleted; callers changed to call
        !          2610:        may_eliminate_biv.
        !          2611:        (get_condition): Rework to look into previous insns to find insns
        !          2612:        that set the first operand of comparison insns.
        !          2613: 
        !          2614: Thu Nov         1 22:07:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2615: 
        !          2616:        * cse.c (fold_rtx, case COMPARE): Only convert compare to test if
        !          2617:        HAVE_cc0 is defined.
        !          2618:        * combine.c (subst): Copy COMPARE case from fold_rtx.  
        !          2619:        Simplify things like (ne (eq FOO BAR) (const_int 0)).
        !          2620: 
        !          2621: Thu Nov         1 18:06:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2622: 
        !          2623:        * math-68881.h (HUGE_VAL): Alternate definition for Suns.
        !          2624: 
        !          2625:        * config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4.
        !          2626: 
        !          2627:        * tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix.
        !          2628:        (CPP_SPEC): New macro.
        !          2629:        (LIB_SPEC): Handle -shlib.
        !          2630: 
        !          2631:        * c-decl.c (init_decl_processing): Make last arg to memcpy and memcmp
        !          2632:        an unsigned long, to be like size_t.
        !          2633: 
        !          2634:        * Makefile.in (hard-params): Depend on gnulib2, not gnulib.
        !          2635: 
        !          2636: Wed Oct 31 22:12:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2637: 
        !          2638:        * config.gcc (ultrix):  New alternative.
        !          2639: 
        !          2640:        * i386.md (extend*): Change opcode to movsx.  Was movs.
        !          2641: 
        !          2642: Wed Oct 31 09:41:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2643: 
        !          2644:        * m88k.md: Deleted an old pattern for subtracting 0.
        !          2645:        * m88k.md: Deleted patterns for aligned bit-field insns.
        !          2646:        * m88k.md: Changed define_expand to define_insn for mulsi3 and
        !          2647:        umulsi3.
        !          2648:        * m88k.md: Converted various constructs to use conventional
        !          2649:        formatting.
        !          2650:        * m88k.md (mak patterns):  Fixed transcription errors.
        !          2651: 
        !          2652: Wed Oct 31 00:05:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2653: 
        !          2654:        * c-decl.c (init_decl_processing): Predefine the ordinary names
        !          2655:        of alloca, abs, memcpy, etc.
        !          2656: 
        !          2657:        * c-decl.c (duplicate_decls): Allow redefining built-in as static,
        !          2658:        but optionally warn.
        !          2659: 
        !          2660: Tue Oct 30 14:39:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2661: 
        !          2662:        * c-decl.c (finish_function): Use DEFAULT_MAIN_RETURN in `main'.
        !          2663:        * tm-vms.h (DEFAULT_MAIN_RETURN): Define this.
        !          2664: 
        !          2665:        * c-parse.y (yylex): Base is not 8 for just `0'.
        !          2666: 
        !          2667:        * cccp.c (do_define): Invert test of compare_defs.
        !          2668: 
        !          2669:        * cccp.c (make_definition): Convert newline to newline-newline.
        !          2670: 
        !          2671:        * Makefile.in (hard-params): Depend on gnulib.
        !          2672: 
        !          2673:        * m88k.md (divsi3): Delete declarations of gen_... functions.
        !          2674: 
        !          2675: Tue Oct 30 14:26:20 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2676: 
        !          2677:        * cse.c: Rework handling of comparisons to generalize better to
        !          2678:        machines that use registers to hold condition code information.
        !          2679:        (prev_insn_cc0*): Just store last rtx assigned to cc0 in prev_insn_cc0.
        !          2680:        (find_comparison_args): New function.
        !          2681:        (fold_rtx): Folded value of cc0 is the value previously stored into it.
        !          2682:        Rework handling of comparisons:  use find_comparison_args to see what
        !          2683:        is being compared.  If they are constants, compute the result of the
        !          2684:        comparison.  If not, see if the two operands are equivalent (only for
        !          2685:        non FP or non-IEEE FP).  Then see if we have already seen a comparison
        !          2686:        involving these operands that lets us give a value to this comparison.
        !          2687:        True comparisons return STORE_FLAG_VALUE, not 1.
        !          2688:        (fold_cc0): Deleted.
        !          2689:        (predecide_loop_entry): Call cse_insn on a copy of each insn at the
        !          2690:        loop test to propagate the values of items at the start of the loop.
        !          2691:        Then use fold_rtx to see if we know the result of the jump.
        !          2692:        (record_jump_equiv): Use new function find_comparison_args.
        !          2693:        (cse_insn): Just record value of CC0 if set; don't call fold_cc0.
        !          2694:        Don't modify PREV_INSN (insn) if INSN is a copy.
        !          2695:        (cse_main): Initialize const_true_rtx to rtx for STORE_FLAG_VALUE.
        !          2696: 
        !          2697:        * jump.c (comparison_code_p, comparison_dominates_p): New functions.
        !          2698:        (thread_jumps): Use comparison_dominates_p.
        !          2699:        Remove debugging code.
        !          2700:        * reorg.c (condition_dominates_p): Use new function
        !          2701:        comparison_dominates_p.
        !          2702: 
        !          2703:        * emit-rtl.c (next_cc0_user): Don't get confused by being call with a
        !          2704:        copy of an insn; use INSN_UID to check for an insn in a delay slot.
        !          2705: 
        !          2706:        * rtl.c (reg_note_name): Add name for new REG_LABEL note.
        !          2707: 
        !          2708:        * emit-rtl.c (make_insn_raw): No longer have JUMP_LABEL for INSN.
        !          2709: 
        !          2710: Tue Oct 30 09:26:15 1990  Tom Wood  (wood at dg-rtp.dg.com)
        !          2711: 
        !          2712:        * Update what strings in files edited so far.
        !          2713:        * tm-m88k.h, tm-m88kdgux.h, tm-m88ksv4r.h: Introduce VERSION_STRING
        !          2714:        and VERSION_INFO to more appropriately identify the compiler.
        !          2715: 
        !          2716:        * tm-m88k.h (ASM_OUTPUT_OPCODE): Stop processing the opcode if `%'
        !          2717:        is encountered.
        !          2718:        * out-m88k.c (print_operand): Add a tab to %L output.  Delete
        !          2719:        unused cases.
        !          2720: 
        !          2721:        * m88k.md:  Rework the movstrsi pattern and provide call_block_move
        !          2722:        and call_block_move_loop to support expand_block_move.
        !          2723:        * out-m88k.c:  Rework the block move functions.
        !          2724:        * make-m88k, make-m88kdgux:  Eliminate movstr.h.
        !          2725: 
        !          2726:        * m88k.md, out-m88k.c: Eliminate assembler comments.
        !          2727: 
        !          2728:        * m88k.md (ashlsi3 ashrsi3 lshlsi3 lshrsi3): Eliminate warnings
        !          2729:        about out of range shifts.
        !          2730: 
        !          2731:        * tm-m88k.h, out-m88k.c: Rename CONDITION_CODE_REGNUM CC0_REGNUM.
        !          2732: 
        !          2733: Mon Oct 29 18:06:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2734: 
        !          2735:        * final.c (final_end_function): Handle dwarf output.
        !          2736:        (final_scan_insn): Likewise.
        !          2737:        (output_source_line): Likewise, using ASM_OUTPUT_DWARF_LINE.
        !          2738:        * toplev.c (rest_of_decl_compilation): Likewise.
        !          2739:        (rest_of_compilation, main): Likewise.
        !          2740:        * varasm.c (assemble_variable): Likewise.
        !          2741:        * flags.h (enum debugger): Define DWARF_DEBUG.
        !          2742: 
        !          2743:        * cccp.c (do_define): Rewrite criterion for warning.
        !          2744:        Don't warn if -D redefining symbol with constant numeric value.
        !          2745: 
        !          2746:        * toplev.c (output_file_directive): New function.
        !          2747:        * sdbout.c (sdbout_filename): Deleted.
        !          2748:        * tm-3b1.h, tm-att386.h, tm-encore.h, tm-m88k.h,
        !          2749:        tm-mot3300.h, tm-tahoe.h, tm-vaxv.h (ASM_FILE_START): Use that.
        !          2750: 
        !          2751:        * c-decl.c (named_labels): No longer static.
        !          2752:        (pushlevel): Clear named_labels.
        !          2753:        (poplevel): Don't clear it here.
        !          2754: 
        !          2755: Mon Oct 29 13:32:57 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2756: 
        !          2757:        * Makefile.in: Update dependencies for various files, mostly cplus-*
        !          2758:        files.
        !          2759: 
        !          2760:        * rtl.def: Remove Sep 26 that added JUMP_LABELs to INSN and
        !          2761:        CALL_INSN.
        !          2762:        * rtl.h: Add REG_LABEL register note.  For INSN and CALL_INSN, the
        !          2763:        presence of this register note has the same meaning that a non-NULL
        !          2764:        JUMP_LABEL would have with the Sep 26 change.
        !          2765:        * jump.c (jump_optimize): Revert to clearing JUMP_LABEL field of
        !          2766:        JUMP_INSNs only.
        !          2767:        (mark_jump_label): If INSN is an INSN or a CALL_INSN, add a
        !          2768:        REG_LABEL note if a LABEL appears (and no such note already exists).
        !          2769:        ??? Once recorded, this information appears never to be used.
        !          2770: 
        !          2771:        * jump.c (delete_jump): The deletion of INSN must take place when
        !          2772:        INSN is a simple jump.  Also, don't try to optimize if we come
        !          2773:        across an insn with the reorg-generated pattern (USE (INSN ...)).
        !          2774: 
        !          2775:        * cplus-lex.c, cplus-dbxout.c: Remove vestigial support for dumping
        !          2776:        and undumping the compiler.
        !          2777: 
        !          2778:        * Merge cplus diffs from Kenner.
        !          2779:        * cplus-cvt.c (convert_to_integer): Fold the COND_EXPR we construct.
        !          2780:        * cplus-typeck.c (build_conditional_expr): Ditto in three places.
        !          2781:        * cplus-lex.c (yylex,do_pending_inlines): Add conditionals for
        !          2782:        _IBMR2.  This hair will disappear when pcccp support is merged, but
        !          2783:        needed for now.
        !          2784:        * cplus-tree.h: Conditionalize use of non-int bitfield types on
        !          2785:        ONLY_INT_FIELDS.  Also, remove duplication declarations of
        !          2786:        get_temp_name, get_temp_aggr, and get_temp_regvar; add declaration
        !          2787:        of build_decl_list.
        !          2788: 
        !          2789: Mon Oct 29 11:45:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2790: 
        !          2791:        * fixincludes: Fix missing semi in rusers.h.
        !          2792: 
        !          2793: Mon Oct 29 07:07:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2794: 
        !          2795:        * flow.c (mark_used_regs): When converting "...*p...; q = p + size"
        !          2796:        to "q = p, ...*q..., q = q + size", show that Q is needed after INSN.
        !          2797: 
        !          2798:        * romp.md (negdi): Directly generate assembly code rather than
        !          2799:        converting this into a MINUS.
        !          2800: 
        !          2801:        * fold-const.c (fold, case COND_EXPR): Add missing condition in test
        !          2802:        for (A ? 0 : A).
        !          2803: 
        !          2804: Sun Oct 28 15:01:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2805: 
        !          2806:        * flow.c (find_basic_blocks): An indirect jump can go
        !          2807:        to any label whose address is used as data.
        !          2808: 
        !          2809:        * m68k.md (zero-extend QI): Use gen_rtx, not change_address.
        !          2810: 
        !          2811:        * Makefile.in (USER_H): List va-*.h explicitly.
        !          2812:        (toplev.o): Depend on RTL_H.
        !          2813:        (stamp-*): Depend on move-if-change.
        !          2814:        (install-headers): Depend on various header files.
        !          2815:        (install-man): Depend on gcc.1.
        !          2816:        (gcc.o): Depend on gvarargs.h and obstack.h.
        !          2817: 
        !          2818:        * Makefile.in: Make sure every `if' has an `else'.
        !          2819: 
        !          2820:        * c-typeck.c (build_binary_op_nodefault): Prevent warning for
        !          2821:        variable shift count.
        !          2822: 
        !          2823:        * i860.md (movsf): Handle moving from CONST_DOUBLE to reg or mem.
        !          2824: 
        !          2825: Sun Oct 28 09:39:14 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2826: 
        !          2827:        * jump.c (delete_jump): The deletion of INSN must take place when
        !          2828:        INSN is a simple jump.  Also, don't try to optimize if we come
        !          2829:        across an insn with the reorg-generated pattern (USE (INSN ...)).
        !          2830: 
        !          2831:        * sparc.md, tm-sparc.h, out-sparc.c: Significantly rewritten to take
        !          2832:        advantage of new 2.0 optimization capabilities.
        !          2833:        * old-sparc.md, tm-old-sparc.h, out-old-sparc.c: These are copies of
        !          2834:        the above files before the rewrite.  They may be interesting for
        !          2835:        measuring performance of old vs. new machine description idioms.
        !          2836: 
        !          2837: Sun Oct 28 00:22:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2838: 
        !          2839:        * loop.c (scan_loop): Don't think that a branch to an end-test of
        !          2840:        a containing look is actually the branch to the end-test of the
        !          2841:        outer loop.
        !          2842: 
        !          2843:        * reload.c (indirect_ok): Deleted.
        !          2844:        (find_reloads): Accept new arg IND_LEVELS instead of old IND_OK;
        !          2845:        pass this to find_reloads_address and find_reloads_toplev.
        !          2846:        (find_reloads_toplev): Accept IND_LEVELS and pass to
        !          2847:        find_reloads_address.
        !          2848:        (find_reloads_address): Accept IND_LEVELS and pass it on to 
        !          2849:        find_reloads_address_1.
        !          2850:        When calling ourself recursively for a MEM as an address, show
        !          2851:        one indirect level has been used.
        !          2852:        (find_reloads_address_1): Accept IND_LEVELS and pass it to ourselves
        !          2853:        in recursive calls and to find_reloads_address.
        !          2854:        * reload1.c (spill_indirect_levels): New var; used to be
        !          2855:        spill_indirect_ok.
        !          2856:        (reload): Compute number of levels of indirection and set it into
        !          2857:        spill_indirect_levels.
        !          2858:        (reload, reload_as_needed): Pass spill_indirect_levels not
        !          2859:        spill_indirect_ok.
        !          2860: 
        !          2861:        * reload.c (find_reloads): Make similar change to "V" as "O".
        !          2862: 
        !          2863:        * reload1.c (eliminate_regs): For binary operations, don't call
        !          2864:        recursively on second arg if null (for EXPR_LIST).
        !          2865:        (eliminate_regs_in_insn): Perform register elmination in the
        !          2866:        REG_NOTES of an insn when we are doing it for the last time.
        !          2867: 
        !          2868:        * vax.md (call_value_pop): Use correct operand number for number
        !          2869:        of bytes popped.
        !          2870: 
        !          2871:        * tm-romp.h (EXTRA_CONSTRAINT): Ensure we ignore reg_renumber if
        !          2872:        register allocation hasn't been done yet.
        !          2873: 
        !          2874:        * function.c (init_function_start): Initialize reg_renumber to zero;
        !          2875:        it is checked in rtx_renumbered_equal_p.
        !          2876: 
        !          2877:        * loop.c (loop_optimize): Ensure we assign a new LUID to all
        !          2878:        special notes, including NOTE_INSN_FUNCTION_BEG (0).
        !          2879: 
        !          2880: Sat Oct 27 12:22:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2881: 
        !          2882:        * out-a29k.c (print_operand, output_prolog): Don't try to fill delay
        !          2883:        slots with parts of epilogue or prologue unless -O -fdelayed-branch.
        !          2884: 
        !          2885:        * tm-rs6000.h (STRUCTURE_SIZE_BOUNDARY): Should be 8.
        !          2886: 
        !          2887:        * reorg.c (mark_target_live_regs): Ignore REG_DEAD notes for pseudos;
        !          2888:        they must not have gotten hard registers.
        !          2889: 
        !          2890: Fri Oct 26 11:30:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2891: 
        !          2892:        * gcc.c (main): Set machine_suffix before reading specs file.
        !          2893: 
        !          2894:        * c-typeck.c (build_binary_op_nodefault): Warn for bad shift counts.
        !          2895: 
        !          2896:        * stor-layout.c (layout_record):
        !          2897:        BITFIELD_NBYTES_LIMITED affects bitfields only.
        !          2898: 
        !          2899:        * loop.c (note_addr_stored): Don't assume PLUS in address is aggregate.
        !          2900: 
        !          2901: Fri Oct 26 00:46:09 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          2902: 
        !          2903:        * cplus-tree.h: Declare `build_type_conversion' once instead of
        !          2904:        three times.
        !          2905: 
        !          2906:        * loop.c (loop_skip_over): Handle machines without cc0.
        !          2907:        (labels_in_range_p): Fixed typo where this function returned 0 when
        !          2908:        it meant to return 1.
        !          2909:        (check_for_endtest): New function.  Returns non-zero when
        !          2910:        argument is a simple conditional test insn (suitable for being the
        !          2911:        endtest of a loop).
        !          2912:        (strength_reduce): Use `check_for_endtest' to identify the endtest.
        !          2913:        Also fixed some typos in comments.
        !          2914:        (can_eliminate_biv): Use `check_for_endtest' here, too.
        !          2915:        (get_condition): Generalized to handle machines without cc0.  Now
        !          2916:        THIS_CC_RTX is the value of the cc rtx.
        !          2917: 
        !          2918:        * integrate.c (expand_inline_function): Conditionalize away
        !          2919:        cc0-specific code with HAVE_cc0.
        !          2920:        (try_constants): Add appropriate declaration for ORIG.
        !          2921:        (try_fold_condition): Generalized to work for non-cc0 condition
        !          2922:        values.
        !          2923: 
        !          2924:        * cplus-type2.c (digest_init): Add missing declaration of FIELD.
        !          2925:        * rtl.h: Add missing declaration of plus_constant_for_output.
        !          2926:        * jump.c (can_reverse_comparison): Fixed typo.
        !          2927:        (delete_jump): Made to work without cc0_rtx.
        !          2928: 
        !          2929: Fri Oct 26 00:01:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2930: 
        !          2931:        * reorg.c: Conditionalize references to CC0_RTX on HAVE_cc0.
        !          2932: 
        !          2933:        * reload.c (find_reloads): For the `o' constraint, if IND_OK is
        !          2934:        true, use offsettable_memref_p instead of the nonstrict version.
        !          2935: 
        !          2936:        * jump.c (delete_jump): If HAVE_cc0 is not defined, it is not safe to
        !          2937:        delete previous insn that sets a condition code register, because it
        !          2938:        might not be dead.  Rework to look at all registers dying in this insn
        !          2939:        and delete the first previous insn that sets any such register if that
        !          2940:        is all it does.
        !          2941: 
        !          2942:        * jump.c (jump_optimize): Remove extraneous call to next_active_insn
        !          2943:        in optimization of "if (...) x = 1; else ...; if (x) ...".
        !          2944: 
        !          2945:        * cse.c (predecide_loop_entry): Don't set cc_value to null and then
        !          2946:        stick it in the rtl.
        !          2947: 
        !          2948:        * rtlanal.c (find_next_ref): Deleted from here.
        !          2949:        * explow.c: Include hard-reg-set.h for find_next_ref.
        !          2950:        (find_next_ref): Moved to here.
        !          2951:        * Makefile.in (explow.o): Includes hard-reg-set.h.
        !          2952: 
        !          2953: Thu Oct 25 21:37:15 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          2954: 
        !          2955:        * va-mips.h (va_list): Put __ in member names.
        !          2956:        (va_dcl): Rename _va_alist to __va1_alist.
        !          2957:        * va-i860.h (__va_struct): Put __ in member names.
        !          2958:        * gvarargs.h, va-*.h: (__va_ellipsis): New macro.
        !          2959:        (va_dcl): Use that.
        !          2960: 
        !          2961:        * c-typeck.c (convert_for_assignment): For functions, reverse the
        !          2962:        usual criterion for warning about const vs non-const.  Volatile also.
        !          2963: 
        !          2964:        * m88k.md, tm-m88k.h, out-m88k.c: Rewrites by [email protected].
        !          2965:        * tm-m88kdgux.h, tm-v88r32.h, tm-m88ksvr4.h: New files.
        !          2966:        * xm-m88kdgux.h, xm-v88r32.h, xm-m88ksvr4.h: New files.
        !          2967:        * make-m88k, make-m88kdgux: New files.
        !          2968:        * config.gcc (m88k-dgux, m88k-v88r32, m88k-svr4): New alternatives.
        !          2969: 
        !          2970:        * gvarargs.h, gstdarg.h: Include alternate file for m88k.
        !          2971: 
        !          2972:        * expr.c (expand_expr): For ARRAY_REF, preserve const and volatile.
        !          2973: 
        !          2974:        * expr.c (expand_builtin): Handle strcmp and memcmp with function calls
        !          2975:        if can't be open coded.
        !          2976: 
        !          2977:        * function.c (expand_function_end): Round trampoline addr to init.
        !          2978:        (round_trampoline_addr): Fix braino in alignment.
        !          2979: 
        !          2980: Thu Oct 25 14:54:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          2981: 
        !          2982:        * jump.c: Now includes insn-config.h.
        !          2983:        (jump_optimize): inequality_comparisons_p takes only one operand again.
        !          2984:        (can_reverse_comparison_p): Handle case where a register is used
        !          2985:        for the condition code; if we can't easily find the COMPARE that
        !          2986:        was used to set the register, say we can't reverse the comparison.
        !          2987:        * Makefile.in (jump.o): Now includes insn-config.h.
        !          2988: 
        !          2989:        * jump.c (jump_optimize): Put back change removed on Oct 21st;
        !          2990:        emit_store_flag has now been updated.
        !          2991: 
        !          2992:        * rtlanal.c (inequality_comparisons_p): Reject any ordered
        !          2993:        comparison; we need not just reject when comparing against
        !          2994:        cc0_rtx.
        !          2995:        * recog.c (next_insn{,s}_test_no_inequality): inequality_comparisons_p
        !          2996:        again has only one operand.
        !          2997:        * genattrtab.c (cc0_rtx): No longer needed; remove change of Oct 21.
        !          2998: 
        !          2999:        * genconfig.c (have_cc0_flag): New variable.
        !          3000:        (walk_insn_part): Set it when we see CC0.
        !          3001:        (main): Write #define HAVE_cc0 when it is set.
        !          3002:        * flow.c: Now includes insn-config.h.
        !          3003:        * Makefile.in (flow.o): Likewise.
        !          3004: 
        !          3005:        * combine.c (subst): If X and FROM are the same register number,
        !          3006:        but in different modes, force the combine not to be done.
        !          3007:        Add missing initialization of undobuf.storage.
        !          3008: 
        !          3009: Thu Oct 25 11:34:35 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3010: 
        !          3011:        * sched.c (new_sometimes_live): Protect this function in case it is
        !          3012:        called with (OFFSET,BIT) that evaluates to >= MAX_REGNO.
        !          3013: 
        !          3014:        * jump.c (sets_cc0_p): Conditionalized to abort if called when
        !          3015:        machine does not support cc0.
        !          3016: 
        !          3017:        * rtlanal.c (reg_set_p): Now non-static.
        !          3018:        * rtlanal.c (rtx_varies_p): Handle LO_SUM more accurately.
        !          3019:        * rtlanal.c (find_next_ref): New function.  Returns the insn that
        !          3020:        next references REG after INSN, or 0 if REG is clobbered before next
        !          3021:        referenced or it cannot easily find a reference to REG.
        !          3022: 
        !          3023:        * recog.c (next_insn_tests_no_inequality): Conditionalized on
        !          3024:        HAVE_cc0.
        !          3025: 
        !          3026:        * rtlanal.c (inequality_comparisons_p): Takes new argument
        !          3027:        THIS_CC0_RTX which is the rtl for the condition code value we are
        !          3028:        concerned about testing.  All callers changed.
        !          3029: 
        !          3030:        * flow.c (propagate_block,mark_used_regs): Conditionalize
        !          3031:        specialized cc0 handling only if HAVE_cc0 is defined.
        !          3032: 
        !          3033:        * genemit.c (gen_exp): In REG case, If CC0_REGNUM is defined,
        !          3034:        save space by using REG_CC0_RTX instead of allocating a new
        !          3035:        (REG, mode, CC0_REGNUM) rtx if the mode is SImode.
        !          3036: 
        !          3037:        * final.c (output_addr_const): Handle PC for P.I.C. code generation.
        !          3038:        Also, put parens around CONST expressions so that precedence can be
        !          3039:        maintained.
        !          3040:        * final.c (final_scan_insn): Don't look for redunant compares
        !          3041:        except when HAVE_cc0 is defined.
        !          3042:        Also, use `find_cc' to locate the rtx functioning as the
        !          3043:        condition code register in order to perform appropriate calls
        !          3044:        to `alter_cond'.
        !          3045: 
        !          3046:        * expr.c (expand_expr): Supply missing arg in calls to `store_expr'.
        !          3047: 
        !          3048:        * expmed.c (emit_store_flag): New argument COMPARISON is the
        !          3049:        comparison operation whose result we store.
        !          3050: 
        !          3051:        * recog.c (offsettable_address_p,adj_offsettable_operand): Use
        !          3052:        `plus_constant_for_output' instead of `plus_constant' since we
        !          3053:        are testing conditions which rely on being able to add small
        !          3054:        offsets to e.g. LO_SUM operands.
        !          3055:        * explow.c (plus_constant): No special handling for LO_SUM.  It is
        !          3056:        not valid to add a constant to a term with LO_SUM, since the
        !          3057:        constant may need to be added to the high bits that form the sum,
        !          3058:        and those high bits are not readily available.
        !          3059:        * explow.c (plus_constant_for_output): Same as `plus_constant'
        !          3060:        except that we do allow adding constants to LO_SUM terms.  This
        !          3061:        function works only in special cases such as for
        !          3062:        `adj_offsettable_operand' and `offsettable_address_p'.
        !          3063: 
        !          3064:        * emit-rtl.c: Declare reg_cc0_rtx which is like cc0_rtx, but
        !          3065:        is a register instead of a special form.  reg_cc0_rtx should
        !          3066:        be used when representing the condition code register on a
        !          3067:        machine where condition codes are only set if explicitly set.
        !          3068:        For machines which allow arbitrary registers to be used as
        !          3069:        condition code registers (such as the MIPS and 88k), normal
        !          3070:        pseudo registers should be used instead.
        !          3071:        * emit-rtl.c (next_cc0_user,prev_cc0_setter): Conditionalized
        !          3072:        on HAVE_cc0.
        !          3073:        * emit-rtl.c (find_cc): New function.  Given INSN, returns
        !          3074:        the rtx of what functions as the condition code register for
        !          3075:        INSN.  On machines which use cc0_rtx, this is always cc0_rtx.
        !          3076:        On machines which have a dedicated register for cc0, this is
        !          3077:        that register.  On machines which allocate pseudos for holding
        !          3078:        condition codes, this is the pseudo found in a REG_CC0 note.
        !          3079:        Otherwise, this function returns 0.
        !          3080:        * emit-rtl.c (init_emit_once): Allocate `reg_cc0_rtx' if
        !          3081:        CC0_REGNUM is defined.
        !          3082: 
        !          3083:        * cse.c (make_regs_equiv): Don't consider making a reg
        !          3084:        equivalent to another reg whose class is NO_REGS.
        !          3085:        * cse.c (canon_reg): Don't canonicalize a register to
        !          3086:        one whose class is NO_REGS.
        !          3087:        * cse.c (fold_rtx): Conditionalize code for handling cc0_rtx
        !          3088:        with HAVE_cc0.
        !          3089:        * cse.c (predecide_loop_entry): Generalize code to use either
        !          3090:        a register or cc0_rtx.
        !          3091:        * cse.c (cse_insn): Conditionalize code for handling cc0_rtx
        !          3092:        with HAVE_cc0.
        !          3093: 
        !          3094:        * combine.c (combine_instructions,try_combine,subst):
        !          3095:        Conditionalize code handling cc0_rtx with HAVE_cc0.
        !          3096:        * combine.c (simplify_set_cc0_and): Abort if HAVE_cc0 is not
        !          3097:        defined.
        !          3098:        * combine.c (try_distrib): Add break at end of switch cases.  It is
        !          3099:        dangerous to leave the last cases of a switch statement to fall
        !          3100:        through since new cases added after will get fallen into.
        !          3101: 
        !          3102:        * recog.c (validate_change): Always succeed for an asm insn,
        !          3103:        since recog always fails to recognize asm insns.  This is
        !          3104:        needed for virtual register instantiation in asm insns.
        !          3105: 
        !          3106:        * cse.c (cse_main): When following jumps, notice whether a
        !          3107:        particular basic block causes CSE_JUMPS_ALTERED to become set.  When
        !          3108:        this happens, repeat the scan.
        !          3109:        * cse.c (refers_to_mem_p): Changed parameter name REG to BASE,
        !          3110:        which is more accurate.  Also, taught it how to cope with
        !          3111:        LO_SUM rtl constructs.
        !          3112: 
        !          3113: Wed Oct 24 15:36:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3114: 
        !          3115:        * calls.c (store_one_arg): Accept additional arg, FNDECL.
        !          3116:        Don't save argument area if it is within the REG_PARM_STACK_SPACE
        !          3117:        area, but mark the area in use.
        !          3118:        (expand_call): If ACCUMULATE_OUTGOING_ARGS and REG_PARM_STACK_SPACE,
        !          3119:        treat the stack area for the registers as be clobbered by the called
        !          3120:        routine (e.g., if it was compiled without -O) and save and restore
        !          3121:        it if it was previously used for arguments in a similar manner to
        !          3122:        the remainder of the argument area (done by store_one_arg).
        !          3123: 
        !          3124:        * calls.c (expand_call): Support new description macro,
        !          3125:        STACK_PARMS_IN_REG_PARM_AREA.
        !          3126:        * function.c (assign_parms): Likewise.
        !          3127: 
        !          3128: Wed Oct 24 12:47:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3129: 
        !          3130:        * c-typeck.c (build_array_ref): Use main variant for value type.
        !          3131: 
        !          3132:        * genoutput.c (output_prologue): Let SEPARATE_AUX_OUTPUT
        !          3133:        cause aux-output.c not to be included.
        !          3134:        Makefile.in (aux-output2.c): Copy aux-output.c and then compile it.
        !          3135: 
        !          3136:        * reload.c (subst_reg_equivs): Treat HIGH like other constants.
        !          3137: 
        !          3138:        * reload.c (push_reload): When testing hard reg for validity,
        !          3139:        test subsequent regs only against class, not for HARD_REGNO_MODE_OK.
        !          3140: 
        !          3141: Tue Oct 23 22:49:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3142: 
        !          3143:        * cccp.c (collect_expansion): Skip ## at start after the error.
        !          3144: 
        !          3145:        * gcc.c (default_compilers): Handle - as suffix.
        !          3146:        (main): Make that a special case; it matches only exactly `-'.
        !          3147: 
        !          3148: Tue Oct 23 22:40:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3149: 
        !          3150:        * romp.md (store{s,h,q}i pattern): Allow "b" for clobbered pseudo
        !          3151:        in addition to "d" in first alternative.
        !          3152: 
        !          3153:        * reload1.c (eliminate_regs): IF_THEN_ELSE isn't a unary operation.
        !          3154: 
        !          3155: Tue Oct 23 20:35:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3156: 
        !          3157:        * m68k.md (zero-extend QI): When pushing, store value at 1(sp).
        !          3158: 
        !          3159: Mon Oct 22 12:27:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3160: 
        !          3161:        * cccp.c (rescan): In the loop that handles numbers, discard \newline.
        !          3162:        Also make `..' terminate a preprocessing number.
        !          3163: 
        !          3164:        * Makefile.in (tmpgnulib, stamp-gnulib2): Do `set -e'.
        !          3165: 
        !          3166:        * gcc.c (default_compilers): Give __GNUC__ value 2.
        !          3167:        Don't define it for .S files.
        !          3168: 
        !          3169: Mon Oct 22 07:33:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3170: 
        !          3171:        * optabs.c (emit_indirect_jump): New function; now checks predicate
        !          3172:        of indirect_jump.
        !          3173:        * stmt.c (expand_computed_goto, expand_goto): Use new function instead
        !          3174:        of directly emitting indirect jump.
        !          3175: 
        !          3176:        * flow.c (mark_set_1): Make LOG_LINKS for hard registers.
        !          3177:        * combine.c (subst): Make new macro COMBINE_RTX_EQUAL_P which
        !          3178:        considers things equal if they are the identical RTX or the same
        !          3179:        register with the same mode; use to see if something changed and
        !          3180:        if we have a match.
        !          3181: 
        !          3182:        * cccp.c (S_ISREG): Use argument instead of global.
        !          3183:        (main): Correct sense of S_ISREG usage.
        !          3184:        (check_precompiled): Use S_ISREG.
        !          3185: 
        !          3186:        * flow.c (mark_used_regs): Don't allow reg_next_use to point to
        !          3187:        a NOTE; either point it to replacement insn or invalidate it.
        !          3188: 
        !          3189: Mon Oct 22 00:13:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3190: 
        !          3191:        * c-parse.y (xdecls): No warning unless -pedantic.
        !          3192: 
        !          3193: Sun Oct 21 17:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3194: 
        !          3195:        * genattrtab.c (cc0_rtx): Define, referenced in rtlanal.c.
        !          3196: 
        !          3197:        * jump.c (jump_optimize): Remove code that depends on changes to
        !          3198:        emit_store_flag that haven't been made yet.
        !          3199: 
        !          3200:        * expmed.c (extract_bit_field): Correctly check for bitfield
        !          3201:        completely filling a mode.
        !          3202: 
        !          3203:        * out-romp.c (output_epilogue): Correctly write number of words of
        !          3204:        arguments into trace table.
        !          3205: 
        !          3206:        * calls.c (store_one_arg): Fix error in change of Oct 19th.
        !          3207: 
        !          3208:        * reorg.c (mark_target_live_regs): Revert back to old behavior
        !          3209:        of scanning all insns, even those in delay slots.
        !          3210:        (fill_simple_delay_slots): Need only call update_block if we move
        !          3211:        an insn across a label.
        !          3212: 
        !          3213:        * Makefile.in (LIBFUNCS): Use consistent naming convention for
        !          3214:        comparison routines; gnulib.c was always correct.
        !          3215: 
        !          3216:        * function.c (assign_parms): Don't overwrite DECL_INCOMING_RTL when
        !          3217:        we are called for the second time.
        !          3218: 
        !          3219:        * integrate.c (initialize_for_inline): Don't make a new return label
        !          3220:        here; the maximum label number has already been computed.
        !          3221:        (save_for_inline_copying, save_for_inline_no_copy): Do it here instead.
        !          3222: 
        !          3223:        * reload.c (find_reloads_address): For indirect address where the
        !          3224:        underlying address is also invalid, ensure that we substitute into
        !          3225:        the MEM that we will use.
        !          3226: 
        !          3227: Sun Oct 21 14:12:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3228: 
        !          3229:        * reload.c (find_equiv_regs): Reject reg that overlaps goal.
        !          3230: 
        !          3231:        * expmed.c (extract_bit_field): For big fields, make sure
        !          3232:        value really goes in the target.
        !          3233: 
        !          3234:        * expr.c (expand_builtin): Delete __builtin_varargs.
        !          3235:        (EXPAND_BUILTIN_SAVEREGS): New macro says how to do __builtin_saveregs.
        !          3236: 
        !          3237:        * calls.c (expand_call): No "can't inline" warning if -fno-inline.
        !          3238: 
        !          3239:        * stddef.h: Add missing #endif.
        !          3240: 
        !          3241: Sat Oct 20 14:33:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3242: 
        !          3243:        * function.c (round_trampoline_addr): New function.
        !          3244:        (trampoline_address): Use that.
        !          3245: 
        !          3246: Fri Oct 19 15:13:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3247: 
        !          3248:        * calls.c (store_one_arg): Don't mark stack area used until after
        !          3249:        we have written into it; if we do it before, the restore might
        !          3250:        clobber a function result being put into that stack area.
        !          3251: 
        !          3252:        * objc-actions.c (print_lang_statistics): Add empty function.
        !          3253: 
        !          3254:        * recog.c (inequality_comparisons_p): Deleted from here.
        !          3255:        * rtlanal.c (inequality_comparisons_p): Moved to here; not static.
        !          3256: 
        !          3257:        * a29k.md (extendhisi2): Fix typo in define_split.
        !          3258: 
        !          3259:        * Makefile.in (integrate.o): Includes integrate.h.
        !          3260:        (reorg.o): Includes insn-flags.h.
        !          3261: 
        !          3262: Fri Oct 19 14:49:26 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3263: 
        !          3264:        * sdbout.c (sdbout_symbol): If a variable belongs to an inline
        !          3265:        function, the decl's rtl may not be rewritten by alter_reg.  So if
        !          3266:        we have a variable allocated to a pseudo, just get the hard register
        !          3267:        number from `reg_renumber'.  ?? But I thought that COFF was so
        !          3268:        losing that it was decided one could not represent debug info for
        !          3269:        inline functions in COFF.
        !          3270: 
        !          3271: Fri Oct 19 13:21:25 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3272: 
        !          3273:        * fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp.
        !          3274: 
        !          3275: Fri Oct 19 00:15:21 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3276: 
        !          3277:        * version.c: Bumped to 1.90.03.
        !          3278: 
        !          3279:        * tree.c: Added facility for gathering statistics on the number of
        !          3280:        tree nodes allocated and the size in bytes they occupy.  The
        !          3281:        statistics are by tree_node_kind, which is almost like using the
        !          3282:        tree code letter, but has more resolution for dealing with different
        !          3283:        kinds of `x' nodes.  The facility is enabled by compiling the
        !          3284:        compiler with -DGATHER_STATISTICS and using the -fstats flag.
        !          3285: 
        !          3286:        * expr.c (do_tablejump): Emit a BARRIER after the jump that performs
        !          3287:        the tablejump.
        !          3288: 
        !          3289:        * cplus-typeck.c (c_expand_return): Rewritten so that the function
        !          3290:        value return register is not used except as a target of the function
        !          3291:        return value.
        !          3292: 
        !          3293:        * cplus-tree.c (build_cplus_new): New argument WITH_CLEANUP_P
        !          3294:        controls whether this functino should build its result with a
        !          3295:        cleanup or not.  All callers changed.
        !          3296: 
        !          3297:        * cplus-lex.c: File updated to latest changes to c-parse.y's lexical
        !          3298:        analyzer.
        !          3299: 
        !          3300:        * cplus-except.c (cplus_expand_raise): New parameter FOR_RERAISE
        !          3301:        is used to control whether to output extra gotos or not.  When
        !          3302:        nonzero, the compiler can avoid writing out the extra gotos that are
        !          3303:        otherwise needed to avoid warning messages.
        !          3304: 
        !          3305:        * cplus-decl2.c (flag_short_double): Add support for this option.
        !          3306: 
        !          3307:        * cplus-decl.c (finish_function): Always cause returns to jump to
        !          3308:        the return label.  This allows -Wreturn to give meaningful error
        !          3309:        messages.
        !          3310: 
        !          3311:        * jump.c (invert_exp): Make this non-static.
        !          3312:        (jump_optimize): Reorganization and simplification of main inner
        !          3313:        loop.  Comments added explaining what the optimizers are looking
        !          3314:        for.  New optimization added that optimizes for consecutive testing
        !          3315:        of an inequality test followed by an equality test (or vice-versa).
        !          3316:        Changes made to accommodate reorg.c on Sparc.  Code for
        !          3317:        cross-jumping return statements was previously dead in this
        !          3318:        function; as a result of the reorganization, it is now live.
        !          3319:        (find_cross_jump): Added temporary variable PREV1 to hold return
        !          3320:        value of `prev_nonnote_insn' instead of calling the function 3 times
        !          3321:        in a row.  Also changed so that USE or CLOBBERS are not cross-jumped
        !          3322:        unless some real insns are also cross-jumped.  This helps reorg.
        !          3323:        (redirect_jump): Fixed a return that returned no value so that it
        !          3324:        returns 1.
        !          3325:        (rtx_renumbered_equal_p): Test that reg_renumber is nonzero before
        !          3326:        using it.  We may want to call this function earlier than by the
        !          3327:        time that array has been initialized.
        !          3328: 
        !          3329:        * integrate.c (save_for_inline_{copying,nocopy}): New functions to
        !          3330:        replace `save_for_inline'.  save_for_inline_copying saves the rtl
        !          3331:        for inline functions by copying the rtl to the
        !          3332:        maybepermanent_obstack.  It is called when the rtl of the current
        !          3333:        function is going to be compiled immediately.
        !          3334:        save_for_inline_nocopy takes advantage of the fact that inline
        !          3335:        function rtl is already allocated to the maybepermanent_obstack, and
        !          3336:        need therefore not be copied if it's not going to be modified by the
        !          3337:        compiler (such as by `rest_of_compilation').
        !          3338:        ({initialize_for,finish}_inline): New helper routines for
        !          3339:        save_for_inline_... functions.
        !          3340:        (note_modified_parmregs): Function called by `mark_stores' to note
        !          3341:        whether parameters are assigned to in the body of an inline
        !          3342:        function.
        !          3343:        New interface, integrate.h, provides declarations for functions used
        !          3344:        by other routines that might want to copy chunks of rtl.
        !          3345:        ({save,try}_constants): Now global (for integrate.h).
        !          3346:        (mark_stores): Ditto.
        !          3347:        (try_fold_condition): Ditto.
        !          3348: 
        !          3349:        * dbxout.c (dbxout_symbol): If a variable belongs to an inline
        !          3350:        function, the decl's rtl may not be rewritten by alter_reg.  So if
        !          3351:        we have a variable allocated to a pseudo, just get the hard register
        !          3352:        number from `reg_renumber'.
        !          3353: 
        !          3354:        * varasm.c (output_const_pool): No longer static.
        !          3355:        (assemble_variable): Do output debugging information for global
        !          3356:        register variables.  GDB does the right thing for global register
        !          3357:        variables.
        !          3358: 
        !          3359:        * toplev.c: New flag `warn_inline' for warning when a function
        !          3360:        declared inline was not in fact inlined.  Also, new flag
        !          3361:        `flag_no_inline' which disables function inlining, but retains
        !          3362:        other properties of inline functions (such as lazy compilation
        !          3363:        and write-only-if-needed).
        !          3364:        * toplev.c (compile_file): Changed logic for inline function
        !          3365:        handling to work with `warn_inline' and `flag_no_inline'.
        !          3366:        Also modified to call `save_for_inline_nocopy' when insns are to be
        !          3367:        saved but not immediately compiled.
        !          3368: 
        !          3369:        * function.c (instantiate_decls): If instantiating a function
        !          3370:        which was saved for inline expansion, preserve the rtl created
        !          3371:        by the instantiation as well.
        !          3372: 
        !          3373:        * flags.h (flag_no_inline): New flag; if nonzero, then no
        !          3374:        calls are inlined, regardless of their declaration.  We still
        !          3375:        save the insns for these functions in DECL_SAVED_INSNS so that
        !          3376:        the functions need not be written if they are never called.
        !          3377: 
        !          3378:        * calls.c (expand_call): If `flag_no_inline' is set, don't
        !          3379:        inline the call, regardless of whether it was declared inline
        !          3380:        or not.
        !          3381: 
        !          3382: Thu Oct 18 13:10:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3383: 
        !          3384:        * rtl.def (CODE_LABEL): Add new string field.
        !          3385:        * rtl.h (LABEL_NAME): Define macro for access.
        !          3386:        * emit-rtl.c (gen_label_rtx): Initialize it to 0.
        !          3387:        * stmt.c (expand_label): Store proper name of label.
        !          3388:        * final.c (final_scan_insn): Call sdbout_label.
        !          3389: 
        !          3390:        * tree.h (built_in_function): Add BUILT_IN_VARARGS.
        !          3391:        * c-decl.c (init_decl_processing): Declare __builtin_varargs.
        !          3392:        * expr.c (expand_builtin): Generate code for it.
        !          3393:        Uses new macro EXPAND_BUILTIN_VARARGS.
        !          3394: 
        !          3395:        * sdbout.c (SDB_IS_FAKE): Macro deleted.
        !          3396:        (MAKE_LINE_SAFE): New macro.
        !          3397:        (sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it.
        !          3398:        (sdbout_one_type): Delete spurious second arg in all callers.
        !          3399:        (sdbout_types, sdbout_end_function):
        !          3400:        Use sdbout_dequeue_anonymous_types.
        !          3401:        (sdbout_label): New function.
        !          3402: 
        !          3403:        * expr.h (FUNCTION_ARG_BOUNDARY): Default is now PARM_BOUNDARY.
        !          3404: 
        !          3405:        * gvarargs.h, va-*.h (va_dcl):
        !          3406:        Add ellipsis so current_function_varargs is set.
        !          3407: 
        !          3408:        * jump.c (jump_optimize): Exit push-optimize loop at end of insns.
        !          3409: 
        !          3410: Thu Oct 18 07:09:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3411: 
        !          3412:        * reorg.c: Major reorganization.  Many special cases have been moved
        !          3413:        into more general code and an overall restructuring has been done.
        !          3414:        Numerous bugs have been fixed.  Highlights:
        !          3415:        (dbr_schedule): First make list of all insns needing filling.  Then
        !          3416:        iterate for two passes.  In each pass, try two methods of filling
        !          3417:        delay slots, then do some canonicalizations, which may create more
        !          3418:        insns to fill.
        !          3419:        (fill_simple_delay_slots): Now uses list of insns that need filling,
        !          3420:        rather than making such a list.
        !          3421:        Enhance code that finds insns when code paths merge to allow multiple
        !          3422:        uses of the label as long as all uses are in the skipped code.
        !          3423:        (struct resource): Notice volatile memrefs.
        !          3424:        (stop_search_p): Allow option to continue when label is reached.
        !          3425:        (find_end_label, make_return_insns): New functions; when we have a
        !          3426:        filled branch that is really a RETURN, first convert it to a jump
        !          3427:        to a return label and then later see if the insns in the delay slots
        !          3428:        are also valid for a RETURN.
        !          3429:        (mostly_true_jump): Test for branch to loop beginning rather than
        !          3430:        branch at end of loop.  Also, conditional return insns predict false.
        !          3431:        (own_thread_p): New function to replace fall_through_to_p.
        !          3432:        (try_merge_delay_insns): Only support merging insns already in an
        !          3433:        insns delay list.
        !          3434:        (get_branch_condition, condition_dominates_p): New functions.
        !          3435:        (steal_delay_list_from_{target,fallthrough}): New functions to
        !          3436:        replace steal_delay_list.
        !          3437:        (redundant_insn_p): New function.
        !          3438:        (update_block, mark_target_live_regs, dbr_schedule): When moving
        !          3439:        an insn not at the front of the basic block to a delay slot,
        !          3440:        leave a "ghost" USE so that we can track things livened and killed.
        !          3441:        (fill_slots_from_thread): Eliminate use of static vars for number
        !          3442:        of slots to fill and already filled.
        !          3443:        Try to modify an insn that follows a register-register copy to use
        !          3444:        the original register; this may create a delay-slot opportunity.
        !          3445:        (try_hoist_target{,_1}): Deleted.
        !          3446:        (relax_delay_slots): Rewritten to just perform canonicalizations
        !          3447:        previously done elsewhere.  No actual delay slot filling is done
        !          3448:        here.  Any new delay slots created will hopefully be filled in the
        !          3449:        next pass around the loop in dbr_schedule.
        !          3450: 
        !          3451:        * expr.c (emit_push_insn): Don't try to compute a SUBREG of a
        !          3452:        hard register in a non-integer mode when pushing a "partial" arg.
        !          3453: 
        !          3454:        * recog.c (validate_change, apply_change_group): After reload, ensure
        !          3455:        that operands meet the constraints by calling constrain_operands.
        !          3456:        (validate_replace_rtx_1): Consider two rtx equal if they refer to
        !          3457:        the same register.
        !          3458: 
        !          3459:        * jump.c (jump_optimize): Extend change of Oct 16th to handle
        !          3460:        the other usage of find_equiv_reg; remove invalid death notes there.
        !          3461: 
        !          3462:        * rs6000.md, tm-rs6000.h, out-rs6000.c, xm-rs6000.h, make-rs6000:
        !          3463:        New files.
        !          3464: 
        !          3465:        * out-a29k.c (extract_subword): Use gen_{high,low}part from
        !          3466:        an FP CONST_DOUBLE if host and target float formats are the same
        !          3467:        or REAL_IS_NOT_DOUBLE.
        !          3468: 
        !          3469:        * out-romp.c (output_fpop, output_fpops): Provide fr0 as a scratch
        !          3470:        register unless it is used in the insn.
        !          3471: 
        !          3472:        * romp.md: In combined set CC0 and move, optimize case where move
        !          3473:        is nop.
        !          3474:        (DF moves): Fix typo in generation of `get' insn.
        !          3475:        Don't split if input is CONST_DOUBLE because we can't easily
        !          3476:        generate the proper constants.
        !          3477:        (call patterns): Copy data area address via a pseudo to allow
        !          3478:        better CSE'ing.
        !          3479: 
        !          3480:        * tm-romp.h (RTX_COSTS): Memory is expensive, except for a reference
        !          3481:        to our own data area, which is very cheap.
        !          3482:        (ADDRESS_COST): References to the constant pool are as cheap as
        !          3483:        register + offset, since that's what it will be.
        !          3484: 
        !          3485:        * emit-rtl.c (gen_{low,high}part): Can often extract word from FP
        !          3486:        CONST_DOUBLE when host and target floating formats agree.
        !          3487:        (add_insn_after): No longer static.
        !          3488: 
        !          3489:        * reload1.c (reg_equiv_memory_loc): Renamed from reg_equiv_stack_slot
        !          3490:        and now static.
        !          3491:        (reload): If have equivalence with constant that is not a legitimate
        !          3492:        constant operand, force it into memory and handle this as an
        !          3493:        equivalence to memory.
        !          3494:        * reload.h (reg_equiv_stack_loc): Deleted.
        !          3495: 
        !          3496: Wed Oct 17 20:50:58 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3497: 
        !          3498:        * gcc.c, cccp.c (main): Use TARGET_VERSION if -v.
        !          3499: 
        !          3500:        * expmed.c (extract_bit_field): Typo in last change.
        !          3501: 
        !          3502:        * Makefile.in (tmpgnulib): Support assembler files named *.asm.
        !          3503: 
        !          3504:        * gcc.c (do_spec_1): Null-terminate error message.
        !          3505: 
        !          3506:        * sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL.
        !          3507:        This happens for vars from the parms of inline functions.
        !          3508:        * dbxout.c (dbxout_symbol): Likewise.
        !          3509: 
        !          3510:        * genattr.c (fancy_abort): New function, as in gen*.c.
        !          3511: 
        !          3512: Wed Oct 17 14:53:48 1990  Michael I. Bushnell  (mib at geech.ai.mit.edu)
        !          3513: 
        !          3514:        * pcp.h: New file.
        !          3515: 
        !          3516:        * cccp.c: Support use of precompiled files
        !          3517:        Include "pcp.h".
        !          3518:        (no_precomp, stringlist, stringlist_tailp): New variables. 
        !          3519:        (union hashval): New field `keydef'.
        !          3520:        (enum nodetype): New alternative `T_PCSTRING'.
        !          3521:        (main): Support -noprecomp.
        !          3522:        Use write_output to write output.
        !          3523:        (rescan): Call pcstring_used for T_PCSTRING symbols.
        !          3524:        (do_include): New local variables pcftry, pcfname, pcf, pcfbuf, 
        !          3525:        pcfbuflimit, and pcfnum.
        !          3526:        Check for possible use of precompiled files.
        !          3527:        (check_precompiled): New function.
        !          3528:        (check_preconditions): New function.
        !          3529:        (pcfinclude): New function.
        !          3530:        (pcstring_used): New function.
        !          3531:        (write_output): New function.
        !          3532:        (create_definition): New function.
        !          3533:        (do_define): Moved most of the work into create_definition.
        !          3534:        (dump_single_macro): New function.
        !          3535:        (dump_all_macros): Moved most of the work into dump_single_macro.
        !          3536:        (dump_defn_1): New argument OF.
        !          3537:        (dump_arg_n): New argument OF.
        !          3538: 
        !          3539:        * cccp.c: Support generation of precompiled files
        !          3540:        (pcp_outfile, pcp_inside_if): New variables.
        !          3541:        (struct definition): New field `predefined'.
        !          3542:        (main): Support -pcp.
        !          3543:        (rescan): Don't expand macros outside #if during -pcp.
        !          3544:        (special_symbol): Error for most special symbols during #if in -pcp.
        !          3545:        Output precondition for T_CONST and T_SPEC_DEFINED symbols.
        !          3546:        (eval_if_expression): Set and clear pcp_inside_if.
        !          3547:        (do_ifxdef): Output preconditions.
        !          3548: 
        !          3549: Tue Oct 16 13:22:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3550: 
        !          3551:        * stor-layout.c (layout_record): For PCC_BITFIELD_TYPE_MATTERS,
        !          3552:        make it true that zero-length field affects alignment of next field.
        !          3553: 
        !          3554:        * rtlanal.c (get_integer_term, get_related_value): Moved from cse.c.
        !          3555: 
        !          3556:        * jump.c (jump_optimize): When reusing value via find_equiv_reg,
        !          3557:        delete obsolete death note.
        !          3558: 
        !          3559:        * expmed.c (extract_bit_field, store_bit_field):
        !          3560:        Handle fields wider than a word.
        !          3561:        Restrict special case for word-sized field to aligned words.
        !          3562: 
        !          3563:        * expmed.c (extract_bit_field, store_bit_field): Don't let
        !          3564:        BESTMODE be bigger than the insn can handle.
        !          3565: 
        !          3566:        * Makefile.in (tmpgnulib): Fix typos handling LIBFUNCS_EXTRA.
        !          3567: 
        !          3568:        * cccp.c (handle_directive): Turn on code to handle # LINENUM,
        !          3569:        and move initializations past the label `old_linenum'.
        !          3570: 
        !          3571:        * c-decl.c (grokdeclarator): If traditional, make bitfields unsigned.
        !          3572:        (finish_struct): Don't do that here.
        !          3573: 
        !          3574:        * fixincludes (CTRL): Don't put quotes around a quote.
        !          3575: 
        !          3576:        * stddef.h (size_t): Also inhibit if _SIZE_T_.
        !          3577: 
        !          3578: Mon Oct 15 13:15:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3579: 
        !          3580:        * c-decl.c (grokdeclarator): Make flag_signed_bitfields work
        !          3581:        for int and for typedefs.
        !          3582: 
        !          3583: Sun Oct 14 21:28:32 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3584: 
        !          3585:        * flow.c (life_analysis): No hard regs for any pseudos live at setjmp.
        !          3586: 
        !          3587:        * c-decl.c (duplicate_decls): Don't suppress warning for fn defn
        !          3588:        after implicit declaration, if fn has already been defined.
        !          3589: 
        !          3590: Fri Oct 12 15:54:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3591: 
        !          3592:        * c-parse.y (xdecls): Allow ellipsis after parm decls.
        !          3593:        Call c_mark_varargs.
        !          3594:        * c-decl.c (start_function): Clear c_function_varargs.
        !          3595:        (c_mark_varargs): New function.  Set it.
        !          3596:        (store_parm_decls): Maybe call mark_varargs.
        !          3597:        * function.c (init_function_start): Clear current_function_varargs.
        !          3598:        (mark_varargs): New function.  Set it.
        !          3599: 
        !          3600: Thu Oct 11 13:15:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3601: 
        !          3602:        * genattrtab.c (fancy_abort): New function, as in gen*.c.
        !          3603: 
        !          3604:        * expr.c (saveregs_value): New variable.
        !          3605:        (init_expr, save_expr_status, restore_expr_status):
        !          3606:        Init, save, restore the variable.
        !          3607:        (expand_builtin): Don't call __builtin_saveregs twice in one function.
        !          3608: 
        !          3609:        * va-*.h: Rename all structure fields to start with __.
        !          3610:        * va-pyr.h: Rename variables also.
        !          3611:        (va_start): Delete the unmatched {.
        !          3612:        (va_end): Now a nop.
        !          3613: 
        !          3614: Wed Oct 10 22:03:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3615: 
        !          3616:        * va-sparc.h (__va_ctl): Rename fields to start with __.
        !          3617: 
        !          3618: Tue Oct         9 12:55:48 1990  Michael Meissner  (meissner at osf.org)
        !          3619: 
        !          3620:        * Allow configuration to specify size of a wide character.
        !          3621:        (WCHAR_TYPE_SIZE): New parameter.
        !          3622:        (WCHAR_UNSIGNED): New parameter, says whether type is signed.
        !          3623: 
        !          3624:        * c-decl.c (WCHAR_TYPE_SIZE): Define if not defined.
        !          3625:        (WCHAR_UNSIGNED): Likewise.
        !          3626:        (wchar_type_node, signed_wchar_type_node, unsigned_wchar_type_node):
        !          3627:        (wchar_array_type_node): New variables.
        !          3628:        (init_decl_processing): Init them.
        !          3629:        * c-tree.h: Make them extern.
        !          3630: 
        !          3631:        * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Define them.
        !          3632:        (combine_strings): Handle them.
        !          3633:        * c-parse.y (init_lex, yylex): Likewise.
        !          3634: 
        !          3635:        * c-typeck.h (digest_init): Use wchar_type_node and
        !          3636:        signed_wchar_type_node to get the base type of wide strings, rather
        !          3637:        than using int and unsigned.
        !          3638: 
        !          3639: Tue Oct         9 14:16:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3640: 
        !          3641:        * expmed.c (extract_bit_field): Typo; section for extv used extzv.
        !          3642: 
        !          3643:        * c-typeck.c (digest_init): Error if union has no name field.
        !          3644:        (process_init_constructor): For union, use first named field.
        !          3645: 
        !          3646:        * flow.c (propagate_block): Include NOTE at end of block in scan.
        !          3647: 
        !          3648:        * fixincludes: Fix missing semicolon in rstat.h.
        !          3649: 
        !          3650:        * cccp.c (main): Record the option names used for assertions.
        !          3651:        Call make_assertion properly.
        !          3652: 
        !          3653: Tue Oct         9 06:18:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3654: 
        !          3655:        * cse.c (fold_rtx): Call find_best_addr before seeing if we know
        !          3656:        what is located at that address.
        !          3657:        Don't try to return the contents of an ADDR_DIFF_VEC table; we have
        !          3658:        no simple way of representing it.
        !          3659:        (cse_insn): Detect SRC == DEST even when DEST is not the canonicalized
        !          3660:        form of the value represented by SRC.
        !          3661: 
        !          3662:        * loop.c (scan_loop): Don't set THRESHOLD until LOOP_HAS_CALL
        !          3663:        has been set.
        !          3664:        (struct induction): Add field MEM_MODE.
        !          3665:        (find_mem_givs, combine_givs_p): Record mode used to access memory
        !          3666:        when making DEST_ADDR giv and use it to test validity of
        !          3667:        derived address.
        !          3668: 
        !          3669:        * jump.c (delete_jump): No longer static.
        !          3670:        (invert_jump): Allow changing RETURNs to branches and vice versa.
        !          3671:        Now returns success/failure indication like redirect_jump.
        !          3672:        * rtl.h (delete_jump): Define.
        !          3673: 
        !          3674:        * calls.c (store_one_arg): Don't expand a `partial' arg into
        !          3675:        arg->stack and don't set arg->value to arg->stack_slot for
        !          3676:        such args.
        !          3677:        Clean up by breaking out common code.
        !          3678: 
        !          3679: Mon Oct         8 15:09:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3680: 
        !          3681:        * loop.c (can_eliminate_biv_p): Insist that mult_val be positive.
        !          3682: 
        !          3683:        * Makefile.in (insn-*): Remove semicolon from these rules.
        !          3684:        (INSTALL_PROGRAM, INSTALL_FILE): New variables.
        !          3685:        (install-*): Use those variables.
        !          3686:        (mandir): Default based on manext.
        !          3687: 
        !          3688: Mon Oct         8 10:57:14 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3689: 
        !          3690:        * stmt.c (expand_catch_default): Return 1 if EXCEPT_STACK is
        !          3691:        nonzero.
        !          3692: 
        !          3693:        * c-decl.c (finish_enum): Argument to floor_log2 in
        !          3694:        calculation of negprecision was not negated.
        !          3695: 
        !          3696: Mon Oct         8 06:50:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3697: 
        !          3698:        * rtl.h (INSN_ANNULLED_BRANCH_P, INSN_FROM_TARGET_P): New fields.
        !          3699: 
        !          3700: Sun Oct         7 23:33:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3701: 
        !          3702:        * tm-i386v.h (STARTFILE_SPEC): Handle -p here.
        !          3703:        (LIB_SPEC): Not here.
        !          3704: 
        !          3705: Thu Oct         4 05:06:02 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3706: 
        !          3707:        * gcc.c (default_compilers): Define __OPTIMIZE__ for %{O*}, not just
        !          3708:        %{O}. This permits the use of -O2, -O3, etc., with predictable
        !          3709:        results.
        !          3710: 
        !          3711:        * expr.c (expand_expr): Do not build new cleanups for
        !          3712:        TARGET_EXPRs.  Their cleanups are now handled entirely by the
        !          3713:        language-specific code that causes them to be generated.
        !          3714: 
        !          3715:        * function.c ({push,pop}_temp_slots): Do not change
        !          3716:        temp_slot_level if within a sequence.  GNU C++ must be able to
        !          3717:        emit a sequence it is building anywhere at the level the sequence
        !          3718:        was initiated.  If the level is changed when building a sequence,
        !          3719:        temporaries could be unwittingly shared.
        !          3720: 
        !          3721:        * cplus-tree.def: change print strings for NEW_EXPR and
        !          3722:        CPLUS_CATCH_DECL.
        !          3723: 
        !          3724:        * cplus-dem.c (do_type): Support `long long' types.
        !          3725: 
        !          3726:        * cplus-decl.c (finish_file): No longer try to emit _init,_fini
        !          3727:        records for GNU C++.  This was supposed to help the SunOS dynamic
        !          3728:        linker link C++ code, but it turned out not to work.
        !          3729: 
        !          3730:        * cplus-decl.c ({start,finish}_function): Don't emit an extra
        !          3731:        binding contour if not in a constructor or destructor.  It is not
        !          3732:        needed, and saves writing out unneeded debugging info.
        !          3733: 
        !          3734:        * cplus-class.c (build_method_call): Conditionalize handling of
        !          3735:        wrappers and operator->(); these are now only compiled if ESKIT is
        !          3736:        #defined.
        !          3737: 
        !          3738:        * cplus-decl.c (define_label): Updated to treat labels in the same
        !          3739:        new fashion that c-decl.c treats them.
        !          3740: 
        !          3741:        * cplus-*.c: C++ front-end files now support a generic
        !          3742:        class-browser interface.  It is up to some adventurous hacker to
        !          3743:        implement the class browser.
        !          3744: 
        !          3745:        * cplus-*.c: C++ front-end files no longer #include rtl.h.
        !          3746: 
        !          3747: Sun Sep 30 15:53:02 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3748: 
        !          3749:        * cccp.c (make_assertion): New function.
        !          3750:        (main): Handle -A by calling make_assertion.
        !          3751:        -A- gets rid of predefined macros and those specified earlier.
        !          3752: 
        !          3753:        * print-tree.c (print_node_brief): Declare i for printing REAL_CST.
        !          3754: 
        !          3755:        * recog.c (immediate_operand, nonmemory_operand): Don't accept
        !          3756:        integer constants if caller wants a floating mode.
        !          3757: 
        !          3758: Sat Sep 29 18:40:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3759: 
        !          3760:        * reload1.c (emit_reload_insns): Handle preserving death info
        !          3761:        with find_equiv_reg.
        !          3762: 
        !          3763:        * reload.c (find_equiv_reg): Handle INSN_CLOBBERS_REGNO_P.
        !          3764: 
        !          3765:        * fixincludes: For link pointing outside /usr/include,
        !          3766:        use $x rather than $dest.
        !          3767: 
        !          3768:        * optabs.c (expand_float, expand_fix): Use dconst1, not 1.0.
        !          3769: 
        !          3770: Sat Sep 29 06:38:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3771: 
        !          3772:        * emit-rtl.c (try_split): Use emit_insn_after and delete_insn to
        !          3773:        ensure that the correct insn chain is maintained in the presence of
        !          3774:        SEQUENCEs; be careful if the insn being split has a following BARRIER.
        !          3775:        * jump.c (delete_insn): Correctly update insn chain when deleting
        !          3776:        insn following or preceeding a SEQUENCE.
        !          3777: 
        !          3778: Fri Sep 28 16:07:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3779: 
        !          3780:        * c-parse.y (yylex): Use REAL_VALUE_TRUNCATE for `f' suffix.
        !          3781: 
        !          3782:        * fold-const.c (const_binop): Don't initialize REAL_VALUE_TYPE decls.
        !          3783: 
        !          3784: Thu Sep 27 14:06:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3785: 
        !          3786:        * expr.c (expand_expr): Set MEM_VOLATILE_P from TREE_THIS_VOLATILE.
        !          3787: 
        !          3788: Wed Sep 26 00:21:23 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3789: 
        !          3790:        * tm-mips-news.h: New file.
        !          3791: 
        !          3792:        * out-i860.c (output_size_for_block_move): Don't decrement.
        !          3793:        (output_block_move): Decrement initial storing address instead.
        !          3794: 
        !          3795:        * c-parse.y (yylex): Always try unsigned int if `u' is written.
        !          3796: 
        !          3797:        * c-typeck.c (build_unary_op): Don't let &* make an lvalue.
        !          3798: 
        !          3799:        * c-parse.y (initlist): Use [N] rather than case N: for array index.
        !          3800: 
        !          3801:        * tm-seq386.h (LINK_SPEC): Define it.
        !          3802: 
        !          3803:        * c-parse.y (yylex): Don't try signed int for nondecimal constant
        !          3804:        if -traditional.  Improve messages for -Wtraditional.
        !          3805: 
        !          3806:        * stor-layout.c (layout_record): Avoid using DECL_SIZE_UNIT.
        !          3807: 
        !          3808:        * jump.c (jump_optimize): Scan all insns for label refs.
        !          3809:        (mark_jump_label): Quickly ignore uninteresting rtl types.
        !          3810:        * rtl.def (INSN, CALL_INSN): Add a slot for JUMP_LABEL.
        !          3811: 
        !          3812:        * jump.c (jump_optimize): Try combining stack adjusts with pushes.
        !          3813: 
        !          3814: Mon Sep 24 07:31:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3815: 
        !          3816:        * stmt.c (expand_computed_goto): Emit barrier after jump.
        !          3817: 
        !          3818:        * expr.c (case LABEL_DECL): Return a MEM, so we can take its
        !          3819:        address; correctly form LABEL_REF.
        !          3820: 
        !          3821: Sun Sep 23 22:54:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3822: 
        !          3823:        * loop.c (struct movable): Delete field SET_EQUAL; new field MOVE_INSN.
        !          3824:        (scan_loop): Only use REG_EQUAL note under very restricted
        !          3825:        cirsumstances.  Set MOVE_INSN field in movables when appropriate.
        !          3826:        (combine_movables): Simplify matching test now that we only have one
        !          3827:        source field.
        !          3828:        (move_movables): Handle MOVE_INSN movables by emitting a new move
        !          3829:        insn in front of the loop.
        !          3830:        Correct typo in checking for CALL_INSN.
        !          3831:        Don't try to make a REG_EQUAL note.
        !          3832:        (count_loop_regs_set): Remove extraneous assignment to MAY_NOT_MOVE.
        !          3833: 
        !          3834: Sun Sep 23 14:59:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3835: 
        !          3836:        * cccp.c (S_ISREG): Define it unless overridden.
        !          3837:        (main, finclude): Use that.
        !          3838: 
        !          3839:        * reload1.c (reload): If insn after a function call uses the
        !          3840:        function value, and that reg is spilled, and the insn might
        !          3841:        use it for reloading, add an extra need.
        !          3842:        (reload_as_need): Detect such insns for new arg to choose_reload_regs.
        !          3843:        (choose_reload_regs): In that case, don't choose function value reg.
        !          3844: 
        !          3845:        * tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH.
        !          3846: 
        !          3847: Sun Sep 23 07:52:32 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          3848: 
        !          3849:        * version.c (version_string): Bumped to 1.90.02.
        !          3850: 
        !          3851:        * final.c (leaf_function): Variable now non-static.
        !          3852:        * final.c (only_leaf_regs_used): Function now non-static.
        !          3853:        * final.c (leaf_function_p): Move initialization of
        !          3854:        `leaf_function' from here...
        !          3855:        * toplev.c (compile_file): ...to here.  We want to know the
        !          3856:        value of `leaf_function' when we perform code reorginization.
        !          3857:        * final.c (leaf_function_p): If profiling arcs, we cannot have
        !          3858:        a leaf function.  Also, we have to look at insns in
        !          3859:        `epilogue_delay_list' to know that all our constraints are
        !          3860:        satisfied.
        !          3861:        * final.c (only_leaf_regs_used): Have to look in
        !          3862:        `epilogue_delay_list' to know that all our constraints are
        !          3863:        satisfied.
        !          3864: 
        !          3865:        * toplev.c (warning_with_file_and_line,warning): Declare third
        !          3866:        argument V3 for warnings that require 3 `%' expressions in S.
        !          3867:        * toplev.c (strip_off_ending): New helper function that removes
        !          3868:        a GCC-recognized filename extension.  Call this function in
        !          3869:        GCC instead of expanding it inline in C code everywhere.
        !          3870: 
        !          3871:        * sched.c (schedule_block): The last basic block does not have
        !          3872:        no live registers.  Also, check that we don't copy from an
        !          3873:        entry in `basic_block_live_at_start' that does not exist.
        !          3874:        * sched.c (update_reg_first_use): When splitting insns, the
        !          3875:        insn that is in REG_FIRST_USE might become a NOTE, and a new
        !          3876:        insn become the insn that should be considered the first use.
        !          3877:        `update_first_use' keeps REG_FIRST_USE up to date.
        !          3878:        * sched.c (update_links): Call note_stores with
        !          3879:        `update_first_use' when an insn splits.
        !          3880: 
        !          3881: Sun Sep 23 00:05:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3882: 
        !          3883:        * c-decl.c (grokdeclarator): Put var array bound in save_expr.
        !          3884: 
        !          3885: Sat Sep 22 14:01:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3886: 
        !          3887:        * tree.c (build_index_type): Don't hash variable-bound type.
        !          3888: 
        !          3889:        * c-decl.c (start_decl): Error here if var-size object initialized.
        !          3890:        (grokdeclarator, finish_struct): Record types & decls
        !          3891:        with array sizes not written as constants.
        !          3892:        * c-tree.h (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): New macros.
        !          3893: 
        !          3894:        * tm-aix386.h (LIB_SPEC): Different library name for -p.  Always -lc.
        !          3895:        (LINK_SPEC): Don't pass -lg or -g.
        !          3896:        (CPP_PREDEFINES): Define _I386 and _AIX.  Don't define unix.
        !          3897:        (SDB_DEBUGGING_INFO): Define it.
        !          3898:        (DBX_DEBUGGING_INFO): Undefine it.
        !          3899:        (ASM_FILE_START): Output .noopt if not optimizing.
        !          3900:        (PCC_BITFIELD_TYPE_MATTERS): Define it.
        !          3901:        (FUNCTION_PROFILER): Add definition.
        !          3902: 
        !          3903: Fri Sep 21 16:26:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3904: 
        !          3905:        * function.c (current_function_epilogue_list): Define this here.
        !          3906:        * reorg.c: Not here.
        !          3907: 
        !          3908: Fri Sep 21 13:11:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3909: 
        !          3910:        * varasm.c (assemble_external_libcall): Frob SYMBOL_REF_USED here.
        !          3911: 
        !          3912: Thu Sep 20 15:29:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3913: 
        !          3914:        * expr.h (struct optab): Field libfunc, an rtx, replaces lib_call.
        !          3915:        * rtl.h (SYMBOL_REF_USED): New macro.
        !          3916:        * optabs.c (init_optabs): Initialize that field properly.
        !          3917:        Also initialize new variables *_libfunc.
        !          3918:        (various functions): Use those vars; use libfunc field.
        !          3919:        * expr.c (convert_move, emit_block_move, clear_storage): Use the vars.
        !          3920:        (emit_push_insn, expand_assignment): Likewise.
        !          3921: 
        !          3922: Thu Sep 20 13:51:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3923: 
        !          3924:        * out-a29k.c (current_function_epilogue_delay_slot): Renamed from
        !          3925:        epilogue_delay_slot.
        !          3926: 
        !          3927:        * romp.md (movdi): Fix missing short/long qualifier on memory ref.
        !          3928:        (SFmode/DFmode move patterns): Add explicit alternatives for
        !          3929:        storing and loading general registers from memory; also add
        !          3930:        DEFINE_SPLITs for these cases for DFmode.
        !          3931:        (negsf2,negdf2): Don't use XOR if an operand is a hard FP register.
        !          3932: 
        !          3933:        * tm-romp.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Use correct
        !          3934:        register numbers for FP registers.
        !          3935: 
        !          3936:        * output.h (current_function_epilogue_delay_list): New var.
        !          3937:        * function.c: Include output.h and initialize new var above.
        !          3938:        * Makefile.in (function.o): Now includes output.h.
        !          3939:        * reorg.c (epilogue_delay_list): Renamed to
        !          3940:        current_function_epilogue_delay_list.
        !          3941: 
        !          3942:        * final.c (final_scan_insn): Don't delete no-op insn if in delay slot
        !          3943:        or if we have already pre-scanned.
        !          3944: 
        !          3945:        * genconfig.c (max_insns_per_split): Rename from
        !          3946:        max_insns_per_split_flag and default to 1 instead of 0.
        !          3947: 
        !          3948:        * genattrtab.c (n_comma_elts): Return zero for null string.
        !          3949: 
        !          3950:        * sdbout.c (MIN,MAX): Add to here; required by recent changes.
        !          3951: 
        !          3952:        * expr.c (safe_from_p): A MEM rtx is not safe from an INDIRECT_REF.
        !          3953: 
        !          3954:        * c-parse.y (ridpointers): Move definition in front of first use.
        !          3955: 
        !          3956:        * reorg.c (mark_referenced_resources): Allow for CODE_LABELs between a
        !          3957:        CALL_INSN and USE insns preceeding it.
        !          3958:        (mark_set_resources): Likewise, for following CLOBBERs.
        !          3959: 
        !          3960: Wed Sep 19 17:45:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3961: 
        !          3962:        * assert.h (printf): Don't define; should be in stdio.h.
        !          3963: 
        !          3964:        * rtl.h (PUT_REG_NOTE_KIND): New macro.
        !          3965:        * sched.c (attach_deaths): Use it.
        !          3966: 
        !          3967:        * reorg.c (mark_referenced_resources): If we put insns to load
        !          3968:        parameters into the delay slot of a CALL, ignore the USE insns
        !          3969:        for those parameters.
        !          3970: 
        !          3971:        * function.c (fixup_var_refs_1): Don't call fixup_memory_subreg unless
        !          3972:        its would-be operand is a SUBREG.
        !          3973: 
        !          3974: Wed Sep 19 00:26:59 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3975: 
        !          3976:        * print-tree.c (print_node): Indent before printing RTL.
        !          3977: 
        !          3978:        * Makefile.in (protoize.o, unprotoize.o): Look for SYSCALLS.c.X
        !          3979:        in libsubdir.
        !          3980: 
        !          3981: Tue Sep 18 21:55:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          3982: 
        !          3983:        * cse.c (fold_rtx): For MEM with constant address, split the
        !          3984:        address into possible base and offset; ensure constant pool
        !          3985:        value is same mode as our reference unless we are getting a
        !          3986:        word of a DImode CONST_INT.
        !          3987:        Treat SYMBOL_REF and LABEL_REF as constants.
        !          3988:        If we are getting a word at a constant offset from a jump table,
        !          3989:        replace with the contents of that jump table entry.
        !          3990:        (cse_insn): When folding jump to variable location (e.g., tablejump),
        !          3991:        LABEL_REF is the cheapest of all, since the branch would be simple.
        !          3992:        Special-case changing variable branch to normal unconditional
        !          3993:        because the RTL may be different (e.g., the variable branch may
        !          3994:        include a USE).
        !          3995: 
        !          3996: Tue Sep 18 18:33:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          3997: 
        !          3998:        * toplev.c (count_error): Handle warnings_are_errors.
        !          3999:        (W_options): Handle -Werror.
        !          4000: 
        !          4001: Mon Sep 17 00:02:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4002: 
        !          4003:        * c-decl.c (lookup_label): Use void as type of label.
        !          4004:        * stmt.c (label_rtx): No longer static.
        !          4005:        * expr.c (expand_expr): Handle LABEL_DECL.
        !          4006: 
        !          4007: Sun Sep 16 16:27:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4008: 
        !          4009:        * expr.c (expand_builtin): Error for __builtin_nextarg
        !          4010:        if function definition doesn't have `...'.
        !          4011: 
        !          4012:        * expmed.c (store_bit_field): Adjust BITPOS to UNIT all at once.
        !          4013:        for insv, use mode of operand 3 instead of SImode.  Define MAXMODE.
        !          4014:        Adjust XBITPOS along with mode of XOP0.
        !          4015:        (extract_bit_field): Adjust XBITPOS along with mode of XOP0.
        !          4016:        for extv and extzv, use mode of operand 3 thoroughly instead of SImode.
        !          4017: 
        !          4018:        * sdbout.c (CHAR_TYPE_SIZE,...): Default definitions of these macros.
        !          4019:        (plain_type_1): Use those macros to distinguish int and floating types.
        !          4020: 
        !          4021:        * toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb
        !          4022:        only if top_level.
        !          4023: 
        !          4024:        * c-parse.y (unary): Don't forget to look up the label.
        !          4025: 
        !          4026:        * c-typeck.c (build_conditional_expr): Don't skip arg promotion.
        !          4027: 
        !          4028: Sun Sep 16 14:54:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4029: 
        !          4030:        * combine.c (try_combine): If we don't recognize the combined insn,
        !          4031:        try it without any CLOBBERs.
        !          4032: 
        !          4033:        * final.c (final_scan_insn): Prevent CC tracking from thinking
        !          4034:        that the CC was set by an insn in the delay slot of a CALL_INSN.
        !          4035: 
        !          4036:        * expmed.c (init_expmed, expand_divmod): Allow machine to have
        !          4037:        low cost specified for divides by powers of two if it can do it by
        !          4038:        a method that if cheaper than the normal shift/branch/adjust mechanism.
        !          4039: 
        !          4040:        * cse.c (fold_rtx): When putting constant last, ensure that the
        !          4041:        resulting insn is valid.
        !          4042: 
        !          4043:        * objc-actions (finish_objc): Remove dup defn of gen_declaration_file.
        !          4044: 
        !          4045:        * objc-parse.y (ridpointers, token_buffer): Define before use.
        !          4046: 
        !          4047:        * reload1.c (scan_paradoxical_subregs): Declare correctly.
        !          4048: 
        !          4049:        * tm-romp.h (ENCODE_SEGMENT_INFO): Use INTEGRATED bit to mark
        !          4050:        SYMBOL_REFs that are addresses of functions (really their data blocks).
        !          4051:        (LEGITIMATE_CONSTANT_P): Data block addresses of functions are not
        !          4052:        valid operands.
        !          4053:        * out-romp.c (symbolic_operand): Likewise.
        !          4054:        * romp.md (call*): emit_move_insn will now do force_const_mem
        !          4055:        so it needn't be done explicitly.
        !          4056: 
        !          4057:        * out-romp.c (output_fpop): Work around yet another RT fp bug;
        !          4058:        cannot merge output and first operand for SFmode if general reg.
        !          4059: 
        !          4060:        * romp.md: Add new pattern to match combination of copy and test.
        !          4061:        Use nilo instruction to set CC.
        !          4062: 
        !          4063: Fri Sep 14 07:07:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4064: 
        !          4065:        * c-tree.h: Define all *_type_node trees defined in c-decl.c, in the
        !          4066:        same order as defined there.
        !          4067: 
        !          4068: Fri Sep 14 08:39:17 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4069: 
        !          4070:        * cplus-typeck.c (build_c_cast): Convert READONLY_DECLs to make up
        !          4071:        for the fact that we do not call `default_conversion' anymore.
        !          4072: 
        !          4073:        * function.c (instantiate_virtual_regs): If the function is inline,
        !          4074:        we don't need to worry about making valid rtl, but we do need to
        !          4075:        worry about instantiating all virtual registers.  Otherwise we must
        !          4076:        make the rtl valid, and we have other opportunities to eliminate the
        !          4077:        virtual registers during the compilation.
        !          4078: 
        !          4079: Thu Sep 13 16:00:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4080: 
        !          4081:        * reload.c (MATCHES): Check for different rtx's with same reg number.
        !          4082: 
        !          4083:        * fixincludes: Discard `.' from value of `files'.
        !          4084: 
        !          4085:        * c-parse.y (unary_expr): Use unary && to get address of label.
        !          4086:        (stmt): Handle `goto *EXPRESSION;'.
        !          4087:        * stmt.c (expand_computed_goto): New function.
        !          4088: 
        !          4089:        * gstdarg.h: New name for stdarg.h.
        !          4090:        * Makefile (install-headers): Rename gstdarg.h while installing it.
        !          4091: 
        !          4092:        * sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM.
        !          4093:        (plain_type): Output accumulated array dims and size.
        !          4094:        (plain_type_1): Eliminate arg NOSIZE.  Save up dims and size.
        !          4095:        Call self rather than plain_type for pointers and functions.
        !          4096:        (sdbout_array_type, sdbout_array_depth): Functions deleted.
        !          4097: 
        !          4098: Thu Sep 13 16:12:15 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4099: 
        !          4100:        * cplus-class.c (build_method_call): Fix typo in deciding whether to
        !          4101:        do hairy or trivial pointer conversions on `this'.
        !          4102: 
        !          4103:        * cplus-tree.c (layout_vbasetypes): Don't double-count space taken
        !          4104:        up by virtual baseclasses.
        !          4105: 
        !          4106: Wed Sep 12 18:14:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4107: 
        !          4108:        * tm-m68k.h: Use asm_fprintf widely.
        !          4109:        (REG_PREFIX, IMMEDIATE_PREFIX, LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX):
        !          4110:        New macros.
        !          4111: 
        !          4112:        * final.c (asm_fprintf): New function.
        !          4113: 
        !          4114: Wed Sep 12 06:07:50 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4115: 
        !          4116:        * cplus-dbxout.c (dbxout_type): Output basetype size and offset info
        !          4117:        in bits, not bytes.
        !          4118: 
        !          4119:        * cplus-decl.c (finish_{decl,function}): Set CLASSTYPE_ASM_WRITTEN
        !          4120:        bit of types used by non-extern VAR_DECLs.  Set it also for types of
        !          4121:        PARM_DECLs and return types of functions defined in the file being
        !          4122:        compiled.
        !          4123: 
        !          4124: Tue Sep 11 13:21:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4125: 
        !          4126:        * sdbout.c (plain_type_1): New argument NOSIZE.  Inhibits size output.
        !          4127:        (sdbout_array_type): Call plain_type_1 directly; set NOSIZE.
        !          4128: 
        !          4129:        * sdbout.c (sdbout_array_type): New argument DEPTH.
        !          4130:        Don't output more than SDB_MAX_DIM dimensions.
        !          4131:        (sdbout_array_depth): New function.
        !          4132:        (plain_type_1): Start DEPTH by calling sdbout_array_depth.
        !          4133: 
        !          4134:        * gnulib2.c (_bb_init_func): Library member now named _bb.
        !          4135: 
        !          4136:        * tree.h: Add comments.
        !          4137: 
        !          4138: Mon Sep 10 17:20:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4139: 
        !          4140:        * Makefile.in (install): Fix typo.
        !          4141: 
        !          4142:        * cccp.c (macarg1): With -traditional, backslash quotes chars.
        !          4143: 
        !          4144: Mon Sep 10 16:37:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4145: 
        !          4146:        * jump.c (jump_optimize): Don't swap THEN and ELSE parts during jumps
        !          4147:        runs after reload.
        !          4148: 
        !          4149: Mon Sep 10 13:07:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4150: 
        !          4151:        * cccp.c (collect_expansion): Don't actually substitutee into a
        !          4152:        string if ANSI; just consider warning.
        !          4153: 
        !          4154:        * gnulib2.c (div_qrrnd for i386): Fix typo.  Rename some args.
        !          4155: 
        !          4156:        * sdbout.c (sdbout_array_type): New argument DEPTH.
        !          4157:        Don't output more than SDB_MAX_DIM dimensions.
        !          4158:        (plain_type_1): Start DEPTH at 1.
        !          4159: 
        !          4160: Sun Sep         9 22:02:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4161: 
        !          4162:        * out-a29k.c (gen_reg_operand): Exclude SUBREG of a special
        !          4163:        register.
        !          4164: 
        !          4165:        * cse.c: (fold_rtx): Get equivalent for register before seeing if
        !          4166:        memory reference is to constant pool.
        !          4167:        (cse_ins): Only call force_const_mem if we actually try to use
        !          4168:        the constant (i.e., we haven't found anything cheaper).
        !          4169: 
        !          4170: Sun Sep         9 21:49:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4171: 
        !          4172:        * ..._BIG_ENDIAN: Now expect definition to be 0 or 1.
        !          4173:        All refs and defs changed.
        !          4174: 
        !          4175:        * tm-mips.h (CPP_SPEC): Error for -EL (for -EB, if DECSTATION).
        !          4176: 
        !          4177:        * sdbout.c (sdbout_one_type): Set TREE_ASM_BEING_WRITTEN before
        !          4178:        recursion, and TREE_ASM_WRITTEN after.
        !          4179: 
        !          4180: Sat Sep         8 16:47:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4181: 
        !          4182:        * hard-params.c (main): Don't try to malloc all memory.
        !          4183: 
        !          4184: Sat Sep         8 16:38:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4185: 
        !          4186:        * reload1.c (reload): Set reg_equiv_constant if the equivalence
        !          4187:        is any constant, not just a legitimate constant operand.
        !          4188: 
        !          4189:        * final.c (get_attr_length, shorten_branches, final_scan_insn):
        !          4190:        If JUMP_TABLES_IN_TEXT_SECTION is defined, don't put jump tables
        !          4191:        in readonly data section, even if it exists.
        !          4192: 
        !          4193: Sat Sep         8 14:07:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4194: 
        !          4195:        * Makefile.in (bootstrap*): Pass null ALLOCA definition to recursive
        !          4196:        makes when compiling with GCC since it never needs alloca.c.
        !          4197: 
        !          4198:        * c-typeck.c (build_binary_op_nodefault): Warn for signed < unsigned.
        !          4199:        Controlled by -W.
        !          4200: 
        !          4201:        * tm-i386v4.h: New file.
        !          4202: 
        !          4203: Fri Sep         7 13:10:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4204: 
        !          4205:        * cccp.c (STDC_VALUE): New macro, defaulting to 1.
        !          4206:        (intialize_builtins): Use that.
        !          4207: 
        !          4208:        * m68k.md (movqi): `st' does not set cc's.
        !          4209: 
        !          4210: Fri Sep         7 07:49:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4211: 
        !          4212:        * genemit.c (gen_expand): Fix test for no C code.
        !          4213:        If no C code, no MATCH_DUPs, and only one insn to write, handle
        !          4214:        like DEFINE_INSN and return that insn rather than making a sequence.
        !          4215: 
        !          4216:        * emit-rtl.c (add_insn_after): If previous or next insn is a
        !          4217:        SEQUENCE, update the NEXT_INSN in the last insn in the SEQUENCE or
        !          4218:        PREV_INSN of the first, as appropriate.
        !          4219:        (emit_insn_before, emit_jump_insn_before, emit_note_before):
        !          4220:        Call add_insn_after.
        !          4221: 
        !          4222:        * stmt.c (check_for_full_enumeration_handling): If a switch whose index
        !          4223:        is an enumerated type contains labels for every enumeration value,
        !          4224:        make the label for the last value the default label since such a
        !          4225:        switch can never fall through.
        !          4226: 
        !          4227:        * genattr.c (fatal): Declare first arg correctly.
        !          4228: 
        !          4229:        * combine.c (try_combine): No longer check REG_FUNCTION_VALUE_P;
        !          4230:        its value shouldn't matter once RTL generation is complete.
        !          4231:        (subst): If NOT is present as an operand in commutative operation,
        !          4232:        put it last to reduce the number of required patterns.
        !          4233: 
        !          4234:        * out-romp.c (output_fpops): Align to word boundary before writing
        !          4235:        any floating-point blocks.
        !          4236: 
        !          4237:        * function.c (instantiate_virtual_regs_1): Fix typo in previous change.
        !          4238:        When a MEM must be copied, use copy_rtx; the PLUS may also be shared.
        !          4239: 
        !          4240: Thu Sep         6 15:19:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4241: 
        !          4242:        * gcc.c (do_spec_1): Don't add __ to -D if __ already present.
        !          4243: 
        !          4244:        * c-typeck.c (convert_for_assignment):
        !          4245:        Better warning for FCN * vs. void *
        !          4246:        Specific warning for char * vs. unsigned char *.
        !          4247: 
        !          4248: Thu Sep         6 14:52:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4249: 
        !          4250:        * reorg.c (find_basic_block): Return -1, not 0, if we can't find
        !          4251:        the basic block.
        !          4252:        (mark_target_live_regs): Clear PENDING_DEAD_REGS unconditionally.
        !          4253:        (relax_delay_slots): Don't call optimize_skip for unconditional jump.
        !          4254:        Only try to remove jump if it is a simple conditional or
        !          4255:        unconditional jump (but not a tablejump or similar such).
        !          4256: 
        !          4257:        * cse.c (invalidate, refers_to_mem_p, cse_rtx_addr_varies_p):
        !          4258:        Consider (plus (reg) (const_int)) to be a fixed address if REG
        !          4259:        is constant; old code just handled REG.
        !          4260: 
        !          4261:        * genrecog.c (enum routine_type): Use to distinguish two types of
        !          4262:        routines that we write: recog and split_insns.
        !          4263:        (make_split_sequence): Write out extern for gen_split_ function.
        !          4264:        (break_out_subroutines, write_subroutine, write_tree, main):
        !          4265:        Use new enum routine_type instead of passing "split" or "recog".
        !          4266:        (write_subroutine): Write correct type for splitting functions and
        !          4267:        return 0, not -1.
        !          4268:        (main): Write includes before declarations of gen_split_ functions
        !          4269:        since "rtx" is needed for them.
        !          4270:        * rtl.h (try_split, split_insns): Added definitions.
        !          4271: 
        !          4272: Wed Sep         5 16:20:07 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4273: 
        !          4274:        * Makefile.in (includes): Use proper directory.
        !          4275: 
        !          4276: Tue Sep         4 13:59:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4277: 
        !          4278:        * c-decl.c (store_parm_decls): Let extra_warnings control
        !          4279:        warnings about parms not declared.
        !          4280: 
        !          4281:        * flow.c (life_analysis): Move code to detect stack-adjust insns.
        !          4282:        It was unreachable.
        !          4283: 
        !          4284:        * gnulib.c, gnulib2.c (abort): #undef in case config.h defines it.
        !          4285: 
        !          4286: Mon Sep         3 17:50:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4287: 
        !          4288:        * calls.c (expand_call): If SETUP_INCOMIMG_VARARGS is defined, pass
        !          4289:        unnamed args in registers.
        !          4290:        * function.c (assign_parms): Call SETUP_INCOMING_VARARGS for
        !          4291:        stdargs as well as varargs; ensure we only call it once.
        !          4292: 
        !          4293:        * function.c (instantiate_virtual_regs_1): Don't assume all memory
        !          4294:        addresses are valid for all insns.
        !          4295: 
        !          4296: Sun Sep         2 22:17:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4297: 
        !          4298:        * expr.c (emit_library_call): Push all stack args, then load regs.
        !          4299: 
        !          4300:        * c-decl.c (c_build_type_variant): For an ARRAY_TYPE,
        !          4301:        put the qualifier into the array as well as the element.
        !          4302:        (grokdeclarator): When a field or variable is supposed to be
        !          4303:        a const or volatile array, make the array elements const or
        !          4304:        volatile, but also make the field or variable so.
        !          4305: 
        !          4306:        * c-decl.c (grokdeclarator): Turn off the warning for const or volatile
        !          4307:        function type when making an array.  It was useless.
        !          4308: 
        !          4309: Fri Aug 31 16:26:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4310: 
        !          4311:        * c-common.c (truthvalue_conversion): Let the
        !          4312:        language-specific code decide how to convert EXPR
        !          4313:        if it is not one of the special forms we recognize.
        !          4314: 
        !          4315: Fri Aug 31 15:08:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4316: 
        !          4317:        * gcc.c (execute): Use I instead of undefined var J if DEBUG defined.
        !          4318: 
        !          4319: Fri Aug 31 14:37:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4320: 
        !          4321:        * sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block.
        !          4322: 
        !          4323: Thu Aug 30 21:31:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4324: 
        !          4325:        * expmed.c (extract_bit_field): Fix typos in computations of UNIT.
        !          4326: 
        !          4327: Wed Aug 29 12:33:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4328: 
        !          4329:        * sdbout.c (sdbout_reg_parms): Don't advance parm twice.
        !          4330: 
        !          4331: Tue Aug 28 22:49:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4332: 
        !          4333:        * cccp.c (delete_newlines): New function.
        !          4334:        (macroexpand): Remove newlines from args used more than once.
        !          4335: 
        !          4336: Tue Aug 28 22:16:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4337: 
        !          4338:        * Makefile.in (sched.o): Add to list of files to compile.
        !          4339: 
        !          4340:        * c-parse.y (position_after_white_space): Declare with correct type.
        !          4341: 
        !          4342:        * fold-const.c (optimize_bit_field_compare): Fix typo.
        !          4343: 
        !          4344:        * reorg.c (split_insns): No longer need extern for this here.
        !          4345: 
        !          4346:        * toplev.c (sched_dump_file): Define.
        !          4347:        (compile_file): Initialize and print sched_time and sched2_time.
        !          4348: 
        !          4349:        * local-alloc.c (block_alloc): Fix typo in allocation of insn_map.
        !          4350: 
        !          4351:        * cse.c (cse_insn): Try related value in case where CONST is seen
        !          4352:        first and SYMBOL_REF later.
        !          4353: 
        !          4354: Tue Aug 28 16:26:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4355: 
        !          4356:        * cccp.c (main): Don't modify or validate arg of -D here.
        !          4357:        (make_definition): Do it all here.
        !          4358: 
        !          4359:        * function.c (assign_parms): Reenable `register' for parms.
        !          4360: 
        !          4361: Tue Aug 28 07:12:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4362: 
        !          4363:        * tm-a29k.h (CONST_COSTS): All CONST_INTs are cost zero; adjust
        !          4364:        SYMBOL_REF and CONST_DOUBLE costs to reflect their actual cost.
        !          4365: 
        !          4366:        * expr.c (expand_expr): Don't suppress EXPAND_SUM here if not Pmode.
        !          4367:        (expand_expr, case *_DECL): Return constant address if
        !          4368:        EXPAND_SUM or EXPAND_INTO_STACK in addition to EXPAND_CONST_ADDRESS;
        !          4369:        all of these cases will later call memory_address.
        !          4370:        (expand_expr, case COMPONENT_REF): Always make recursive call with
        !          4371:        EXPAND_SUM.
        !          4372:        (expand_expr, case PLUS_EXPR): Try to form constant if X + CONST and
        !          4373:        mode is Pmode without EXPAND_SUM; if not EXPAND_SUM, use force_operand.
        !          4374:        Check for MODE != Pmode with EXPAND_SUM here.
        !          4375:        (expand_expr, case MINUS_EXPR): Always process X - CONST_INT as
        !          4376:        X + (-CONST_INT)).
        !          4377: 
        !          4378: Sun Aug 26 23:10:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4379: 
        !          4380:        * c-decl.c (c_decode_option): Handle -funsigned-bitfields. 
        !          4381:        (grokdeclarator): Do the real work.
        !          4382:        (grokfield): Pass either FIELD or BITFIELD to grokdeclarator.
        !          4383: 
        !          4384:        * tm-att386.h (asm_output_common): Use SIZE, not ROUNDED.
        !          4385: 
        !          4386: Sat Aug 25 17:17:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4387: 
        !          4388:        * c-parse.y (unary_expr): Turn off handling of &...
        !          4389:        * c-decl.c (store_parm_decls): Turn off extra dummy parameter.
        !          4390: 
        !          4391:        * tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros.
        !          4392:        (BSS_SECTION_ASM_OP): New macro.
        !          4393:        (ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss.
        !          4394: 
        !          4395:        * combine.c (subst): Handle shift within mem, as multiplication.
        !          4396: 
        !          4397: Sat Aug 25 11:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4398: 
        !          4399:        * final.c (alter_cond): Handle CC_INVERTED.
        !          4400: 
        !          4401:        * conditions.h (CC_INVERTED): New flag indicating that the condition
        !          4402:        tested leaves the falgs set opposite to the condition tested.  This
        !          4403:        is unsafe for IEEE floating point operations, but useful for integer
        !          4404:        operations which can combine with condition-code setting operations.
        !          4405: 
        !          4406:        * c-parse.y (position_after_white_space): New function.  Skips
        !          4407:        all of the whitespace at the current location in the input
        !          4408:        file, taking NEXTCHAR into account.  Changed all callers of
        !          4409:        `skip_white_space' in grammar to use this function instead.
        !          4410: 
        !          4411:        * genrecog.c (main): Generate code which is more easily optimized by
        !          4412:        GCC's cse.  In particular, start each recognizer with the address of
        !          4413:        `recog_operands' in a register.
        !          4414: 
        !          4415:        * reload.c (combine_reloads): Can only combine reloads if the
        !          4416:        register we find can hold the entire output reload (i.e., SFmode
        !          4417:        register may not be suitable for combining with DFmode register).
        !          4418: 
        !          4419:        * optabs.c (have_sub2_insn): Fixed typo.
        !          4420:        * combine.c (combine_instructions): Fixed typo in comment.
        !          4421: 
        !          4422:        * function.c (expand_function_end): Emit a barrier after a RETURN
        !          4423:        jump.
        !          4424: 
        !          4425:        * Added diffs for new instruction scheduling code.
        !          4426:        * emit-rtl.c (try_split): Moved here from reorg.c and made
        !          4427:        public.  Both instruction scheduling and delayed branch
        !          4428:        filling now use the same code to split insns.
        !          4429:        * flags.h: Add new flags FLAG_SCHEDULE_INSNS for instruction
        !          4430:        scheduling before register allocation and
        !          4431:        FLAG_SCHEDULE_INSNS_AFTER_RELOAD for insn scheduling after
        !          4432:        register allocation.
        !          4433:        * recog.c (constrain_operands): Recognize pseudo registers as
        !          4434:        registers for the purpose of insn constraint matching before
        !          4435:        register allocation.  Otherwise, the insn scheduler assumes
        !          4436:        the operands will be memory, which is usually wrong (and
        !          4437:        causes it to build bad schedules).
        !          4438:        * sched.c (order_calls): New function.  For two CALL_INSNS in
        !          4439:        the rtl chain, we set up a constraint that the second
        !          4440:        CALL_INSN may not be scheduled to run before the first.
        !          4441:        (sched_analyze_*): Three kinds of dependencies (true, anti,
        !          4442:        and output) constrain the order in which insns can be
        !          4443:        rearranged and still preserve their execution semantics.
        !          4444:        We now handle dependencies for pseudo and hard register usage
        !          4445:        and for memory usage in these functions.
        !          4446:        (launch_links): The ordering of which newly ready insns to
        !          4447:        execute is now preserved according to their `priority' in the
        !          4448:        insn chain, and no longer on their order in the dependency
        !          4449:        list from which they were launched.
        !          4450:        (schedule_block): Removed support for trying to schedule insns
        !          4451:        taking branch delays into account.  Reorg.c should be hacked
        !          4452:        to understand which insns to pull into delay slots and which
        !          4453:        insns to leave alone.
        !          4454:        (schedule_block): (Re-)compute all register life information here.
        !          4455:        No longer dependent on flow to keep `basic_block_live_at_end'
        !          4456:        allocated.
        !          4457:        (schedule_insns): Recompute LABEL->BASIC BLOCK mapping, so we
        !          4458:        can compute register life information.
        !          4459:        * rtl.c (add_dependence): New function to add and remove insn
        !          4460:        dependencies.  If an insn (I2) must execute after another
        !          4461:        (I1), we add an INSN_LIST containing I1 to I2's LOG_LINKS.
        !          4462:        If such an INSN_LIST is already in I2's LOG_LINKS, we don't
        !          4463:        add a second.
        !          4464:        (remove_dependence): Similar, but removes dependencies.  May
        !          4465:        not actually be needed.
        !          4466:        * toplev.c (compile_file,rest_of_compilation): Added code for
        !          4467:        dumping info about insn scheduling.
        !          4468: 
        !          4469: Fri Aug 24 17:24:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4470: 
        !          4471:        * Implement `aligned (INTEGER)' attribute for real.
        !          4472:        * c-parse.y (attrib): Really record info for `aligned' attribute.
        !          4473:        Don't warn for any integer alignment.
        !          4474:        (attribute_list): Make a list.
        !          4475:        (initdcl, notype_initdcl, component_declarator): Handle that info.
        !          4476:        * c-common.c (decl_attributes): New function.
        !          4477: 
        !          4478: Fri Aug 24 07:12:05 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4479: 
        !          4480:        * genattrtab.c (insn-config.h): This is really needed after all.
        !          4481:        * Makefile.in (genattrab.o): Show dependency on insn-config.h.
        !          4482: 
        !          4483:        * local-alloc.c (block_alloc): Don't update qty_birth for a
        !          4484:        register whose quantity is <= 0.
        !          4485: 
        !          4486:        * fold-const.c (decode_field_reference): Actually obtain unsigned
        !          4487:        type where one is wanted.
        !          4488:        (merge_component_references): Correctly test for mutually exclusive
        !          4489:        conditions.
        !          4490: 
        !          4491: Thu Aug 23 14:56:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4492: 
        !          4493:        * c-typeck.c (digest_initializer): No pedantic warning for string
        !          4494:        and array of unsigned char.
        !          4495: 
        !          4496:        * tree.c (get_identifier): Do id_clash_len stuff if length equals that.
        !          4497: 
        !          4498: Thu Aug 23 10:30:10 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4499: 
        !          4500:        * cplus-tree.h (CLASSTYPE_CID): Key off of TYPE_MAIN_VARIANT.
        !          4501: 
        !          4502: Thu Aug 23 06:44:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4503: 
        !          4504:        * out-romp.c (romp_pushes_stack): Don't count
        !          4505:        current_function_pretend_args_size in size of stack.
        !          4506: 
        !          4507: Wed Aug 22 18:00:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4508: 
        !          4509:        * tm-a29k.h, tm-a29kunix.h, xm-a29k.h, a29k.md, out-a29k.c: New files.
        !          4510: 
        !          4511:        * config.gcc (a29k-unix): New target.
        !          4512: 
        !          4513:        * calls.c (expand_call): Allow FUNCTION_ARG to return an EXPR_LIST
        !          4514:        specifying multiple registers to load.
        !          4515:        (store_one_arg): Likewise; also delete handling of fully-in-register
        !          4516:        case, which hasn't been handled here for a while.
        !          4517:        * expr.c (emit_library_call): Our subset of calling sequence for
        !          4518:        library routines does not include multiple registers for an arg.
        !          4519: 
        !          4520: Tue Aug 21 17:44:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4521: 
        !          4522:        * make-cc1.com: Compile and link version.c.
        !          4523: 
        !          4524:        * Makefile.in (install-gnulib): Create libg.a if none already.
        !          4525: 
        !          4526:        * expr.c (convert_move): Handle expand_unop retval not same as target.
        !          4527: 
        !          4528:        * reload.c (find_reloads): For register letters, don't win if BLK.
        !          4529: 
        !          4530:        * sdbout.c (sdbout_toplevel_data): Fix error message.
        !          4531: 
        !          4532:        * protoize.c (open): Prototype deleted.
        !          4533: 
        !          4534:        * flow.c (mark_set_1, mark_used_regs): Update reg_first_use.
        !          4535:        (allocate_for_life_analysis): Allocate and clear it.
        !          4536:        * local-alloc.c (block_alloc): Calculate INSN_MAP.
        !          4537:        Get first use of each reg from reg_first_use.
        !          4538: 
        !          4539:        * tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++.
        !          4540:        (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section.
        !          4541:        (ASM_OUTPUT_EXTERNAL): Use that section.
        !          4542:        (SELECT_SECTION): Go to that section when appropriate.
        !          4543: 
        !          4544: Tue Aug 21 18:26:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4545: 
        !          4546:        * reorg.c (fill_simple_delay_slots): Mark anything referenced by an
        !          4547:        insn that will be placed in a delay slot in the epilogue as being
        !          4548:        needed at the end of the function.
        !          4549: 
        !          4550:        * cse.c (constant_pool_entries_found): New static var.
        !          4551:        (cse_main): Initialize it.
        !          4552:        (use_related_value): Correctly look for registers in hash table.
        !          4553:        (fold_rtx): Fold constant pool entries to their constants and
        !          4554:        set constant_pool_entries_found.
        !          4555:        (cse_insn):  If we weren't able to place a constant in an insn
        !          4556:        and we have previously seen constant pool entries used, set up
        !          4557:        to try the constant pool entry also.
        !          4558: 
        !          4559: Mon Aug 20 12:14:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4560: 
        !          4561:        * function.c (assign_parms): Set LAST_NAMED for parm before dummy.
        !          4562:        See August 9 change in c-parse.y.
        !          4563: 
        !          4564:        * gcc.c (process_command): Split -oFOO into two arguments.
        !          4565: 
        !          4566:        * stmt.c (expand_asm_operands): Handle COMPONENT_REF and
        !          4567:        ARRAY_REF directly as output operands.  Avoids crash if BLKmode.
        !          4568: 
        !          4569:        * c-parse.y, cplus-parse.y, objc-parse.y: Include stdio before input.h.
        !          4570:        * input.h: Declare finput.
        !          4571: 
        !          4572:        * expr.c (emit_push_insn): Don't adjust for EXTRA separately
        !          4573:        if will have to adjust the stack anyway.
        !          4574: 
        !          4575:        * m68k.md (*sh*si3): On 68000, optimize case of >= 16 bits.
        !          4576: 
        !          4577:        * varasm.c (decode_rtx_const): Don't dereference a PLUS
        !          4578:        subexpression of a CONST twice.
        !          4579: 
        !          4580: Sun Aug 19 21:51:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4581: 
        !          4582:        * toplev.c (finput): Define here.
        !          4583:        * *-parse.y (lineno, finput): Duplicate definitions deleted.
        !          4584: 
        !          4585:        * global-alloc.c (find_reg): Test best_reg against 0,
        !          4586:        not first_pseudo_register.
        !          4587: 
        !          4588: Sun Aug 19 17:48:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4589: 
        !          4590:        * explow.c (plus_constant): If adding to constant pool constant,
        !          4591:        return a new one.
        !          4592: 
        !          4593:        * genattrtab.c: Need not include insn-config.h.
        !          4594: 
        !          4595: Sun Aug 19 17:23:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4596: 
        !          4597:        * tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__.
        !          4598: 
        !          4599:        * Makefile.in (USE_ALLOCA): Test was backwards.
        !          4600:        (USE_HOST_ALLOCA): Likewise.
        !          4601: 
        !          4602: Sun Aug 19 09:58:16 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4603: 
        !          4604:        * stmt.c: Fixes from 2.0 for fixup_goto incorporated here.
        !          4605: 
        !          4606:        * cplus-decl2.c (write_vtable_entries): Don't test TREE_EXTERNAL
        !          4607:        of DECL_CONTEXT (FN).  TREE_EXTERNAL is not meaningful for types.
        !          4608: 
        !          4609: Fri Aug 17 22:14:09 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4610: 
        !          4611:        * optabs.c (emit_cmp_insn): Don't abort after floating lib cmp.
        !          4612: 
        !          4613: Thu Aug 16 23:16:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4614: 
        !          4615:        * varasm.c (assemble_variable, assemble_static_space): Don't
        !          4616:        call data section if -fshared-data.  If this section is needed,
        !          4617:        it should be entered from elsewhere, and this is believe to be
        !          4618:        done in all known cases.
        !          4619:        (output_constant_pool): Add support for ASM_OUTPUT_SPECIAL_POOL_ENTRY
        !          4620:        which writes certain constant pool entries specially; used for TOC
        !          4621:        on RS/6000.
        !          4622:        (assemble_external_libcall): New function.
        !          4623:        * expr.c (emit_library_call): Call it.
        !          4624: 
        !          4625:        * reorg.c (mark_target_live_regs): Don't follow around infinite loops.
        !          4626: 
        !          4627:        * varasm.c (struct rtx_cont): Don't use enums in bit fields if
        !          4628:        ONLY_INT_FIELDS is defined.
        !          4629: 
        !          4630:        * cse.c (remove): Rename to remove_from_table to avoid conflict
        !          4631:        with `remove' defined in stdio.h.
        !          4632: 
        !          4633: Thu Aug 16 22:44:35 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4634: 
        !          4635:        * stmt.c: fixup_gotos must ignore blocks started after the goto.
        !          4636:        (block_start_count): New variable, and slot in some structures.
        !          4637:        (expand_function_start): Initialize it.
        !          4638:        (expand_start_bindings): Increment it and store in struct nesting.
        !          4639:        (expand_goto): Store it in struct goto_fixup.
        !          4640:        (fixup_gotos): Compare fixup's count with block's count.
        !          4641:        (save_stmt_status, restore_stmt_status): Handle block_start_count.
        !          4642:        * function.h (struct function): Make slot to save it.
        !          4643: 
        !          4644: Thu Aug 16 18:02:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4645: 
        !          4646:        * obtabs.c (expand_fix, expand_float): Support direct conversion
        !          4647:        between SFmode and fixed modes by library call.
        !          4648: 
        !          4649: Wed Aug 15 18:36:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4650: 
        !          4651:        * cccp.c (main): Allow -M to work on .s files by checking for .s
        !          4652:        and .S suffixes when writing dependencies.
        !          4653: 
        !          4654:        * reorg.c (optimize_skip, fill_eager_delay_slots, try_host_target):
        !          4655:        Don't need to call can_reverse_comparison_p because invert_jump is
        !          4656:        safe for floating-point; only reverse_condition isn't.
        !          4657: 
        !          4658: Wed Aug 15 15:50:36 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4659: 
        !          4660:        * dbxout.c (dbxout_type): Skip past const and volatile qualifiers
        !          4661:        that might appear in method names.
        !          4662: 
        !          4663: Wed Aug 15 15:44:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
        !          4664: 
        !          4665:        * c-parse.y (hash, is_reserved_word): Use __inline.
        !          4666: 
        !          4667:        * cccp.c (main): Support -dN and -dD.  Support -lint.
        !          4668:        (dump_macros): Two new alternatives.
        !          4669:        (handle_directive): Output macro definitions if -dN or -dD.
        !          4670:        (rescan): Check comments if -lint.
        !          4671:        (get_lintcmd): New subroutine.
        !          4672: 
        !          4673:        * c-decl.c (c_decode_option): Handle -fshort-double.
        !          4674:        (init_decl_processing): Create double_type_node accordingly.
        !          4675: 
        !          4676:        * c-decl.c (c_decode_option): Handle -Wno...
        !          4677: 
        !          4678: Tue Aug 14 23:10:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4679: 
        !          4680:        * explow.c (break_out_memory_refs): Don't break out reference if
        !          4681:        constant but not legitimate constant for a machine insn.
        !          4682:        (memory_address): Only put legitimate constants, rather than all
        !          4683:        constants, into registers if they are used as an address.
        !          4684: 
        !          4685: Tue Aug 14 14:34:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4686: 
        !          4687:        * reorg.c (steal_delay_list): Can't put something in a
        !          4688:        non-annulled delay slot that can trap.
        !          4689: 
        !          4690:        * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment.
        !          4691: 
        !          4692:        * cccp.c (do_assert, do_unassert, check_assertion): New functions.
        !          4693:        (compare_keyword_lists, read_keyword_list, free_keyword_list):
        !          4694:        New functions.
        !          4695:        * cexp.y (yylex): Allow `#' as token.
        !          4696:        Return name and length of symbol.
        !          4697:        (keywords): New nonterminal.
        !          4698:        (expr): Recognize # to test an assertion.
        !          4699:        (U_CHAR, struct arglist): Data types copied from cccp.c.
        !          4700:        (%union): New alternatives `keywords' and `name'.
        !          4701: 
        !          4702: Mon Aug 13 22:26:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4703: 
        !          4704:        * tm-romp.h (SLOW_BYTE_ACCESS): Set to 0.
        !          4705: 
        !          4706:        * expmed.c (store_bit_field, extract_bit_field): Use get_best_mode
        !          4707:        to select mode to use for accessing memory when bitfield insns don't
        !          4708:        accept memory.
        !          4709: 
        !          4710:        * c-common.c (rewrite_for_merged_ref, make_merged_ref): Deleted.
        !          4711:        (merge_component_comparisons): Delete from here.
        !          4712:        * c-tree.h (merge_component_comparisons): No longer global.
        !          4713:        * c-convert.c (build_binary_op_nodefault): Don't try to merge component
        !          4714:        references here; now done in fold.
        !          4715:        * cplus-typeck.c (build_binary_op_nodefault): Likewise.
        !          4716:        * Makefile.in (fold-const.o): Now includes flags.h.
        !          4717:        * fold-const.c: Likewise.
        !          4718:        (STRIP_NOPS): New macro.
        !          4719:        (decode_field_reference, all_ones_mask): New functions.
        !          4720:        (merge_component_references): Put rewritten version here.
        !          4721:        This fixes bugs in the way that comparisons with non-equal
        !          4722:        constants (!p->a && p->b) are handled and in endianness checking.
        !          4723:        Also accepts more general comparisons, and, in particular, its
        !          4724:        own output so more than a pair of operations can be merged.
        !          4725:        (fold): Call it for TRUTH_{AND*,OR*}_EXPR.
        !          4726: 
        !          4727:        * tree.def (BIT_FIELD_REF): New tree code.
        !          4728:        * expr.c (get_inner_reference): Support BIT_FIELD_REF.
        !          4729:        If bitfield is a complete mode-sized unit, return that mode; if it
        !          4730:        is a subset of bits within a mode-sized unit, return VOIDmode.
        !          4731:        (expand_assignment): Check for BIT_FIELD_REF.
        !          4732:        Use mode returned from get_inner_reference to see if bit field.
        !          4733:        (store_constructor): Likewise.
        !          4734:        (store_field): Don't pass arg BIT_FIELD; use MODE == VOIDmode
        !          4735:        instead.  All callers changed.
        !          4736:        (expand_expr, case BIT_FIELD_REF): New case.  Handled same as
        !          4737:        COMPONENT_REF.
        !          4738:        Use mode returned from get_inner_reference rather than DECL_BIT_FIELD.
        !          4739:        (expand_increment): Must stabilize BIT_FIELD_REF.
        !          4740:        (do_jump, case NOP_EXPR): Check for inner BIT_FIELD_REF and ARRAY_REF.
        !          4741:        (do_jump, case COMPONENT_REF): Generalize to handle BIT_FIELD_REF
        !          4742:        and some ARRAY_REFs also.
        !          4743:        * fold-const.c (operand_equal_p): Handle BIT_FIELD_REF.
        !          4744:        * tree.c (staticp): Rework to use switch instead of if-then-else.
        !          4745:        Add support for BIT_FIELD_REF.
        !          4746:        (stabilize_reference, simple_cst_equal): Support BIT_FIELD_REF.
        !          4747: 
        !          4748:        * c-common.c (truthvalue_conversion): Rework to use switch rather
        !          4749:        than if-then-else.
        !          4750:        Generate either TRUTH_{OR*|AND*}_EXPR or comparison operations as
        !          4751:        much as possible.
        !          4752:        Handle REAL_CST, ADDR_EXPR, ABS_EXPR, FLOAT_EXPR, FFS_EXPR,
        !          4753:        LROTATE_EXPR, RROTATE_EXPR, BIT_XOR_EXPR, and MINUS_EXPR.
        !          4754:        Call fold for COND_EXPRs that we make.
        !          4755:        * c-convert.c (build_unary_op): invert_truthvalue can't return 0,
        !          4756:        so don't check for it.
        !          4757:        (invert_truthvalue): Delete from here.
        !          4758:        (convert_to_integer, build_conditional_expr): Try to fold COND_EXPR.
        !          4759:        * c-plus-cvt.c (convert_to_integer): Likewise.
        !          4760:        * cplus-typeck.c (build_conditional_expr): Likewise.
        !          4761:        (build_unary_op): invert_truthvalue can't return 0.
        !          4762:        (invert_truthvalue): Delete from here.
        !          4763:        * fold-const.c (invert_truthvalue): Move to here.
        !          4764:        Don't invert floating-point test.
        !          4765:        Look inside conversions.
        !          4766:        Use recursive call to negate inside logical operations rather than
        !          4767:        building a TRUTH_NOT_EXPR.
        !          4768:        Allow only certain TREE_CODEs as operands; abort for the rest.
        !          4769:        (fold_convert): Accept second argument that is item being
        !          4770:        converted to ensure that NOPs have been stripped.
        !          4771:        (operand_equal_p): Return 0 if either operand has side effects.
        !          4772:        If both integer or real constants, check the values.
        !          4773:        Do a more thorough test to see if two items are identical;
        !          4774:        specifically, compare the operands of simple TREE_CODEs.
        !          4775:        (omit_one_operand, distribute_bit_expr): New functions.
        !          4776:        (make_bit_field_ref, optimize_bit_field_compare): Likewise.
        !          4777:        (fold): Remove LOSES; now done explicitly or by calling
        !          4778:        omit_one_operand.  Some previous uses weren't needed.
        !          4779:        Try to fold any COND_EXPRs and some COMPOUND_EXPRs we make.
        !          4780:        Remove pair of NEGATE_EXPRs and BIT_NOT_EXPRs.
        !          4781:        Convert "- (a - b)" to "b - a" for non-floating-point.
        !          4782:        ABS_EXPR applied to ABS_EXPR or NEGATE_EXPR is ABS_EXPR of inner arg.
        !          4783:        Convert "a + (-b)" to "a - b" and "a - (-b)" to "a + b".
        !          4784:        If adding ANDs with constants that have no bits, in common, try
        !          4785:        bitwise-or, since we may then be able to distribute the operation,
        !          4786:        e.g., (a & 7) + (a & 0x70) -> a & 0x77.
        !          4787:        Add missing last arg to operand_equal_p call.
        !          4788:        Call distribute_bit_expr for BIT_AND_EXPR and BIT_IOR_EXPR.
        !          4789:        Exclusive-or with all ones is bit negation.
        !          4790:        If second arg of BIT_AND_TC_EXPR is constant, convert to BIT_AND_EXPR.
        !          4791:        Handle TRUTH_NOT_EXPR by calling invert_truthvalue.
        !          4792:        Call optimize_bit_field_compare for comparisons of bitfields.
        !          4793:        Handle "a ? 1 : 0" and "a ? 0 : 1" as test or negated test.
        !          4794:        Simplify "a & 4 ? a & 4 : 0" and "a ? a : 0" to remove conditonal.
        !          4795:        * stor-layout.c (get_best_mode): New function.
        !          4796:        * machmode.h: Define it.
        !          4797:        * tree.c (integer_pow2p): New function.
        !          4798:        * tree.h: Declare new functions and functions no longer static.
        !          4799: 
        !          4800: Mon Aug 13 17:45:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4801: 
        !          4802:        * config.gcc (sun3-mach): New alternative.
        !          4803:        * tm-sun3mach.h: New file.
        !          4804: 
        !          4805:        * m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE.
        !          4806: 
        !          4807: Mon Aug 13 10:14:37 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4808: 
        !          4809:        * cplus-decl2.c (flag_minimal_debug): Now is default is
        !          4810:        -fflag-minimal-debug.
        !          4811: 
        !          4812:        * cplus-tree.c (virtual_member): Return the assoc of a non-virtual
        !          4813:        basetype that comes from a virtual baseclass.  Changed callers
        !          4814:        which used to call `value_member' to call virtual_member instead.
        !          4815: 
        !          4816: Mon Aug 13 06:54:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4817: 
        !          4818:        * optabs.c (expand_twoval_binop): Fix typo.
        !          4819: 
        !          4820:        * cse.c (lookup_as_function): Don't assume CODE is a unary
        !          4821:        operation.  It might be a binary op or REG.
        !          4822: 
        !          4823: Sun Aug 12 21:42:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4824: 
        !          4825:        * expr.c (expand_expr, case COND_EXPR): Don't abort if first arg of
        !          4826:        COND_EXPR isn't a comparison; just suppress the do_store_flag call.
        !          4827: 
        !          4828: Sun Aug 12 14:26:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4829: 
        !          4830:        * tree.h (enum built_in_function): Delete comma after last name.
        !          4831:        * c-parse.h (enum rid): Likewise.
        !          4832:        * expr.h (enum optab_methods): Likewise.
        !          4833:        * stab.h: Add dummy enum name at end.
        !          4834: 
        !          4835:        * config.gcc (genix): Set tm_file.
        !          4836:        * tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition.
        !          4837: 
        !          4838:        * tree.h (struct tree_type, struct tree_decl): Handle ONLY_INT_FIELDS.
        !          4839:        * rtl.h (struct rtx_def): Likewise.  That macro goes in xm-*.h.
        !          4840: 
        !          4841: Sat Aug 11 16:56:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4842: 
        !          4843:        * cplus-decl.c (finish_function): Check value of HAVE_return before
        !          4844:        calling gen_return.
        !          4845: 
        !          4846:        * reorg.c (optimize_skip): Don't reject skip when we jump around an
        !          4847:        insn and merge at the return point.
        !          4848: 
        !          4849: Fri Aug 10 17:00:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4850: 
        !          4851:        * dbxout.c (dbxout_parms, dbxout_reg_parms): Ignore nameless parms.
        !          4852:        * sdbout.c (sdbout_parms, sdbout_reg_parms): Ignore nameless parms.
        !          4853: 
        !          4854: Fri Aug 10 14:14:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4855: 
        !          4856:        * recog.c (indirect_operand): Modes need not agree if MODE == VOIDmode;
        !          4857:        remove test from here since it is in memory_operand, which this calls.
        !          4858: 
        !          4859: Thu Aug         9 15:19:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4860: 
        !          4861:        * c-decl.c (store_parm_decls): If function has variable number of args,
        !          4862:        put a dummy decl at end of parmlist.
        !          4863:        * c-parse.y (unary_expr): Handle &... with address of dummy decl.
        !          4864: 
        !          4865:        * tm-*.h (LEGITIMIZE_ADDRESS): Go to WIN instead of returning.
        !          4866: 
        !          4867:        * cccp.c (handle_directive): Add code to support `# DIGIT'
        !          4868:        but disable it for the time being.
        !          4869: 
        !          4870:        * tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI.
        !          4871:        (CPP_PREDEFINES): Don't define it here.
        !          4872:        Do define alternatives with __ prepended.
        !          4873: 
        !          4874: Wed Aug         8 14:00:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4875: 
        !          4876:        * out-romp.c: Don't include hard-reg-set; already in insn-output.c.
        !          4877:         
        !          4878:        * explow.c: insn-flags.h is needed to see if "probe" insn exists.
        !          4879:        * Makefile.in (explow.o): Likewise.
        !          4880: 
        !          4881: Wed Aug         8 13:35:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4882: 
        !          4883:        * cccp.c (check_macro_name): Warn if name is `defined'.
        !          4884: 
        !          4885:        * tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after
        !          4886:        gcc_compiled.
        !          4887: 
        !          4888: Tue Aug         7 23:51:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4889: 
        !          4890:        * toplev.c (main): Handle -W options like -f options.
        !          4891:        This supports -Wnounused, and such like.
        !          4892:        (warn_uninitialized): New variable, controls those warnings.
        !          4893:        Set it for -Wuninitialized, and for -W.
        !          4894: 
        !          4895: Tue Aug         7 13:24:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4896: 
        !          4897:        * genextract.c (walk_rtx): Fix typo in MATCH_PARALLEL case.
        !          4898: 
        !          4899:        * explow.c (allocate_dynamic_stack_space): Pass size of allocated stack
        !          4900:        to gen_probe.
        !          4901: 
        !          4902: Tue Aug         7 12:19:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4903: 
        !          4904:        * pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'.
        !          4905: 
        !          4906: Tue Aug         7 07:13:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4907: 
        !          4908:        * jump.c (find_cross_jump): Include a USE or CLOBBER in cross jump
        !          4909:        but don't count it against minimum size.
        !          4910:        Never return when cross-jump hasn't actually been done.
        !          4911: 
        !          4912: Mon Aug         6 18:50:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4913: 
        !          4914:        * varasm.c: Include regs.h.
        !          4915:        (decode_reg_name): Remove extern for reg_names; it is in regs.h.
        !          4916:        * Makefile.in (varasm.o): Depends on regs.h.
        !          4917: 
        !          4918: Mon Aug         6 12:46:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4919: 
        !          4920:        * c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern.
        !          4921:        (start_decl): Don't warn at all for initialized extern.
        !          4922: 
        !          4923:        * final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE.
        !          4924:        (profile_function): New subroutine.
        !          4925: 
        !          4926:        * tm-i386sco.h: New file.
        !          4927:        * config.gcc (i386-sco): New alternative.
        !          4928: 
        !          4929:        * gcc.c (ENDFILE_SPEC): New macro.
        !          4930:        (do_spec_1): Handle %E.
        !          4931:        (link_spec): Use %E.
        !          4932: 
        !          4933:        * xm-i386.h (alloca): Define without arg.
        !          4934: 
        !          4935:        * Makefile.in (stage*): Use RANLIB_TEST.
        !          4936:        (LIMITS_H): New variable.
        !          4937:        (USER_H): Use that.
        !          4938:        * make-i386sco: New file.
        !          4939: 
        !          4940: Sun Aug         5 13:11:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          4941: 
        !          4942:        * rtl.h: Delete all machine mode defns; include machmode.h instead.
        !          4943:        * tree.h: Likewise.
        !          4944:        * machmode.h: New file.
        !          4945:        * stor-layout.c: No longer include rtl.h.
        !          4946:        * Makefile.in: (RTL_H, TREE_H): Add machmode.h.
        !          4947:        (stor-layout.o): No longer depends on RTL_H.
        !          4948: 
        !          4949:        * c-common.c  (binary_op_error, shorten_compare): Should no longer
        !          4950:        have been static when moved here.
        !          4951: 
        !          4952: Sun Aug         5 12:57:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          4953: 
        !          4954:        * stor-layout.c (layout_record, layout_union): Test value of 
        !          4955:        PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined.
        !          4956:        * tm-*.h: Define with value 1.
        !          4957:        * tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment.
        !          4958: 
        !          4959:        * proto.h: New file.
        !          4960:        * Makefile.in (USER_H): Add that file.
        !          4961: 
        !          4962: Sun Aug         5 00:04:08 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          4963: 
        !          4964:        * cplus-decl2.c (grokfield): It is no longer legal to specify
        !          4965:        the initializer for a static const member in the class
        !          4966:        declaration.  Dealing with default initializers is basically
        !          4967:        impossible.
        !          4968: 
        !          4969:        * cplus-init.c (build_delete): Don't wrap `addr' in a SAVE_EXPR
        !          4970:        until it is in fact an address.  This allows us to call
        !          4971:        destructors on the return values of function calls.
        !          4972: 
        !          4973:        * cplus-typeck.c (commontype): Fixed bug in OFFSET_TYPE case which
        !          4974:        led to infinite recursion (since we did not reduce the types
        !          4975:        before we recursed).
        !          4976: 
        !          4977:        * cplus-lex.c (check_newline): Make `#pragma implementation' more
        !          4978:        forgiving.
        !          4979: 
        !          4980:        * cplus-init.c (expand_aggr_init): Changed Jan 20th change so that
        !          4981:        we test whether TYPE has a constructor defined, and we do not test
        !          4982:        at all whether INIT was from a GNU constructor expression or not.
        !          4983: 
        !          4984:        * cplus-typeck.c (build_modify_expr_1): Don't return
        !          4985:        `error_mark_node' unless there really was an error.  If there is
        !          4986:        no work to do, return `integer_zero_node'.
        !          4987: 
        !          4988:        * cplus-class.c (propagate_basetype_offsets): Count the space
        !          4989:        between baseclasses, not just the space they occupy.
        !          4990: 
        !          4991:        * cplus-typeck.c (commontype): Don't drop the exceptions that are
        !          4992:        raised by functions and methods.
        !          4993: 
        !          4994:        * cplus-cvt.c (convert_to_real): Fix if/else level problem in
        !          4995:        case where EXPR is of aggregate type.
        !          4996: 
        !          4997:        * cplus-decl.c (finish_decl): Emit a line-number note to give
        !          4998:        users a chance to set a breakpoint before the initialization of an
        !          4999:        object takes place.
        !          5000: 
        !          5001:        * cplus-class.c (build_method_call): If the function we get is not
        !          5002:        directly from the object we have, call `convert_pointer_to' if the
        !          5003:        object uses multiple inheritance or virtual baseclasses.
        !          5004: 
        !          5005:        * cplus-typeck.c (build_binary_op_nodefault): Don't call
        !          5006:        `convert_to_pointer' with an argument that might be
        !          5007:        the integer zero.
        !          5008: 
        !          5009:        * cplus-method.c (hack_identifier): Look for DECL_REFERENCE_SLOT
        !          5010:        in RESULT_DECLs as well.
        !          5011: 
        !          5012:        * cplus-init.c (build_vec_delete): Don't forget to deallocate the
        !          5013:        container if requested.  Really use AUTO_DELETE and
        !          5014:        AUTO_DELETE_VEC with the same interpretation as `build_delete'
        !          5015:        gives to its AUTO_DELETE parameter.
        !          5016: 
        !          5017: Sat Aug         4 22:08:44 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5018: 
        !          5019:        * jump.c (find_cross_jump): Use prev_nonnone_insn.
        !          5020:        Don't cross-jump into the middle of a USE-CALL_INSN-CLOBBER
        !          5021:        block; doing so can confuse reorg.c.
        !          5022: 
        !          5023:        * optabs.c (expand_binop, expand_binop, expand_twoval_binop):
        !          5024:        If predicate doesn't match, ensure that operand is in a pseudo
        !          5025:        register.  Current code assumes that any register will suffice,
        !          5026:        but an insn may want to reject certain hard registers.
        !          5027:        (expand_unop, emit_unop_insn, emit_cmp_insn): Likewise.
        !          5028: 
        !          5029: Sat Aug         4 15:29:09 1990  Michael Tiemann  (rms at sugar-bombs.ai.mit.edu)
        !          5030: 
        !          5031:        * function.c (assign_parms): For parms passed by reference,
        !          5032:        make the memory object's mode agree with the parm's original
        !          5033:        type mode.
        !          5034:        * calls.c (expand_call): Fixed braino in building argument
        !          5035:        reference when FUNCTION_ARG_PASS_BY_REFERENCE is defined.
        !          5036: 
        !          5037:        * varasm.c (assemble_variable): Hack our way around the problem
        !          5038:        that static class members look like initialized variables for the
        !          5039:        purposes of establishing FIRST_GLOBAL_OBJECT_NAME.
        !          5040: 
        !          5041:        * cplus-lex.c (reinit_parse_for_method): Give error message for
        !          5042:        common mistake of forgetting the function body.
        !          5043: 
        !          5044:        * cplus-typeck.c (build_component_ref): Make better error message
        !          5045:        when field is not found.
        !          5046: 
        !          5047:        * cplus-class.c (finish_struct): TYPE_GETS_*_INIT_REF comes from
        !          5048:        members as well.
        !          5049: 
        !          5050:        * cplus-typeck.c (c_expand_return): Give warning about returning
        !          5051:        non-lvalues that come from functional casts.
        !          5052: 
        !          5053:        * cplus-search.c (get_base_distance): Changed to follow leftmost
        !          5054:        path only when PARENT == TYPE_MAIN_VARIANT (PARENT).
        !          5055: 
        !          5056:        * cplus-class.c (modify_vtable_entries): Call get_base_distance
        !          5057:        with 0 path_ptr, since we do not appear to use the path computed.
        !          5058: 
        !          5059: Fri Aug         3 07:37:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5060: 
        !          5061:        * final.c (leaf_function_p): Delete line advertently retained
        !          5062:        after change of July 29.
        !          5063: 
        !          5064:        * reorg.c (optimize_skip, try_hoist_target): Don't invert jump
        !          5065:        unless can_reverse_comparison_p says it is OK.  Use invert_jump
        !          5066:        to do it.
        !          5067:        (fill_simple_delay_slots): Another way flow of control can merge is
        !          5068:        for two insns to jump to the same place; try to get insns from there.
        !          5069:        (mostly_true_jump): Return 2 for a jump very likely to be true (the
        !          5070:        branch back to the start of a loop).
        !          5071:        (fill_slots_from_thread): Accept new arg LIKELY.  If true, see if can
        !          5072:        put increment in delay slot and undo it after the end of the loop.
        !          5073:        (fill_eager_delay_slots): Pass new arg to fill_slots_from_thread.
        !          5074:        If previous insn is conditional jump that also didn't get a delay
        !          5075:        slot, see if swapping targets helps.
        !          5076: 
        !          5077: Fri Aug         3 00:18:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5078: 
        !          5079:        * cccp.c (MAKE_POS): Avoid constant of uncertain signedness.
        !          5080: 
        !          5081:        * gnulib2.c (__bb_init_func): Add dummy function to prevent warning.
        !          5082: 
        !          5083: Thu Aug         2 17:44:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5084: 
        !          5085:        * output.h (current_function_return_rtx): Add new variable.
        !          5086:        * function.h (return_rtx): Likewise.
        !          5087:        * function.c (push_function_context, pop_function_context): Save
        !          5088:        and restore current_function_return_rtx.
        !          5089:        (assign_parms, expand_function_start): Set current_function_return_rtx
        !          5090:        to what is put in DECL_RTL (DECL_RESULT (current_function_decl)).
        !          5091:        * reorg.c: No longer uses tree.h.
        !          5092:        (dbr_schedule): Get result RTL from current_function_return_rtx instead
        !          5093:        of reading it from current_function_decl.
        !          5094:        * Makefile.in (reorg.o): No longer depends on TREE_H.
        !          5095: 
        !          5096:        * cse.c (remove_invalid_refs): Only invalidate an entry if it 
        !          5097:        references the actual register, not merely something sharing its
        !          5098:        quantity.
        !          5099:        (cse_insn): Don't abort if SRC and SRC_EQUIV map to different
        !          5100:        hash classes.  Merge them instead.
        !          5101: 
        !          5102:        * romp.md (mulsi3): Emit call to lmul$$ as a regular insn
        !          5103:        rather than a CALL_INSN.
        !          5104:        (divsi3, modsi3, udivsi3, umodsi3, call_libfcn): Deleted.
        !          5105:        (divmodsi4, udivmodsi4): New patterns to call ldiv$$ and uldiv$$
        !          5106:        as a normal insn to allow CSE'ing of MOD with DIV.
        !          5107: 
        !          5108: Wed Aug         1 21:56:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5109: 
        !          5110:        * c-parse.y (yylex): Don't warn about non-decimal unsigned by default
        !          5111:        if `u' was specified.  Add similar warning for long and long long.
        !          5112: 
        !          5113: Tue Jul 31 23:31:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5114: 
        !          5115:        * tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label.
        !          5116: 
        !          5117:        * xm-vms.h (const): Delete the definition.
        !          5118: 
        !          5119: Mon Jul 30 18:33:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5120: 
        !          5121:        * c-typeck.c (convert_for_assignment): Normally no warning
        !          5122:        between char * and unsigned char *, etc.
        !          5123:        (convert_arguments): Include arg number in incomplete type warning.
        !          5124: 
        !          5125: Mon Jul 30 07:38:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5126: 
        !          5127:        * jump.c (invert_jump): Don't do anything with labels if NLABEL 
        !          5128:        equals JUMP_LABEL.
        !          5129:        (redirect_jump): Don't try to reference LABEL_NUSES if olabel is
        !          5130:        zero (meaning this is a return insn).
        !          5131:        (redirect_exp): Handle case of converting return to jump to
        !          5132:        label.
        !          5133: 
        !          5134:        * dbxout.c (dbxout_parms): Allow parameter at zero offset from
        !          5135:        AP to be represented as (MEM (REG ...)).
        !          5136:        * sdbout.c (sdbout_parms): Likewise.
        !          5137: 
        !          5138: Sun Jul 29 22:51:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5139: 
        !          5140:        * optabs.c (expand_twoval_binop_convert): Deleted.
        !          5141:        (expand_twoval_binop): Rework to be handle predicates, modes, and
        !          5142:        failures in a manner consistent with expand_binop.
        !          5143:        Move code from expand_twoval_binop_convert inline and rework to
        !          5144:        no longer hard-wire SImode and to handle failure.
        !          5145: 
        !          5146:        * config.gcc: Finish change of July 24th to have make_var_file depend
        !          5147:        on host machine.
        !          5148: 
        !          5149:        * jump.c: Now includes insn-flags.h.
        !          5150:        (jump_optimize): Try to put a RETURN at the end of the function if
        !          5151:        control flows through to it.
        !          5152:        JUMP_LABEL can now be zero for a RETURN or conditional RETURN.
        !          5153:        Try to convert jump to end of function into (possibly conditional)
        !          5154:        RETURN.
        !          5155:        Use next_active_insn instead of next_real_insn; these do the same
        !          5156:        thing prior to reload, after which USE and CLOBBERs don't matter.
        !          5157:        redirect_jump may now fail so don't set CHANGED if it does.
        !          5158:        Delete optimization of jump to RETURN; now subsumed by follow_jumps.
        !          5159:        Reset INSN_CODE if changing conditional jump to unconditional.
        !          5160:        (cond_jump_p): Conditional RETURN is conditional jump.
        !          5161:        (follow_jumps): Change argument name to AFTER_RELOAD.
        !          5162:        If not after reload, do not chain across a USE or CLOBBER.
        !          5163:        Recognize RETURN insns.
        !          5164:        (tension_vector_labels): Likewise.
        !          5165:        (redirect_jump, redirect_exp): If NLABEL is zero, turn JUMP into a
        !          5166:        (possibly conditional) RETURN; use validate_change to see if such an
        !          5167:        insn exists. 
        !          5168:        Now returns non-zero if succeeds, 0 otherwise.
        !          5169:        Unconditional RETURN looks like (RETURN), not (SET (PC) (RETURN)).
        !          5170:        (thread_jumps): Ignore any type of RETURN insn.
        !          5171:        * Makefile.in (jump.o): Depends on insn-flags.h.
        !          5172:        * loop.c (strength_reduce): Don't confuse conditional return with
        !          5173:        jump to top of loop when LOOP_TOP == 0.
        !          5174:        * final.c (leaf_function_p): No longer static; no longer takes an arg.
        !          5175:        (final_start_function): Don't pass START to leaf_function_p.
        !          5176:        * romp.md (return pattern): Convert to a named pattern.
        !          5177: 
        !          5178: Sun Jul 29 16:05:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5179: 
        !          5180:        * tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY.
        !          5181: 
        !          5182:        * xm-vms.h (alloca): Use built-in alloca.
        !          5183: 
        !          5184: Sun Jul 29 06:47:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5185: 
        !          5186:        * reorg.c (fill_slots_from_thread): Restore inadvertantly deleted
        !          5187:        lines.
        !          5188: 
        !          5189: Fri Jul 27 19:53:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5190: 
        !          5191:        * Makefile.in (reorg.o): Depends on tree.h, basic-block.h, regs.h,
        !          5192:        and output.h
        !          5193: 
        !          5194: Fri Jul 27 16:30:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5195: 
        !          5196:        * varasm.c (assemble_variable): Handle ASM_OUTPUT_SHARED_COMMON
        !          5197:        and ASM_OUTPUT_SHARED_LOCAL.
        !          5198: 
        !          5199:        * tm-encore.h (SHARED_SECTION_ASM_OP): New macro.
        !          5200:        (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_LOCAL): New.
        !          5201:        All this waiting for papers from [email protected].
        !          5202: 
        !          5203: Fri Jul 27 16:10:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5204: 
        !          5205:        * make-romp (CC): Set up to allow use of hc.
        !          5206: 
        !          5207: Fri Jul 27 15:07:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5208: 
        !          5209:        * combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0)
        !          5210:        only if little-endian.
        !          5211: 
        !          5212: Thu Jul 26 23:19:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5213: 
        !          5214:        * expmed.c (expand_shift): Consistently call protect_from_queue
        !          5215:        before doing anything else.
        !          5216:        Always put operand1 of extzv into a register because it is SImode
        !          5217:        and we assume that this means a register.
        !          5218: 
        !          5219: Thu Jul 26 14:18:11 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5220: 
        !          5221:        * varasm.c (assemble_variable): Delete dead code.
        !          5222:        DATA_ALIGNMENT takes tree and current alignment and gives new
        !          5223:        alignment for a non-automatic variable of that type.
        !          5224:        Also apply CONSTANT_ALIGNMENT to the initial value; it now takes
        !          5225:        the constant and old alignment and gives the new alignment.
        !          5226:        Adjust DECL_ALIGN to the resulting alignment.
        !          5227:        Use floor_log2 consistently instead of duplicating its function.
        !          5228:        (get_or_assign_label): Use CONSTANT_ALIGNMENT instead of DATA_ALIGNMENT
        !          5229:        and pass type instead of decl.
        !          5230:        * expr.c (get_pointer_alignment): Rework to: distinguish reliably
        !          5231:        between expressions giving the address and those giving the item being
        !          5232:        addressed; use the alignment from the type of the object being
        !          5233:        pointer to; return 0 if the type is not a pointer; and other 
        !          5234:        miscellaneous changes.
        !          5235:        (string_constant): Skip CONVERT_EXPR and NON_LVALUE_EXPR as well
        !          5236:        as NOP_EXPR.
        !          5237:        (expand_builtin): Allow get_pointer_alignment to fail, in which case
        !          5238:        we call the actual function.
        !          5239:        * stmt.c (expand_decl): Set actual alignment obtained into DECL_ALIGN
        !          5240:        since it may be better aligned than required and get_pointer_alignment
        !          5241:        can take advantage of this.
        !          5242:        * tm-gmicro.h, tm-pyr.h, tm.romp-h: Add or replace definitions of
        !          5243:        CONSTANT_ALIGNMENT to word-align string constants and
        !          5244:        DATA_ALIGNMENT to word-align character arrarys for builtin memory
        !          5245:        functions.
        !          5246: 
        !          5247:        * fold-const.c (rshift_double): Reset carry after each shift of
        !          5248:        one bit.
        !          5249: 
        !          5250:        * vax.md (ashrsi3): If right shift by constant, emit as ASHIFTRT.
        !          5251:        (ashrsi3_const): New pattern  to match it.
        !          5252:        (casel): Delete patterns no longer needed.
        !          5253:        * cse.c (cse_insn): Remove unneeded part of change of July 23.
        !          5254:        (fold_rtx): Convert shift with negative constant count to shift in
        !          5255:        the opposite direction.
        !          5256:        * combine.c (subst): Likewise.
        !          5257: 
        !          5258:        * emit-rtl.c (init_emit_once): Initialize arg_pointer_rtx before
        !          5259:        struct pointer and static chain values in case they want to use it.
        !          5260: 
        !          5261: Thu Jul 26 12:31:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5262: 
        !          5263:        * final.c (final_scan_insn): Align label table to boundary appropriate
        !          5264:        for items of its size.
        !          5265:        (get_attr_length, shorten_branches): Allow for label table alignment.
        !          5266: 
        !          5267: Wed Jul 25 15:06:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5268: 
        !          5269:        * fixincludes: Handle uses of _IO* followed by spaces.
        !          5270:        Change redirections for cd when testing that directory exists.
        !          5271: 
        !          5272:        By Tiemann:
        !          5273: 
        !          5274:        * emit-rtl.c (next_cc0_user): Handle insns in which cc0
        !          5275:        is set and used in the same insn.
        !          5276: 
        !          5277:        * final.c (leaf_function_p): Look inside INSNs which contain
        !          5278:        a delayed-call sequence.
        !          5279:        (final_start_function): Test `only_leaf_regs_used' before
        !          5280:        `leaf_function_p', since that is likely to be faster.
        !          5281:        (final_scan_insns): Normally we don't have NOTICE_UPDATE_CC
        !          5282:        take action when processing the path of an annulled branch,
        !          5283:        since that path does not affect the cc's of the fall-through
        !          5284:        insns at all.  However, we cannot always ignore the effect of
        !          5285:        the cc's when processing a delayed annulled branch: when the
        !          5286:        delayed annulled branch follows a label and carries a
        !          5287:        REG_CC_STATUS note, that note must be processed.
        !          5288: 
        !          5289:        * genattr.c (main): Generate #defines for annulled branches
        !          5290:        which are consistent with documentation.
        !          5291: 
        !          5292:        * reorg.c: Finish recent rework by modifying code specific to
        !          5293:        machines that have annulling branches.
        !          5294: 
        !          5295:        * c-common.c (merge_component_comparisons): Previous logic did
        !          5296:        not handle cases of (A == 1) && (B == 1), (A != 0) && (B != 0),
        !          5297:        and (A != 1) || (B != 1).  Fixed by expanding the logic out
        !          5298:        longhand and letting the compiler do the proper cross-jumping.
        !          5299: 
        !          5300:        * tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
        !          5301: 
        !          5302:        * expr.c (expand_expr): For BIND_EXPR, do the init for all vars.
        !          5303: 
        !          5304:        * stupid.c: Include flags.h.
        !          5305:        * genrecog.c (main): Make insn-recog.c include flags.h.
        !          5306: 
        !          5307: Sun Jul 22 12:04:43 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5308: 
        !          5309:        * cplus-except.c (cplus_expand_end_except): If the user gives a
        !          5310:        default handler, the exception is considered caught in that
        !          5311:        handler.
        !          5312:        * cplus-parse.y (except_stmts): Rest of fix went here, in DEFAULT
        !          5313:        case.
        !          5314: 
        !          5315:        * cplus-decl.c (finish_decl): Don't emit cleanups twice.
        !          5316: 
        !          5317:        * cplus-class.c (finish_struct_bits): Don't call
        !          5318:        `fixup_vbase_offsets'.
        !          5319:        * cplus-tree.c (fixup_vbase_offsets): #if 0 this function.
        !          5320: 
        !          5321:        * cplus-cvt.c (build_default_binary_type_conversion): Handle
        !          5322:        arguments which are REFERENCE_TYPE.
        !          5323: 
        !          5324:        * cplus-method.c (prepare_inline): Set DECL_CONTEXT of this
        !          5325:        function's parameters.
        !          5326: 
        !          5327:        * cplus-decl.c (grokfndecl): When adding a new virtual function
        !          5328:        entry, RAISES may change a second time.
        !          5329: 
        !          5330: Thu Jul         5 10:44:39 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5331: 
        !          5332:        * cplus-decl2.c (grokfield): Static consts need not be initialized
        !          5333:        in the class definition.
        !          5334: 
        !          5335: Mon Jul         2 06:12:49 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5336: 
        !          5337:        * cplus-init.c (resolve_offset_ref): If BASETYPE is not a base
        !          5338:        type for the current class, give error and return.
        !          5339: 
        !          5340: Sun Jul         1 00:18:47 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5341: 
        !          5342:        * cplus-decl.c (finish_function): Throw away more code if we have
        !          5343:        an inline function from the interface.
        !          5344: 
        !          5345:        * cplus-class.c (add_virtual_function): Set DECL_VINDEX from the
        !          5346:        virtual function which comes from the vtable shared by
        !          5347:        CURRENT_CLASS_TYPE, if possibe.
        !          5348: 
        !          5349:        * cplus-typeck.c (build_binary_op): Call `default_conversion'
        !          5350:        after doing type instantiation.
        !          5351: 
        !          5352:        * cplus-init.c (build_new): New 2.0 interpretation: `new int (10)'
        !          5353:        means allocate an int, and initialize it with 10.
        !          5354: 
        !          5355:        * cplus-init.c (emit_base_init): Completion of fix for virtual
        !          5356:        function table initialization.  @@ BTW, this may now cause extra
        !          5357:        virtual function table initializations.  They will all be correct,
        !          5358:        but they may also be redundant.  GCC's optimizer doesn't know how
        !          5359:        to remove even the simplest such redundancy.
        !          5360: 
        !          5361: Sat Jun 30 13:54:30 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5362: 
        !          5363:        * cplus-class.c (finish_base_struct): Store BASETYPE in the
        !          5364:        VFIELDS chain (in its TREE_TYPE).
        !          5365: 
        !          5366: Fri Jun 29 09:26:17 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5367: 
        !          5368:        * cplus-class.c (build_vtable,prepare_fresh_vtable): Stash the
        !          5369:        type that caused this vtable to be defined in DECL_CONTEXT
        !          5370:        * cplus-search.c (bfs_unmark_finished_struct): Work around
        !          5371:        DECL_CONTEXT conflict for vtables.  @@ NOT A SOLUTION.
        !          5372: 
        !          5373:        * cplus-lex.c: Extend meaning of `#pragma implementation'
        !          5374:        to allow files to `implement' types from general headers.
        !          5375: 
        !          5376: Tue Jul 24 22:18:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5377: 
        !          5378:        * reorg.c: Major rework.  Changes includes:
        !          5379:        (mark_target_live_regs): Scan code to compute which registers are
        !          5380:        live at particular insns.  Uses tables created by flow, REG_DEAD
        !          5381:        notes, and registers set before they are used.
        !          5382:        (emit_delay_sequence): Always write SEQUENCE as INSN.  Many routines
        !          5383:        changed to reflect this.
        !          5384:        (fill_simple_delay_slots): Loop for merge point when target of jump
        !          5385:        comes back to fallthrough code.  Try to get insns from there.
        !          5386:        (fill_eager_delay_slots): Fallthrough and target case merged into new
        !          5387:        function fill_slots_from_thread.
        !          5388: 
        !          5389:        * tm-romp.h, romp.md, out-romp.c, xm-romp.h, make-romp: New files to
        !          5390:        support the ROMP microprocessor, used in the IBM PC RT.
        !          5391: 
        !          5392:        * recog.c (comparison_operator): New function.
        !          5393: 
        !          5394:        * jump.c (jump_optimize): If putting constant into register, see
        !          5395:        if it is already present in the register.
        !          5396: 
        !          5397: Tue Jul 24 15:35:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5398: 
        !          5399:        * c-typeck.c (build_binary_op_nodefault): Allow compare of any
        !          5400:        pointer with const void *, etc.
        !          5401: 
        !          5402: Tue Jul 24 17:10:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5403: 
        !          5404:        * expr.c (get_inner_reference): New function.
        !          5405:        (expand_assignment): Use it to find out about our target.
        !          5406:        (expand_expr, case COMPONENT_REF): Likewise.
        !          5407:        (expand_expr, case COND_EXPR): If can do store-flag, convert
        !          5408:        X ? A+1 : A to A + (X!=0); fold-const made the former from the latter.
        !          5409:        Only create label when we know we will need it.
        !          5410:        Simplify unnessarily complex call to safe_from_p.
        !          5411:        (expand_expr): Make new variable UNSIGNEDP and use it instead
        !          5412:        of TREE_UNSIGNED (type).  Also, consistently use existing
        !          5413:        variable TYPE instead of TREE_TYPE (exp) and similarly for MODE.
        !          5414: 
        !          5415: Tue Jul 24 13:50:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5416: 
        !          5417:        * cccp.c (collect_expansion): Error if ## at beg or end.
        !          5418: 
        !          5419:        * c-decl.c (grokdeclarator): Error for long, etc. with nonarith type.
        !          5420:        Error for signed or unsigned with floating type.
        !          5421:        Error for initialized parm.
        !          5422: 
        !          5423:        * config.gcc: Make make_var_file depend on host machine, not target.
        !          5424: 
        !          5425: Tue Jul 24 13:40:35 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5426: 
        !          5427:        * varasm.c (decode_reg_name): Make TABLE static for non-GCC compilers.
        !          5428: 
        !          5429:        * c-typeck.c (type_for_size, type_for_mode): Delete from here.
        !          5430:        (binary_op_error, shorten_compare, truthvalue_conversion): Likewise.
        !          5431:        * cplus-typeck.c: Delete second copy from here.
        !          5432:        * c-common: Move above functions to here.
        !          5433: 
        !          5434: Tue Jul 24 12:20:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5435: 
        !          5436:        * cccp.c (path_include): Fix typo in var name.
        !          5437: 
        !          5438: Mon Jul 23 17:46:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5439: 
        !          5440:        * config.gcc: Remove redundant assignment to tm_file for 88000.
        !          5441:        Fix typo when assigning to make_var_file.
        !          5442: 
        !          5443:        * function.c (optimize_bit_field): Fix typo in change_address call.
        !          5444: 
        !          5445: Mon Jul 23 16:59:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5446: 
        !          5447:        * varasm.c (decode_reg_name): Ignore % at beginning of name.
        !          5448:        Support extra names defined by ADDITIONAL_REGISTER_NAMES.
        !          5449:        * tm-i386.h (ADDITIONAL_REGISTER_NAMES): Define it.
        !          5450: 
        !          5451:        * dbxout.c (dbxout_init): Handle new macros
        !          5452:        ASM_OUTPUT_MAIN_SOURCE_FILENAME and ASM_OUTPUT_MAIN_SOURCE_DIRECTORY.
        !          5453:        * sdbout.c (sdbout_filename): Handle ASM_OUTPUT_MAIN_SOURCE_FILENAME.
        !          5454: 
        !          5455: Mon Jul 23 16:50:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5456: 
        !          5457:        * tm-vax.h (NOTICE_UPDATE_CC): CALL clobbers CC if inside PARALLEL too.
        !          5458: 
        !          5459:        * vax.md (call_value_pop): Fix typo in argument number.
        !          5460: 
        !          5461:        * cse.c (cse_insn): Shift's aren't associative if in different
        !          5462:        directions, even if same rtx_code.
        !          5463:        Try to fold result of associating the operation in case it is now
        !          5464:        trivial.
        !          5465: 
        !          5466:        * jump.c (mark_modified_reg): New function.
        !          5467:        (thread_jumps): Look at insns between target of first jump and the
        !          5468:        second jump.  Mark any registers that they modify and record if they
        !          5469:        modify memory.
        !          5470:        Don't go past a CODE_LABEL.
        !          5471:        If we pass an unconditional jump, follow it.
        !          5472:        Use prev_nonnote_insn instead of explicit loop.
        !          5473:        (rtx_equal_for_thread_p): Consult recorded information to see if
        !          5474:        memory of registers were modified prior to second jump.
        !          5475:        * Makefile.in (jump.o): Now needs hard-reg-set.h.
        !          5476: 
        !          5477: Sat Jul 21 13:58:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5478: 
        !          5479:        * cccp.c (O_RDONLY): Define it if not defined.
        !          5480: 
        !          5481:        * c-decl.c (finish_decl): No error for nonstatic incomplete array.
        !          5482: 
        !          5483: Sat Jul 21 08:24:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5484: 
        !          5485:        * alliant.md (call patterns): Function address must be memory operand.
        !          5486:        * convex.md, m68k.md, mips.md, ns32k.md, tahoe.md, vax.md: Likewise.
        !          5487: 
        !          5488: Thu Jul 19 16:06:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5489: 
        !          5490:        * cccp.c (path_include): New function.
        !          5491:        (main): Call that to handle CPATH envvar.
        !          5492: 
        !          5493:        * varasm.c (assemble_variable): Error if size exceeds 2**32-1.
        !          5494: 
        !          5495:        * emit-rtl.c (init_emit_once): Pass write_symbols to this function
        !          5496:        (init_emit): Not this one.  All callers changed.
        !          5497: 
        !          5498: Tue Jul 17 21:24:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5499: 
        !          5500:        * local-alloc.c (update_equiv_regs): Don't replace a register with
        !          5501:        an equivalence if the insn making the equivalence has a source
        !          5502:        different from the equivalent value.
        !          5503: 
        !          5504: Tue Jul 17 16:47:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5505: 
        !          5506:        * expr.c (emit_block_move): Allow movstr* to fail.
        !          5507: 
        !          5508: Tue Jul 17 15:19:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5509: 
        !          5510:        * emit-rtl.c (change_address): Don't call memory_address if reload
        !          5511:        is in progress, not just after it has completed.
        !          5512: 
        !          5513: Mon Jul 16 00:34:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5514: 
        !          5515:        * jump.c (can_reverse_comparison_p): New function.
        !          5516:        (jump_optimize): In if (x) ... else x = 0; reverse comparison
        !          5517:        if second operand of IF_THEN_ELSE is PC; use new function to
        !          5518:        validate the reversal.
        !          5519:        (jump_back_p): Use new function to see if safe to reverse comparison.
        !          5520: 
        !          5521: Sun Jul 15 17:03:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5522: 
        !          5523:        * jump.c (jump_optimize): Bug in last change; reject uncond jump
        !          5524:        where conditional is expected.
        !          5525: 
        !          5526:        * flow.c (mark_used_regs): Handle autoincrement for *p
        !          5527:        followed by q = p+size (neither one dead).
        !          5528: 
        !          5529: Sat Jul 14 22:37:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5530: 
        !          5531:        * combine.c (subst): Remove (zero_extend (subreg)) around lshiftrt.
        !          5532:        Remove (and...) from second arg of shift.
        !          5533:        Remove (and...) from around shift.
        !          5534: 
        !          5535: Sat Jul 14 21:35:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5536: 
        !          5537:        * local-alloc.c (update_equiv_regs): New function.
        !          5538:        (local_alloc): Call it.
        !          5539:        (block_alloc): Don't handle REG_EQUIV notes here; now done in
        !          5540:        update_equiv_reg.
        !          5541:        
        !          5542:        * calls.c: Include insn-flags.h.
        !          5543:        * Makefile.in (calls.o): Likewise.
        !          5544: 
        !          5545: Sat Jul 14 13:28:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5546: 
        !          5547:        * c-decl.c (duplicate_decls): Don't set DECL_FRAME_SIZE for builtins.
        !          5548: 
        !          5549:        * vax.md (SImode bit-field patterns): Use nonmemory_operand.
        !          5550: 
        !          5551:        * jump.c (jump_optimize):
        !          5552:        For if (...) x = 1; else x = 0; x must be integer.
        !          5553: 
        !          5554:        * gcc.c (default_compilers): Pass -P to cpp.
        !          5555: 
        !          5556: Thu Jul 12 23:38:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5557: 
        !          5558:        * stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED.
        !          5559: 
        !          5560:        * sparc.md (call recognizers): Don't allow address arithmetic.
        !          5561: 
        !          5562: Thu Jul 12 21:47:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5563: 
        !          5564:        * emit-rtl.c (change_address): If reload has completed, don't call
        !          5565:        memory_address.  Instead, abort if address is not valid.
        !          5566: 
        !          5567: Thu Jul 12 20:41:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5568: 
        !          5569:        * calls.c (emit_call_1): Handle vax, without call and call_value.
        !          5570: 
        !          5571: Thu Jul 12 20:39:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5572: 
        !          5573:        * cse.c (merge_equiv_classes): New function, from record_jump_equiv.
        !          5574:        (record_jump_equiv): Use new function.
        !          5575:        (gen_lowpart_if_possible): New function, based on gen_lowpart.
        !          5576:        (cse_insn): In some cases of (set (subreg (FOO) 0) (BAR)), note
        !          5577:        that (subreg BAR) is an equivalent of FOO.
        !          5578:        * integrate.c (expand_inline_function): Likewise.
        !          5579: 
        !          5580:        * combine.c (subst): Check for constant in merge of shift into
        !          5581:        ZERO_EXTRACT.
        !          5582:        (gen_lowpart_for_combine): Look for SIGN_EXTEND or ZERO_EXTEND:
        !          5583: 
        !          5584:        * emit-rtl.c (gen_lowpart, gen_highpart): If passed a hard register,
        !          5585:        return a new rtx for it in the proper mode, rather than a SUBREG.
        !          5586: 
        !          5587: Wed Jul 11 17:05:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5588: 
        !          5589:        * cse.c (cse_insn): If already have a REG_WAS_0 note, don't make
        !          5590:        another one.
        !          5591:        Rework some loops on SETs to eliminate duplicate code and clean up
        !          5592:        a bit.
        !          5593: 
        !          5594:        * rtlanal.c (refers_to_regno_p, reg_overlap_mentioned): Allow these
        !          5595:        to work on pseudos as well as hard registers.
        !          5596: 
        !          5597:        * optabs.c (emit_no_conflict_block): Use reg_overlap_mentioned
        !          5598:        to see if register is mentioned in insn.
        !          5599: 
        !          5600: Wed Jul 11 16:56:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5601: 
        !          5602:        * jump.c (jump_optimize): Don't optimize jumps to store-flags
        !          5603:        if after register allocation.  And don't do it if memref is used.
        !          5604: 
        !          5605: Wed Jul 11 16:12:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5606: 
        !          5607:        * emit-rtl.c ({next,prev}_nonnote_insn, prev_label, prev_cc0_setter):
        !          5608:        New functions.
        !          5609:        ({next,prev}_{real,active}_insn, next_label): Rework to allow
        !          5610:        argument of zero; return zero in that case.
        !          5611:        (next_active_insn, prev_active_insn): If reload is not yet complete,
        !          5612:        do the same thing as next_real_insn and prev_real_insn.
        !          5613:        (next_cc0_user): Fix some bugs and typos.
        !          5614: 
        !          5615:        * rtlanal.c (reg_mentioned_p): Allow searches for labels to work.
        !          5616: 
        !          5617: Wed Jul 11 12:25:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5618: 
        !          5619:        * c-decl.c (duplicate_decls): In prev fix, use TREE_PUBLIC both times.
        !          5620: 
        !          5621: Tue Jul 10 22:54:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5622: 
        !          5623:        * rtl.def (trap): New code.
        !          5624: 
        !          5625: Tue Jul 10 17:48:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5626: 
        !          5627:        * tree.c (integer_zerop, integer_onep, integer_all_onesp): Look inside
        !          5628:        a NON_LVALUE_EXPR.
        !          5629:        (real_zerop, real_onep, simple_cst_equal): Likewise.
        !          5630: 
        !          5631: Tue Jul 10 17:05:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5632: 
        !          5633:        * c-parse.y, objc-parse.y, cplus-lex.c (yylex):
        !          5634:        Terminate token_buf after integer.
        !          5635: 
        !          5636: Mon Jul         9 15:22:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5637: 
        !          5638:        * c-decl.c (duplicate_decls): Correct test for extern followed by
        !          5639:        static function declaration.
        !          5640: 
        !          5641: Mon Jul         9 14:13:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5642: 
        !          5643:        * c-decl.c (grokdeclarator): Move warning and error
        !          5644:        about initializer with extern to the same place.  Do one or the other.
        !          5645: 
        !          5646:        * rltanal.c (reg_mentioned_p): Don't look inside a CONST_DOUBLE.
        !          5647: 
        !          5648: Sun Jul         8 14:12:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5649: 
        !          5650:        * toplev.c (pedwarn, pedwarn_with_file_and_line, pedwarn_with_decl):
        !          5651:        New functions.
        !          5652:        (flag_pedantic_errors): New variable controls them.
        !          5653:        * c-decl.c, c-parse.y, c-typeck.c: Use new functions for many warnings.
        !          5654:        * varasm.c: Likewise.
        !          5655:        * gcc.c (default_compilers): Pass -pedantic* to cc1, cpp, etc.
        !          5656:        * cccp.c (pedwarn): New function.  Many calls to `warning' changed.
        !          5657: 
        !          5658:        * c-common.c (c_expand_expr_stmt): New function.
        !          5659:        Error about incomplete type moved here.
        !          5660:        * expr.c (expand_expr): Error deleted from here.
        !          5661:        * c-parse.y: Use c_expand_expr_stmt where suitable.
        !          5662: 
        !          5663:        * flow.c (propagate_block): Set following_insn_dead on insn after test.
        !          5664:        (mark_used_regs): Test that var; don't call insn_dead_p here.
        !          5665: 
        !          5666: Fri Jul         6 13:05:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5667: 
        !          5668:        * c-typeck.c (build_indirect_ref):
        !          5669:        No error if result is incomplete array.
        !          5670: 
        !          5671:        * expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE.
        !          5672:        Don't extract a bigger unit from memory than this.
        !          5673:        * expr.c: Callers changed.
        !          5674:        (store_field): New arg TOTAL_SIZE; callers changed.
        !          5675: 
        !          5676:        * out-ns32k.c (print_operand_address): Changes from Ian Dall.
        !          5677:        * xm-ns32k.h: Use built in alloca.
        !          5678:        * ns32k.md (ashlsi3): Don't forget to return a value.
        !          5679:        (movsf): Output floating constants only if GAS_SYNTAX.
        !          5680:        (call, call_value): Support JSR_ALWAYS.
        !          5681:        Change handling of bsr if GAS_SYNTAX.
        !          5682:        (bit test patterns): Use g constraint for op1 and rm for op0.
        !          5683: 
        !          5684: Thu Jul         5 21:53:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5685: 
        !          5686:        * c-typeck.c (build_c_cast): Don't do implicit arithmetic conversions.
        !          5687:        * fold-const.c (fold): Don't combine two conversions if one is
        !          5688:        signed and the other is unsigned.
        !          5689:        * integrate.c (copy_parm_decls): Finish making last change.
        !          5690: 
        !          5691: Thu Jul         5 18:26:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5692: 
        !          5693:        * expr.c (safe_from_p): If EXP is readonly memory, any memory location
        !          5694:        is safe from it.
        !          5695: 
        !          5696: Thu Jul         5 15:05:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5697: 
        !          5698:        * gnulib2.c (__fixunsdfsi): Change > to >=.
        !          5699: 
        !          5700:        * c-decl.c (start_struct, start_enum): Set C_TYPE_BEING_DEFINED.
        !          5701:        (grokdeclarator): Don't warn of array if elt type being defined.
        !          5702: 
        !          5703:        * c-typeck.c (build_conditional_expr): Handle ((void *) 0).
        !          5704:        Allow 0 versus function pointer.
        !          5705: 
        !          5706: Thu Jul         5 08:05:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5707: 
        !          5708:        * cse.c (cse_insn): If machine has post-increment, don't associate
        !          5709:        PLUS operations if they are both adding the same constant that is
        !          5710:        a power of two.  Similarly for post-decrement.
        !          5711: 
        !          5712: Wed Jul         4 19:04:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5713: 
        !          5714:        * flow.c (mark_used_regs): Don't scan a comparison if the following
        !          5715:        insn that uses the cc's is dead.
        !          5716: 
        !          5717:        * flow.c (propagate_block): If cc-using insn is dead, so is previous.
        !          5718: 
        !          5719:        * expmed.c (emit_store_flag): New function.
        !          5720: 
        !          5721: Wed Jul         4 18:45:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5722: 
        !          5723:        * c-typeck.c (common_type, comptypes, default_conversion):
        !          5724:        Use TYPE_READONLY in type to indicate const type; use TREE_READONLY
        !          5725:        in decl to indicate object will never change.
        !          5726:        (build_unary_op, readonly_warning, build_modify_expr): Likewise.
        !          5727:        (c_expand_asm_operands): Likewise.
        !          5728:        * cplus-class.c (finish_struct_bits): Likewise.
        !          5729:        * cplus-cvt.c (build_type_conversion): Likewise.
        !          5730:        * cplus-type2.c (readonly_warning_or_error): Likewise.
        !          5731:        * cplus-typeck.c (default_conversion, build_unary_op): Likewise
        !          5732:        (build_modify_expr, c_expand_asm_operands): Likewise.
        !          5733: 
        !          5734:        * cplus-cvt.c (popclass): When making INDIRECT_REF, don't set
        !          5735:        TREE_READONLY from TYPE_READONLY.
        !          5736: 
        !          5737: Wed Jul         4 15:16:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5738: 
        !          5739:        * jump.c (jump_optimize): Fix bugs in last change.
        !          5740: 
        !          5741: Wed Jul         4 07:52:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5742: 
        !          5743:        * expr.c (expand_expr, case COMPONENT_REF): Delete extraneous test
        !          5744:        for structure-value stack slot, which no longer exists.
        !          5745: 
        !          5746:        * reload1.c (bad_spill_regs): Should be static.
        !          5747: 
        !          5748:        * combine.c (subst, gen_lowpart_for_combine): Propagate
        !          5749:        RTX_UNCHANGING_P when making a new MEM.
        !          5750:        * c-typeck.c, cplus-typeck.c (build_indirect_ref): ANSI says that
        !          5751:        de-reference of pointer-to-const is not readonly so don't set
        !          5752:        RTX_UNCHANGING_P.
        !          5753:        * explow.c (validize_mem): Use change_address so flags get copied
        !          5754:        to new MEM.
        !          5755:        * expr.c (convert_move, block_block_{to,from}_reg, emit_move_insn):
        !          5756:        Likewise.
        !          5757:        (do_tablejump): Set RTX_UNCHANGING_P in MEM accessing address table.
        !          5758:        * function.c (optimize_bit_field, instantiate_virtual_regs_1):
        !          5759:        Preserve flags when making new MEM.
        !          5760:        * loop.c (invariant_p): Memory references to an invariant address
        !          5761:        are invariant if RTX_UNCHANGING_P is set.
        !          5762:        * recog.c (adj_offsettable_operand): Propagate RTX_UNCHANGING_P
        !          5763:        when making new MEM.
        !          5764:        * reload.c (find_reloads_toplev): Likewise.
        !          5765:        * reload1.c (alter_reg): Stack slot is readonly if pseudo was.
        !          5766:        (eliminate_regs): Propagate RTX_UNCHANING_P in new MEM.
        !          5767:        * varasm.c (force_const_double_mem): Set RTX_UNCHANGING_P in new MEM.
        !          5768: 
        !          5769: Tue Jul         3 21:50:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5770: 
        !          5771:        * expmed.c (expand_and): New function.
        !          5772: 
        !          5773:        * stmt.c (expand_expr_stmt): 
        !          5774:        If value is volatile, fetch it and then ignore it.
        !          5775: 
        !          5776:        * expr.c (expand_expr): Error if variable type is incomplete.
        !          5777: 
        !          5778:        * c-decl.c (grokdeclarator): Don't warn of incomplete array in typedef.
        !          5779: 
        !          5780: Tue Jul         3 18:03:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5781: 
        !          5782:        * fold-const.c (fold): Convert "(1 << foo) & bar" to "(bar >> foo) & 1"
        !          5783:        In "(a & 1) != 0", can convert to simply "a & 1".
        !          5784:        * combine.c (subst): Convert branch on sign bit to signed comparison
        !          5785:        with zero (possibly adding a SUBREG).
        !          5786:        Convert ZERO_EXTRACT of the low-order bit of a right shift into a
        !          5787:        ZERO_EXTRACT of the proper bit.
        !          5788: 
        !          5789: Mon Jul         2 12:07:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5790: 
        !          5791:        * jump.c (jump_optimize): Convert conditionals for storing one
        !          5792:        value into a store-flags insn.
        !          5793: 
        !          5794:        * vax.md (call_pop, call_value_pop): New names for call patterns.
        !          5795:        Include the popping explicitly in the rtl. 
        !          5796: 
        !          5797:        * jump.c (jump_optimize): Delete case for condjump followed
        !          5798:        by unconditional to same label; was special case of another case.
        !          5799:        Switch back to next_active_insn or prev_active_insn in a few cases.
        !          5800: 
        !          5801:        * function.c (init_function_start): Initialize
        !          5802:        frame_pointer_needed to zero.
        !          5803: 
        !          5804:        * i386.md (tstsf): Clobber reg 0 in SImode.
        !          5805: 
        !          5806: Sun Jul         1 14:31:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5807: 
        !          5808:        * jump.c: Use next_real_insn instead of next_active_insn.
        !          5809:        Likewise for prev_active_insn.  USE insns make a difference!
        !          5810: 
        !          5811:        * function.c (assign_stack_temp): Use largest alignment if BLKmode.
        !          5812: 
        !          5813:        * stddef.h: Check __SIZE_T also.
        !          5814: 
        !          5815:        * toplev.c: Include types.h first.
        !          5816: 
        !          5817:        * i386.md (trunc*2): Don't allow moving symbolic constant to memory.
        !          5818:        Use wider move only for symbolic constant.
        !          5819: 
        !          5820:        * tm-convex.h (LINK_SPEC): Posix link flags.
        !          5821:        * tm-convex.h (STARTFILE_SPEC): Posix start files.
        !          5822:        * tm-convex[12].h (CPP_SPEC): Posix defines.
        !          5823:        * tm-convex[12].h (LIB_SPEC): Posix libraries.
        !          5824:        * tm-conv[12]os7.h: New files.
        !          5825:        * config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there.
        !          5826: 
        !          5827:        * xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix.
        !          5828:        * xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up.
        !          5829: 
        !          5830:        * tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND):
        !          5831:          use %e instead of %#g, which is broken or non-posix.
        !          5832: 
        !          5833:        * tm-convex.h (current_section_is_text): make extern.
        !          5834:        * out-convex.c (current_section_is_text): define here.
        !          5835:        * tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options):
        !          5836:          useless; remove.
        !          5837:        * tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from
        !          5838:          system includes.
        !          5839: 
        !          5840: Sat Jun 30 14:01:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5841: 
        !          5842:        * c-decl.c (pending_xref_error): Fix typo in arg order.
        !          5843: 
        !          5844:        * cccp.c (do_include): Mention non-ex system headers for -M.
        !          5845:        Guess the directory.
        !          5846:        (check_macro_name): Should not be static.
        !          5847: 
        !          5848:        * rtl.def (inline_header): Add a vector at the end.
        !          5849:        * rtl.h (ORIGINAL_ARG_VECTOR): New macro.
        !          5850:        (RTVEC_ELT): New macro.
        !          5851:        * emit-rtl.c (gen_inline_header_rtx): New argument for that vector.
        !          5852:        * integrate.c (save_for_inline): Copy arg rtls if nec, then make
        !          5853:        an arg vector to put in the header.
        !          5854:        (expand_inline_function): Look in that vector for the rtl.
        !          5855:        (copy_parm_decls): Likewise.
        !          5856: 
        !          5857:        * c-decl.c (duplicate_decls): Warn if function declared external
        !          5858:        and later static.
        !          5859: 
        !          5860: Fri Jun 29 13:29:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5861: 
        !          5862:        * cccp.c (handle_directive): Supply missing *.
        !          5863: 
        !          5864: Thu Jun 28 21:39:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5865: 
        !          5866:        * m68k.md (muldf3 for 68881): Generate fscale if appropriate.
        !          5867:        * out-m68k.c (floating_exact_log2): New function.
        !          5868: 
        !          5869: Wed Jun 27 17:19:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5870: 
        !          5871:        * c-decl.c (finish_struct): New handling of zero-width bit fields.
        !          5872:        Store appropriate data in them like other bit fields.
        !          5873:        Don't delete them until after layout.
        !          5874:        Don't mess with alignment of following field; set its own.
        !          5875:        If PCC_BITFIELD_TYPE_MATTERS, get alignment from type.
        !          5876:        * stor-layout.c (layout_record): For zero-width field, if
        !          5877:        PCC_BITFIELD_TYPE_MATTERS, alignment does not affect that of structure.
        !          5878:        (layout_decl): Don't abort for zero-width if no name.
        !          5879: 
        !          5880:        * function.c (expand_function_start):
        !          5881:        Output ...FUNCTION_BEG note here, after assign_parms.
        !          5882:        (init_function_start): Not here.
        !          5883: 
        !          5884:        * sdbout.c (sdbout_record_type_name): Conditionalize for 
        !          5885:        SDB_ALLOW_FORWARD_REFERENCES.  Don't use typedef names, just tags.
        !          5886:        (sdbout_begin_block): Likewise.
        !          5887:        (plain_type_1): Likewise.  Also move code to output structure size.
        !          5888:        (sdbout_symbol): Output the type if not yet output.
        !          5889:        Don't output top-level initialized variables yet.
        !          5890:        Avoid crash if variable never got any rtl.
        !          5891:        Add conditional for SDB_AUTO_NORMALIZE_OFFSET.
        !          5892:        (sdbout_toplevel_data, sdbout_queue_anonymous_type): 
        !          5893:        (sdbout_dequeue_anonymous_type): New functions.
        !          5894:        (sdbout_tags): Reverse the list first.
        !          5895:        Output enums before other things.
        !          5896:        (sdbout_reg_parm): Fake a name if necessary.  Use C_REGPARM.
        !          5897:        * toplev.c (compile_file): Call sdbout_toplevel_data.
        !          5898: 
        !          5899:        * c-typeck.c (convert_for_assignment): Disable warnings for pointers
        !          5900:        to const and volatile functions.
        !          5901: 
        !          5902:        * expr.c (expand_expr): Mark variable as used.
        !          5903: 
        !          5904: Tue Jun 26 17:05:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5905: 
        !          5906:        * tm-sparc.h (LINK_SPEC): Delete spurious `-'.
        !          5907: 
        !          5908:        * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Handle minus zero.
        !          5909:        (ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
        !          5910: 
        !          5911:        * stor-layout.c (layout_type): Check TYPE_NO_FORCE_BLK in union fields.
        !          5912: 
        !          5913: Tue Jun 26 01:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          5914: 
        !          5915:        * tree.c (dump_tree_statistics): Dummy function.  To be filled in
        !          5916:        later when we decide what tree statistics should be measured.
        !          5917:        (build): Now ok to take arguments of length 1.  `build1' cannot be
        !          5918:        used to allocate 's' tree nodes whcih might have length 1.
        !          5919: 
        !          5920:        * All GNU C++ files updated to 1.37.2 (alpha 2).  NOTE: cplus-decl.c
        !          5921:        needs to be fixed to not us RTL.  I'm leaving this file in its
        !          5922:        current state so that the GNU C++ compiler at least compiles.
        !          5923: 
        !          5924:        * All SPARC files: modified to use registers %f30 and %f31 as
        !          5925:        temporaries for holding floating-point zero.  Used to use %f0 and
        !          5926:        %f1, which made it impossible to compare function return values with
        !          5927:        zero.
        !          5928: 
        !          5929: Mon Jun 25 16:54:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5930: 
        !          5931:        * function.c (init_function_start): New args give file/line for first note.
        !          5932:        * c-decl.c (store_parm_decls): Pass them.
        !          5933:        * integrate.c (output_inline_function): Pass dummies for them.
        !          5934:        * final.c (final_start_function): For sdb, don't output a line number, 
        !          5935:        just set last_linenum.
        !          5936: 
        !          5937:        * c-parse.y (hash, is_reserved_word): New keyword __label__.
        !          5938: 
        !          5939:        * stddef.h: Check _T_SIZE as well as _SIZE_T.
        !          5940: 
        !          5941: Sun Jun 24 16:09:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5942: 
        !          5943:        * expr.c (expand_expr): Do preserve_temp_slots for TARGET_EXPR.
        !          5944: 
        !          5945: Sat Jun 23 09:52:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5946: 
        !          5947:        * genpeep.c (gen_peephole): Ignore USE and CLOBBER insn as well as
        !          5948:        NOTE when matching peephole.
        !          5949: 
        !          5950: Fri Jun 22 17:40:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5951: 
        !          5952:        * c-typeck.c (process_init_constructor): Set up TREE_PURPOSE
        !          5953:        in record constructor elements.
        !          5954: 
        !          5955:        * cexp.y (exp1): If pedantic, warn about commas.
        !          5956:        (tokentab2): Add entries for ++ and --.
        !          5957:        (yylex): Error if those are used.
        !          5958: 
        !          5959:        * c-decl.c (lookup_tag): For wrong kind of type, just set flag.
        !          5960:        (shadow_tag): Clear the flag.
        !          5961:        (pending_xref_error): Print the error message here if flag set.
        !          5962:        * c-parse.y (setspecs): Call that.
        !          5963: 
        !          5964:        * calls.c (emit_call_1): Use call_pop and call_value_pop insns
        !          5965:        to record when the called function pops its args.
        !          5966: 
        !          5967: Fri Jun 22 16:43:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5968: 
        !          5969:        * local-alloc.c (wipe_dead_reg): Remove REG_DEAD note for unset reg.
        !          5970: 
        !          5971:        * tm-sparc.h: Replace FIX_FRAME_POINTER_ADDRESS with
        !          5972:        INITIAL_FRAME_POINTER_OFFSET.
        !          5973: 
        !          5974:        * tm-vax.h (RTX_COSTS): Show shifts are relatively expensive.
        !          5975: 
        !          5976: Fri Jun 22 15:05:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          5977: 
        !          5978:        * Makefile.in (GEN): New variable.
        !          5979:        (P): New variable.
        !          5980:        (cc1, cc1plus, cc1obj): Use $(P).
        !          5981: 
        !          5982:        * cccp.c (check_macro_name): New subroutine taken from do_define.
        !          5983:        (do_define, do_undef): Use this.
        !          5984:        (do_undef): Warn if junk follows name.
        !          5985:        (handle_directive): Always ignore empty directive.
        !          5986:        Warn if \f or \v in directive.  Error for malformed directive name.
        !          5987: 
        !          5988:        * tree.h (BUILT_IN_NEXT_ARG): Define it.
        !          5989:        * c-decl.c (init_decl_processing): Declare __builtin_next_arg.
        !          5990:        * expr.h (current_function_arg_offset_rtx): Declare it.
        !          5991:        * function.c (assign_parms): Set that variable at end.
        !          5992:        * expr.c (expand_builtin): Implement __builtin_next_arg.
        !          5993:        * stdarg.h (va_start): Use __builtin_next_arg.
        !          5994: 
        !          5995:        * c-decl.c (grokdeclarator): Check for TRADITIONAL_RETURN_FLOAT.
        !          5996: 
        !          5997: Fri Jun 22 07:07:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          5998: 
        !          5999:        * final.c (final_scan_insn): Put label for jump table in same section
        !          6000:        (read-only data) as jump table.
        !          6001: 
        !          6002:        * loop.c: Allow tm.h to define ..._BENEFIT and COPY_PENALTY.
        !          6003: 
        !          6004: Wed Jun 20 13:03:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6005: 
        !          6006:        * tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad.
        !          6007:        (STACK_BOUNDARY): Make it 32.
        !          6008:        (CPP_SPEC): Add spaces.  Define _APOLLO_SOURCE if not -ansi.
        !          6009: 
        !          6010:        * c-common.c (check_case_value): New function.
        !          6011:        * c-parse.y (stmt, when parsing case): Use that.
        !          6012:        Add new rule for case range.
        !          6013: 
        !          6014:        * reload1.c (reload_inheritance_insn): New variable.
        !          6015:        (reg_reloaded_insn): New variable.
        !          6016:        (choose_reload_regs): Update those variables.
        !          6017:        (emit_reload_insns): Use them to remove deaths from insns
        !          6018:        that used input reloads.
        !          6019:        (reload_as_needed): Clear reg_reloaded_insn when necessary.
        !          6020: 
        !          6021:        * m68k.md (ashlsi3, lshlsi3): Use add to self to shift one bit.
        !          6022: 
        !          6023:        * dbxout.c (STAB_CODE_TYPE): New macro defined as type for stab codes.
        !          6024:        Use in place of enum __stab_debug_code.
        !          6025: 
        !          6026: Tue Jun 19 22:56:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6027: 
        !          6028:        * expr.c (expand_increment): For preincrement, don't load value twice:
        !          6029:        use TEMP as input to addition.
        !          6030: 
        !          6031: Tue Jun 19 06:53:13 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6032: 
        !          6033:        * explow.c (adjust_stack, anti_adjust_stack): Use expand_binop instead
        !          6034:        of gen_{add,sub}2_insn since the latter will abort if the constant is
        !          6035:        out of range for the machine.
        !          6036: 
        !          6037: Tue Jun 19 00:35:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6038: 
        !          6039:        * local-alloc.c (post_mark_life): Don't decrement DEATH
        !          6040:        if it equals BIRTH.  Don't ever increment DEATH.
        !          6041: 
        !          6042:        * varasm.c (output_constructor): Discard non_lvalue_expr, not nop_expr.
        !          6043:        Handle missing values.  Use field in the tree_list, if any.
        !          6044:        (output_addressed_constants): Don't die if value is missing.
        !          6045:        * c-typeck.c (process_init_constructor): Handle index and field specs.
        !          6046:        * c-parse.y (initlist): Parse them.
        !          6047: 
        !          6048: Mon Jun 18 15:58:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6049: 
        !          6050:        * c-decl.c, cplus-decl.c (duplicate_decls):
        !          6051:        Types don't "match" if one is error.
        !          6052: 
        !          6053:        * c-parse.y (label_decl): Use new keyword __label__, not colon.
        !          6054: 
        !          6055:        * c-parse.gperf (__label__): New keyword.
        !          6056: 
        !          6057:        * mips.md (probe): Make a single insn, just a memref.
        !          6058: 
        !          6059: Mon Jun 18 14:27:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6060: 
        !          6061:        * loop.c (loop_optimize): Set max_luid to last luid + 1, as documented.
        !          6062: 
        !          6063:        * local-alloc.c (qty_clobber): New variable.
        !          6064:        (local_alloc): Allocate and initialize it.
        !          6065:        (reg_is_set): Set qty_clobber for a clobber of a pseudo used only
        !          6066:        in this insn.
        !          6067:        (find_free_reg): Pass qty_clobber to post_mark_life.
        !          6068:        (post_mark_life): If CLOBBER if non-zero, register isn't live after
        !          6069:        its death insn.
        !          6070: 
        !          6071:        * integrate.c (expand_inline_function): Don't call try_constants on
        !          6072:        an insn that sets CC0 until we have processed the next insn.  Then
        !          6073:        call it on both.  This is because the recognizer for these insns
        !          6074:        may want to look at the user of CC0.
        !          6075: 
        !          6076: Mon Jun 18 13:25:59 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6077: 
        !          6078:        * mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted.
        !          6079:        (ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified.
        !          6080:        Don't output comments.  Use more specific predicates.
        !          6081: 
        !          6082:        * mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's.
        !          6083:        Also simplify and don't output comments.
        !          6084:        (anonymous patterns for those insns): Deleted.
        !          6085:        (loading floating constant): New patterns added.
        !          6086:        (move qi to si pattern): Deleted; ridiculous.
        !          6087:        (movdi, movsi, movhi, movqi): No need to check for moving reg to self.
        !          6088: 
        !          6089:        * mips.md (nop): Use .set noreorder to placate assembler.
        !          6090: 
        !          6091: Sun Jun 17 20:01:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6092: 
        !          6093:        * gcc.c (set_spec): Don't use `name' for both old spec and name of
        !          6094:        spec.  Use new var old_spec for the former use.
        !          6095:        Don't use (char *) 0 for null spec; use a null string instead.
        !          6096: 
        !          6097:        * jump.c (jump_optimize): Don't special-case deleting an ADDR_DIFF_VEC.
        !          6098:        Merge code to detect trivial ADDR_VEC and ADDR_DIFF_VEC.
        !          6099:        (mark_jump_label): Don't count the use of a vector table label in 
        !          6100:        ADDR_DIFF_VEC.
        !          6101:        (delete_insn): Can now handle ADDR_DIFF_VEC.
        !          6102:        (delete_labelref_insn): New function.
        !          6103:        (redirect_tablejump): Call new function to delete insn that references
        !          6104:        the jump table.
        !          6105: 
        !          6106: Sun Jun 17 01:19:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6107: 
        !          6108:        * genemit.c (gen_expand): Don't generate `operands' if size is 0.
        !          6109: 
        !          6110:        * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple
        !          6111:        of the alignment of the operand.
        !          6112: 
        !          6113:        * i860.md (signed bit field recognizers): Don't shift by >31 bits.
        !          6114: 
        !          6115:        * out-i860.c (output_delayed_branch): Pass register properly to
        !          6116:        load_opcode.
        !          6117: 
        !          6118:        * mips.md (general/fp reg move patterns): Use codes L, M, D.
        !          6119:        (movdi): Likewise.  And don't output useless comments.
        !          6120:        Use the assembler temp reg for non-offsettable address.
        !          6121:        (movsi, movhi, movqi): Output nothing for move from reg to itself.
        !          6122:        Output li to load a constant.  Use `move' instead of `add'.
        !          6123:        Don't output useless comments.
        !          6124:        (load-address pattern): Deleted; handled by addsi3 pattern.
        !          6125: 
        !          6126:        * mips.md (addsi3, mulsi3): Make both input predicates arith_operand
        !          6127:        since they are commutative.
        !          6128:        (andsi3, iorsi3, xorsi3): Likewise.
        !          6129: 
        !          6130:        * tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New.
        !          6131: 
        !          6132:        * tm-mips.h (PRINT_OPERAND): New codes D, L, M.
        !          6133:        * mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap.
        !          6134:        Use new print code D.
        !          6135: 
        !          6136:        * mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific.
        !          6137:        (andhi3, ..., andqi3, ...): Patterns deleted.
        !          6138:        (patterns for nor): New anonymous patterns.
        !          6139:        * out-mips.c (uns_arith_operand): New function.
        !          6140: 
        !          6141:        * mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*):
        !          6142:        Use more specific predicates.
        !          6143: 
        !          6144:        * mips.md (addhi3, ..., addqi3, ...): Patterns deleted.
        !          6145:        (addsi3, subsi3, mulsi3, divsi3): Make predicates more specific.
        !          6146:        Delete useless comments from assembler code.
        !          6147:        Use more generic op codes rather than special cases such as addiu.
        !          6148:        (divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns.
        !          6149:        (abssf2, absdf2): New patterns.
        !          6150: 
        !          6151: Sun Jun 17 06:56:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6152: 
        !          6153:        * cse.c (COST, rtx_cost, make_regs_eqv): Indicate that hard registers
        !          6154:        in fixed_regs are even cheaper than pseudos.
        !          6155: 
        !          6156:        * function.c (instantiate_virtual_regs_1): If valid, replace PLUS
        !          6157:        whose second operand would be zero with its first operand.
        !          6158: 
        !          6159: Sun Jun 17 00:17:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6160: 
        !          6161:        * sdbout.c (sdbout_symbol): Get right regno for var-length object.
        !          6162: 
        !          6163:        * combine.c (simplify_set_cc0_and): Strip SUBREGs, but only if
        !          6164:        they truncate.  Handle ASHIFTRT like LSHIFTRT.
        !          6165:        (try_combine): Call simplify_set_cc0_and in all those cases.
        !          6166:        (subst): Handle (zero_extract (subreg (lshift (reg )))).
        !          6167: 
        !          6168: Sat Jun 16 23:11:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6169: 
        !          6170:        * tree.c (get_narrower, get_unwidened): Bit field test was backwards.
        !          6171: 
        !          6172: Sat Jun 16 19:07:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6173: 
        !          6174:        * fold-const.c (fold): Fix typo in test for distributing binary
        !          6175:        operator over conditional and compound expressions.
        !          6176: 
        !          6177:        * genoutput.c: Remove vestiges of obsolete and never used
        !          6178:        INSN_MACHINE_INFO.
        !          6179: 
        !          6180:        * rtl.def (MATCH_PARALLEL): Add new RTL code.
        !          6181:        * genconfig.c (walk_insn_part): Support MATCH_PARALLEL.
        !          6182:        * genemit.c (max_operand_1): Likewise.
        !          6183:        (gen_exp): Just write operand for MATCH_PARALLEL.
        !          6184:        (gen_expand, gen_split): Support MATCH_PARALLEL.
        !          6185:        * genrecog.c (walk_rtx): Add support for MATCH_PARALLEL.
        !          6186:        * genoutput.c (scan_operands): Suppport MATCH_PARALLEL
        !          6187:        like MATCH_OPERATOR.
        !          6188:        * genpeep.c (match_rtx): Add code to support MATCH_PARALLEL.
        !          6189:        Don't write unnecessary cast to `rtx'.
        !          6190:        * genrecog.c (add_to_sequence): Simplify handling of mode.
        !          6191:        Support MATCH_PARALLEL.
        !          6192: 
        !          6193:        * expr.c (move_block_{to,from}_reg): Support load/store multiple.
        !          6194:        * function.c (instantiate_virtual_regs_1): If can't substitute
        !          6195:        new pseudo for virtual register, try doing the substitution
        !          6196:        globally throughout the entire insn.  This lets load/store multiple
        !          6197:        insns refer to virtual registers in their addresses.
        !          6198:        
        !          6199:        * genrecog.c (write_split_tree, write_split_subroutine): Deleted.
        !          6200:        (break_out_subroutines, write_subroutine, write_tree):  Accept
        !          6201:        parameters that indicate whether we are making gen_split or gen_recog.
        !          6202:        (main): Pass new parameters to break_out_subroutines and write_tree.
        !          6203: 
        !          6204:        * final.c (final_scan_insn): Process insns that set CC whenever a
        !          6205:        REG_CC_STATUS note is found; not only JUMP_INSNs can use CC.
        !          6206:        When scanning REG_CC_STATUS insns, set cc_prev_status from cc_status
        !          6207:        each time.
        !          6208: 
        !          6209:        * recog.c (validate_replace_rtx): New function that tries to 
        !          6210:        replace all occurrences of an object within an insn and see if the
        !          6211:        resulting insn is valid.
        !          6212: 
        !          6213: Thu Jun 14 06:58:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6214: 
        !          6215:        * optabs.c (emit_no_conflict_block): Write REG_NO_CONFLICT notes all
        !          6216:        all insns in the block that modify the output.  Write them on the
        !          6217:        final insn even if we don't put a REG_EQUAL note there.
        !          6218: 
        !          6219:        * stmt.c (expand_return): Only distribute return down a conditional
        !          6220:        expression if tail recursion is possible in a branch.
        !          6221: 
        !          6222:        * expr.c (expand_expr): Remove obsolete reference to when we had
        !          6223:        a shared structure-value slot.
        !          6224: 
        !          6225:        * jump.c (get_label_before, get_label_after, follow_jumps): No longer
        !          6226:        static.
        !          6227:        * rtl.h: Define them.
        !          6228: 
        !          6229: Mon Jun 11 17:35:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6230: 
        !          6231:        * loop.c (INSN_LUID): Check for INSN_UID above the area that we
        !          6232:        know about.
        !          6233:        (loop_optimize): Cannot use INSN_LUID as lhs.
        !          6234:        (scan_loop): If first jump is to label made by loop, we can't
        !          6235:        tell if it is in range or not, so reject loop.
        !          6236:        Reject loop if SCAN_START was an insn previously made by loop since
        !          6237:        we won't know its luid.
        !          6238:        Only call loop_reg_used_before if argument has known luid.
        !          6239:        Mark partial invariant as global if its insn was made by loop.
        !          6240:        (ignore_some_movables): Don't assume all invariants have luids.
        !          6241:        (strength_reduce): Use no_labels_between_p instead of
        !          6242:        labels_in_range_p.
        !          6243:        Don't look at luid of insns for which one doesn't exist.
        !          6244:        (valid_initial_value_p): Reject initializations in insns whose
        !          6245:        luid we don't know.
        !          6246: 
        !          6247:        * loop.c (product_cheap_p): Put all our rtl into a separate obstack
        !          6248:        and free memory from it.  If we use current_obstack, we may free
        !          6249:        memory allocated by gen_reg_rtx, which must be preserved.
        !          6250: 
        !          6251:        * c-common.c (rewrite_for_merged_ref): A non-zero one-bit signed field
        !          6252:        is -1, not 1.
        !          6253:        * c-typeck.c, cplus-typeck.c (build_binary_op_nodefault): If can't
        !          6254:        merge comparisons, don't use result of rewrite_for_merged_ref;
        !          6255:        comparisons with zero are more efficient.
        !          6256: 
        !          6257:        * protoize.c (main): Don't declare as extern.
        !          6258: 
        !          6259:        * c-aux-info.c (gen_aux_info_record): Don't declare extern.
        !          6260: 
        !          6261:        * genemit (gen_split): Rework to fix numerous bugs and typos.
        !          6262: 
        !          6263:        * function.c (assign_parms): Avoid generating (PLUS foo (const_int 0)).
        !          6264: 
        !          6265: Wed Jun         6 20:03:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6266: 
        !          6267:        * gencodes.c (main): Count a code number for DEFINE_SPLIT.
        !          6268: 
        !          6269:        * rtlanal.c (note_store): Pass SUBREG of a hard register to function.
        !          6270:        (reg_overlap_mentioned_p): Handle receiving SUBREG of hard register.
        !          6271:        * integrate.c (mark_stores): Likewise.
        !          6272:        * local-alloc.c (reg_is_set, reg_is_born): Likewise.
        !          6273:        * reload1.c (mark_not_eliminable): Likewise.
        !          6274: 
        !          6275:        * loop.c (move_movables): Don't blow up if moving last real insn
        !          6276:        in function.
        !          6277: 
        !          6278: Wed Jun         6 19:44:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6279: 
        !          6280:        * gcc.c (default_compilers): Pass -traditional before -f*.
        !          6281:        Delete -gg option.
        !          6282: 
        !          6283: Sun Jun         3 22:44:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6284: 
        !          6285:        * c-decl.c (grokdeclarator): Warn about extern with initializer.
        !          6286: 
        !          6287: Sun Jun         3 22:32:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6288: 
        !          6289:        * genrecog.c (main): Don't call write_tree with null if no insns
        !          6290:        were in file.
        !          6291: 
        !          6292: Sat Jun         2 21:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6293: 
        !          6294:        * expr.c (expand_expr, cases ABS_EXPR, MAX_EXPR, MIN_EXPR): Use target
        !          6295:        unless zero or safe_from_p rejects it.
        !          6296:        (expand_expr, conditional cases): Likewise.
        !          6297: 
        !          6298: Sat Jun         2 14:46:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6299: 
        !          6300:        * c-decl.c (grokdeclarator): Handle const and volatile with parm
        !          6301:        specified as function type.
        !          6302: 
        !          6303: Fri Jun         1 16:13:39 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6304: 
        !          6305:        * rtl.def (DEFINE_FUNCTION_UNIT): Change specifications so
        !          6306:        it now is one per operation type, rather than one per
        !          6307:        function unit.
        !          6308:        * genattr.c (write_units): Write out new function names and
        !          6309:        function unit table structure.
        !          6310:        * genattrtab.c (struct function_unit_op): New structure.
        !          6311:        (struct function_unit): Updated for new definition of
        !          6312:        DEFINE_FUNCTION_UNIT.
        !          6313:        (SIMPLIFY_TEST_EXP): New macro to reduce number of function calls
        !          6314:        to simplify_test_exp.  Replace all call to the function with
        !          6315:        uses of the macro.
        !          6316:        (check_attr_test, make_alternative_compare): Show that EQ_ATTR with
        !          6317:        attribute of "alternative", MATCH_OPERAND, and comparison cases can't
        !          6318:        be simplified.
        !          6319:        (expand_units, gen_unit, write_function_unit_info): Support new
        !          6320:        meaning of DEFINE_FUNCTION_UNIT.
        !          6321:        (simplify_test_expr): Rework AND and IOR cases to reduce rescans.
        !          6322:        Once an expression has been simplified, set RTX_UNCHANGING_P so
        !          6323:        we won't try simplifying it again.  Don't do this if INSN_CODE == -2.
        !          6324:        (write_attr_set): Don't make a recursive call if we know that
        !          6325:        the test we are writing will always be false.  Also clean up a bit.
        !          6326:        (main): true_rtx and false_rtx don't need to be simplified.
        !          6327:        Write gen_attr_... routines before special routines.
        !          6328: 
        !          6329: Fri Jun         1 14:17:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6330: 
        !          6331:        * tm-sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
        !          6332:        Round frame size to multiple of STACK_BOUNDARY.
        !          6333: 
        !          6334: Fri Jun         1 09:38:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6335: 
        !          6336:        * optabs.c (emit_no_conflict_block): Place REG_NO_CONFLICT notes on
        !          6337:        insn that contains REG_EQUAL note instead of insn doing computation.
        !          6338: 
        !          6339:        * cplus-decl2.c, cplus-lex.c: Rename gettime to get_run_time.
        !          6340:        Likewise for my_gettime to my_get_run_time.
        !          6341: 
        !          6342:        * Makefile.in (varasm.o, calls.o, explow.o, integrate.o, loop.o):
        !          6343:        These do not depend on insn-codes.h.
        !          6344:        * function.c: Explicitly include insn-codes.h to make it clear that it
        !          6345:        is needed for the values of the CODE_FOR_... macros.
        !          6346: 
        !          6347: Thu May 31 12:59:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6348: 
        !          6349:        * gnulib2.c (__trampoline): New function.
        !          6350:        * Makefile.in (LIB2FUNCS): Compile it.
        !          6351:        * tm-m68k.h (TRAMPOLINE_ALIGN): Define it.
        !          6352:        * function.c (trampoline_address): Handle extra alignment.
        !          6353:        * tm-m68k.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): 
        !          6354:        Redefine to transfer via __trampoline.
        !          6355:        (TRANSFER_FROM_TRAMPOLINE): Define it, for gnulib2.c.
        !          6356: 
        !          6357:        * fold-const.c (fold): Preserve sign on constant when other terms
        !          6358:        cancel (after call to split_tree).
        !          6359: 
        !          6360: Thu May 31 12:39:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6361: 
        !          6362:        * expr.c (preexpand_calls): Ignore BLOCK to avoid infinite recursion.
        !          6363: 
        !          6364:        * function.c (assign_parms): Fix typo getting mode of result.
        !          6365: 
        !          6366:        * cse.c (cse_basic_block): Don't go past TO if it is target of
        !          6367:        followed jump.
        !          6368: 
        !          6369: Wed May 30 21:31:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6370: 
        !          6371:        * c-parse.y (fndef, nested_function, notype_nested_function):
        !          6372:        Use YYERROR1 instead of YYERROR. 
        !          6373:        (YYERROR1): New macro.
        !          6374:        * cplus-parse.y, objc-parse.y: Likewise.
        !          6375: 
        !          6376: Tue May 29 21:53:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6377: 
        !          6378:        * optabs.c (expand_float): Don't use hard reg as intermediate.
        !          6379: 
        !          6380:        * c-parse.y, objc-parse.y (yylex): Fix typo checking for ERANGE.
        !          6381:        * cplus-lex.c (yylex): Copy current code for ERANGE from c-parse.y.
        !          6382: 
        !          6383:        * toplev.c (get_run_time): Renamed from gettime.
        !          6384: 
        !          6385: Mon May 28 15:47:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6386: 
        !          6387:        * expr.c (emit_push_insn): Don't push by pieces if alignment
        !          6388:        forces use of small pushes that do problematical padding.
        !          6389: 
        !          6390:        * tm-sparc.h (SELECT_SECTION): Use TREE_SIDE_EFFECTS.
        !          6391:        (STACK_POINTER_OFFSET): Now 68; does not include REG_PARM_STACK_SPACE.
        !          6392:        (REG_PARM_STACK_SPACE): Now takes arg and has value.
        !          6393:        (ACCUMULATE_OUTGOING_ARGS): Define this.
        !          6394:        (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, EXIT_IGNORE_STACK): Use
        !          6395:        current_function_outgoing_args_size, not ..._pretend_...
        !          6396:        (INITIALIZE_TRAMPOLINE): Use size_int.
        !          6397: 
        !          6398:        * varasm.c (make_decl_rtl, make_function_rtl): Run ENCODE_SEGMENT_INFO
        !          6399:        if it is defined.
        !          6400: 
        !          6401:        * tree.def (BIND_EXPR): Add operand, which holds the BLOCK.
        !          6402:        * expr.c (expand_expr): When BIND_EXPR is seen, flag the BLOCK.
        !          6403:        * dbxout.c (dbxout_block): Test the flag in the BLOCK.
        !          6404:        * sdbout.c (sdbout_block): Likewise.
        !          6405:        * symout.c (symout_function): Likewise.
        !          6406:        * c-parse.y (stmt expr rule): Corresponding change.
        !          6407: 
        !          6408: Sun May 27 20:53:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6409: 
        !          6410:        * caller-save.c (save_call_clobbered_regs): Correctly mark registers
        !          6411:        live for multi-word pseudos.
        !          6412: 
        !          6413: Sat May 26 13:42:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6414: 
        !          6415:        * sdbout.c (sdb_begin_function_line): Now -1 if not in use.
        !          6416:        (sdbout_end_function): Set it to -1.
        !          6417: 
        !          6418:        * tree.def: Rename EXIT_STMT to EXIT_EXPR and likewise for LOOP_STMT.
        !          6419:        Also LET_STMT to BIND_EXPR, and GOTO_STMT, LABEL_STMT, RETURN_STMT
        !          6420:        to ..._EXPR.
        !          6421:        (struct tree_stmt, struct tree_if_stmt, struct tree_bind_stmt):
        !          6422:        (struct tree_case_stmt): Types deleted.
        !          6423: 
        !          6424:        * tree.c (make_node, copy_node): Treat 's' like 'e' for size of node.
        !          6425:        In make_node, make BLOCK and BIND_EXPR savable.
        !          6426:        * expr.c (expand_expr): Rename, and use TREE_OPERAND to get body.
        !          6427:        * cplus-init.c (build_vec_delete): Likewise, and build appropriately.
        !          6428:        * print-tree.c (print_node): No special handling for these and IF_STMT.
        !          6429:        * stmt.c (warn_if_unused_value): Likewise.
        !          6430: 
        !          6431:        * tree.def (BLOCK): New tree code for binding blocks.
        !          6432:        * tree.h (BLOCK_VARS, BLOCK_TYPE_TAGS):
        !          6433:        (BLOCK_SUBBLOCKS, BLOCK_SUPERCONTEXT): Renamed from STMT_...
        !          6434:        (STMT_...): Except for those, all deleted.
        !          6435:        (BLOCK_CONTROLLER): Points to corresponding BIND_EXPR, if any.
        !          6436:        (BLOCK_CHAIN): New macro.
        !          6437:        * tree.c (build_block): Renamed from build_let.
        !          6438:        (decl_type_context, decl_function_context): Corresponding change.
        !          6439:        * print-tree.c (print_node): Likewise.
        !          6440:        * c-decl.c, cplus-decl.c (poplevel): Likewise.
        !          6441:        * integrate.c (copy_decl_tree): Likewise.
        !          6442:        * function.c (setjmp_protect, uninitialized_vars_warning):
        !          6443:        (instantiate_decls_1): Likewise.
        !          6444:        * c-parse.y, cplus-parse.y, objc-parse.y (stmt expr rule): Likewise.
        !          6445:        * dbxout.c (dbxout_block): Expect only BLOCKs in this tree.
        !          6446:        Ignore those with controllers that are not marked used.
        !          6447:        * sdbout.c (sdbout_block): Likewise.
        !          6448:        * symout.c (symout_function): Likewise.
        !          6449: 
        !          6450:        * tree.def: Delete IF_STMT, COMPOUND_STMT, WITH_STMT.
        !          6451:        * expr.c (expand_expr): Delete handling of IF_STMT.
        !          6452:        * tree.c (build_if, build_loop, build_case, build_goto): Deleted.
        !          6453:        (build_expr_stmt, build_asm_stmt, build_return, build_exit): Likewise.
        !          6454:        (build_compound): Likewise.
        !          6455:        * cplus-init.c (build_vec_delete): Use COND_EXPR instead of IF_STMT.
        !          6456: 
        !          6457: Sat May 26 13:23:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6458: 
        !          6459:        * calls.c (struct arg_data): Add new fields slot_offset and stack_slot.
        !          6460:        (expand_call): Compute both location of start of stack slot and the
        !          6461:        place in the stack slot where the first byte of the argument will be
        !          6462:        placed.
        !          6463:        Use stack_slot when loading a BLKmode object into registers.
        !          6464:        When loading into registers, don't check reg_parm_seen, just look
        !          6465:        at args[i].reg.
        !          6466:        (expand_call, store_one_arg): Save and restore stack slot starting
        !          6467:        from beginning of slot, not begining location where arg is stored.
        !          6468:        (store_one_arg): After calling emit_push_insn, argument is really
        !          6469:        at arg->stack_slot instead of arg->stack because if we want to
        !          6470:        load it into registers, we include any padding.
        !          6471: 
        !          6472: Sat May 26 01:37:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6473: 
        !          6474:        * tree.h (struct tree_type): Rename sep=>minval, sep_unit=>precision.
        !          6475: 
        !          6476:        * tree.c (init_obstacks, init_tree_codes): init_tree split in two.
        !          6477:        * toplev.c (compike_file): Call them.
        !          6478: 
        !          6479: Fri May 25 16:40:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6480: 
        !          6481:        * stor-layout.c (layout_record): Nuke excess set of DECL_FIELD_BITPOS.
        !          6482:        * varasm.c (output_constructor): Bitpos is zero for array (field == 0).
        !          6483: 
        !          6484: Fri May 25 00:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6485: 
        !          6486:        * final.c (final_scan_insn): Restore inadvertent deletion in change
        !          6487:        of May 24th.
        !          6488: 
        !          6489: Fri May 25 00:13:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6490: 
        !          6491:        * print-tree.c (print_node): Print some missing fields for decls.
        !          6492:        (print_node_brief): Always print value of integer or real constant.
        !          6493: 
        !          6494: Thu May 24 21:28:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6495: 
        !          6496:        * fold-const.c (real_zerop): Function deleted; was redundant.
        !          6497: 
        !          6498:        * tree.h (DECL_OFFSET): Macro deleted.
        !          6499:        (struct tree_decl): Field deleted.
        !          6500: 
        !          6501:        * c-typeck.c (build_unary_op): For ADDR_EXPR of COMPONENT_REF,
        !          6502:        use DECL_FIELD_BITPOS and handle non-constant values.
        !          6503:        * stor-layout.c (layout_record, layout_union): Likewise.
        !          6504:        * expr.c (expand_assignment, store_constructor, expand_expr): Likewise.
        !          6505:        * dbxout.c (dbxout_type): Likewise.
        !          6506:        * sdbout.c (sdbout_one_type): Likewise.
        !          6507:        * c-common.c (merge_component_comparisons, make_merged_ref): Likewise.
        !          6508:        * print-tree.c (print_node): Likewise.
        !          6509:        * varasm.c (decode_addr_const, output_constructor): Likewise.
        !          6510:        * objc-actions.c (build_ivar_list_initializer): Likewise.
        !          6511:        * cplus-typeck.c (build_component_addr): Likewise.
        !          6512:        And preserve TREE_CONSTANT flag.
        !          6513:        (unary_complex_lvalue): Likewise.
        !          6514:        
        !          6515:        * tree.h (DECL_FUNCTION_CODE): Use the frame_size field, not `offset'.
        !          6516:        Now meaningful only if function is built in.
        !          6517:        (DECL_BUILT_IN): New flag macro.
        !          6518:        * c-decl.c (builtin_function): Set the flag.
        !          6519:        (pushdecl, duplicate_decls): Use and set it.
        !          6520:        * c-typeck.c, cplus-typeck.c (build_function_call): Test it.
        !          6521:        * cplus-decl.c (define_function): Set the flag.
        !          6522:        (pushdecl, duplicate_decls): Use and set it.
        !          6523:        * expr.c (expand_expr, preexpand_calls): Test it.
        !          6524: 
        !          6525:        * tree.h (DECL_INCOMING_RTL): New macro.
        !          6526:        * function.c (assign_parms): Set up that field.
        !          6527:        * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't try to use
        !          6528:        DECL_OFFSET for a parm; it is not set.  Use DECL_INCOMING_RTL.
        !          6529:        (PARM_PASSED_IN_MEMORY): New macro.
        !          6530:        * sdbout.c (sdbout_parms, sdbout_reg_parms): Likewise.
        !          6531:        (PARM_PASSED_IN_MEMORY): New macro.
        !          6532: 
        !          6533:        * cccp.c (macarg): When popping frame, free via free_ptr, not buf.
        !          6534: 
        !          6535: Thu May 24 18:04:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6536: 
        !          6537:        * emit-rtl.c (next_cc0_user): New function.
        !          6538:        * recog.c (next_insn_tests_no_inequality): Use next_cc0_user.
        !          6539:        * rtl.h: Define next_cc0_user.
        !          6540: 
        !          6541:        * cse.c (cse_insn): Make canon_reg calls in separate loop over the
        !          6542:        SETs to avoid problems when MATCH_DUPs are present in an insn
        !          6543:        pattern.
        !          6544:        Don't canon CLOBBER in PARALLEL.  Instead, canon MEM of CLOBBER,
        !          6545:        both within a PARALLEL and standalone.  Also, call note_mem_clobbered
        !          6546:        only for MEM.
        !          6547: 
        !          6548: Thu May 24 13:08:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6549: 
        !          6550:        * gnulib2.c (__negdi2): Make this inline for other functions.
        !          6551: 
        !          6552: Thu May 24 07:15:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6553: 
        !          6554:        * jump.c (no_labels_between_p, prev_real_insn, next_real_insn):
        !          6555:        (prev_active_insn, next_active_insn, next_label): Delete from here.
        !          6556:        * rtlanal.c (no_labels_between_p): Put here.
        !          6557:        * emit-rtl.c (prev_real_insn, next_real_insn, prev_active_insn):
        !          6558:        (next_active_insn, next_label): Add to here.
        !          6559: 
        !          6560:        * c-common.c: Define NULL so NULL_TREE macro will work.
        !          6561: 
        !          6562:        * cplus-typeck.c (common_parms): Use oballoc and obfree to
        !          6563:        avoid external current_obstack.
        !          6564: 
        !          6565:        * cse.c (fold_cc0, cse_insn): Use HASH macro instead of call to
        !          6566:        canon_hash.
        !          6567:        (cse_insn): When just recording jump insn, show it doesn't set CC0
        !          6568:        and set it as previous insn.
        !          6569: 
        !          6570:        * genoutput.c (gen_split): Fix typo in comment.
        !          6571: 
        !          6572:        * reorg.c: No longer need define next_label and next_real_insn as
        !          6573:        extern.
        !          6574: 
        !          6575:        * toplev.c (rest_of_compilation): Use DELAY_SLOTS instead of
        !          6576:        obsolete HAVE_DELAYED_BRANCH; include insn-attr.h.
        !          6577: 
        !          6578:        * final.c (dbr_sequence_length): Now present #ifdef DELAYED_BRANCHES.
        !          6579:        Eliminate references to obsolete DBR_INSN_SLOTS.
        !          6580:        (get_attr_length): Support ADJUST_INSN_LENGTH.
        !          6581:        (get_attr_length, shorten_branches): Handle a SEQUENCE built for an
        !          6582:        insn with filled delay slots.
        !          6583:        (final_scan_insn): Avoid unnecessary call to recog_memoized.
        !          6584:        Use validate_change instead of assuming replacement of CC0 by
        !          6585:        STORE_FLAG_VALUE or const0_rtx is valid.
        !          6586: 
        !          6587: Wed May 23 16:32:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6588: 
        !          6589:        * out-m68k.c, out-alliant.c (output_btst):
        !          6590:        Use next_insn_tests_no_inequality, not next_insns_test_...
        !          6591:        * recog.c (next_insns_test_no_inequality): Function deleted.
        !          6592: 
        !          6593: Wed May 23 13:26:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6594: 
        !          6595:        * expmed.c (store_bit_field): Don't bother making a SUBREG when we
        !          6596:        call ourself recursively; the recursive call will just strip it off.
        !          6597: 
        !          6598:        * reorg.c: Include insn-attr.h before testing DELAY_SLOTS.
        !          6599:        (emit_delay_sequence): Assign new INSN_UID to the SEQUENCE.
        !          6600:        Chain insns through the sequence via NEXT_INSN and PREV_INSN.
        !          6601:        * emit-rtl.c (next_insn, prev_insn): Go inside a SEQUENCE to
        !          6602:        find the next or previous insn.
        !          6603:        (make_insn_raw): No longer static.
        !          6604:        * rtl.h: Define make_insn_raw, prev_active_insn, next_active_insn,
        !          6605:        next_insn, and previous_insn.
        !          6606: 
        !          6607:        * genattrtab.c (write_eligible_delay): Always use "*delay_type";
        !          6608:        annuling only applies to candidate insn, not insn needing slot.
        !          6609: 
        !          6610:        * tree.c (init_tree): tree_node_counter doesn't exist any more.
        !          6611:        (make_node, copy_node, make_tree_vec, build1): No longer set TREE_UID.
        !          6612: 
        !          6613: Wed May 23 00:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          6614: 
        !          6615:        * genemit.c, genextract.c: Add support for MATCH_OP_DUP and
        !          6616:        DEFINE_SPLIT.
        !          6617: 
        !          6618:        * cplus-init.c (build_delete): TREE_SIDE_EFFECTS can be
        !          6619:        nonzero when address to be deleted is a cast of something
        !          6620:        with side-effects (like a call).
        !          6621:        (build_vec_delete): Simplify code now that `make_node' does the
        !          6622:        right thing for _STMT nodes.
        !          6623: 
        !          6624: Tue May 22 22:59:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6625: 
        !          6626:        * cse.c (cse_end_basic_block): Don't crash if NEXT_INSN of
        !          6627:        our branch target is zero.
        !          6628:        Don't skip scanning first insn after destination label of branch.
        !          6629: 
        !          6630:        * expr.c (emit_move_insn): Abort if modes differ.
        !          6631:        (expand_expr, comparison cases): Use TMODE when convenient.
        !          6632:        (expand_expr, case COND): When optimizing (C ? 1 : 0), ensure
        !          6633:        we return a result of the correct mode.
        !          6634: 
        !          6635:        * integrate.c (expand_inline_function): Can't call try_constants for
        !          6636:        JUMP_INSN since we may have changed RETURN to jump.
        !          6637: 
        !          6638: Tue May 22 22:40:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6639: 
        !          6640:        * tree.h (struct tree_common): Delete field `uid'.
        !          6641:        (TREE_UID): Macro deleted.
        !          6642: 
        !          6643:        * c-decl.c (finish_decl): Discard any variable sizes in the decl.
        !          6644: 
        !          6645:        * calls.c (expand_call): When making reg_notes for const function,
        !          6646:        don't test is_const twice, and take account of order of pushing.
        !          6647: 
        !          6648: Tue May 22 21:41:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6649: 
        !          6650:        * reload1.c (eliminate_regs): Ensure we process pseudo that is first
        !          6651:        operand of PLUS.
        !          6652: 
        !          6653:        * expmed.c (store_bit_field): When stripping a SUBREG, adjust the
        !          6654:        bit position to correspond to the change in modes.
        !          6655: 
        !          6656:        * cse.c (rtx_cost): Use COSTS_N_INSNS macro.
        !          6657: 
        !          6658:        * cse.c (qty_comparison_*): New vars.
        !          6659:        (new_basic_block): Initialize qty_comparison_code.
        !          6660:        (fold_rtx): If we see a comparison, check if we have seen the
        !          6661:        same comparison before.  If so, we know the result.
        !          6662:        (record_jump_equiv): Save the comparison being passed in the
        !          6663:        qty_comparison_* variables for possible later use by fold_rtx.
        !          6664:        (cse_insn): If the current insn doesn't reference cc0, but the
        !          6665:        previous insn sets it, delete the previous insn; presumably we
        !          6666:        used to test it.
        !          6667:        (cse_basic_block): Allocate new qty_comparison_* vars.
        !          6668: 
        !          6669:        * reload1.c (eliminate_regs): Second arg is now mode of enclosing
        !          6670:        MEM, if any, rather than simply flag indicating inside MEM.
        !          6671:        Use this mode to determine amount that, e.g., PRE_DEC adjusts by.
        !          6672: 
        !          6673:        * reload1.c (reload): Set regs_ever_live for a register that couldn't
        !          6674:        be eliminated.
        !          6675:        * final.c (only_leaf_regs_used): Don't do it here.
        !          6676: 
        !          6677:        * reorg.c: Eliminate obsolete macros *_REORG_FUNCTION.
        !          6678:        Entire file is conditional on #ifdef DELAY_SLOTS.
        !          6679: 
        !          6680:        * Makefile.in: Use reorg.c instead of dbranch.c.
        !          6681: 
        !          6682: Tue May 22 20:40:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6683: 
        !          6684:        * c-decl.c (complete_array_type): Get string elt size in bytes.
        !          6685: 
        !          6686: Tue May 22 00:42:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6687: 
        !          6688:        * toplev.c (rest_of_compilation): Turn off VERBOSE arg to thread_jumps.
        !          6689: 
        !          6690:        * objc-parse.y, objc-actions.c: Replaces uses of build with build1
        !          6691:        when being used for 1-operand nodes.
        !          6692: 
        !          6693: Mon May 21 23:59:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6694: 
        !          6695:        * global-alloc.c (hard_reg_full_preferences): New variable.
        !          6696:        (global_alloc): Allocate and initialize it.
        !          6697:        (prune_preferences): Include in regs_someone_prefers all words
        !          6698:        of multi-word items that have preferences.  Don't includes registers
        !          6699:        we also prefer unless they are prefered by an allocno that needs
        !          6700:        more registers.
        !          6701:        (set_preference): Set hard_reg_full_preferences also.
        !          6702: 
        !          6703: Mon May 21 21:36:29 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6704: 
        !          6705:        * tree.c (make_node): All ..._STMT nodes have side effects, type void.
        !          6706: 
        !          6707: Mon May 21 16:03:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6708: 
        !          6709:        * integrate.c (expand_inline_function): Set insns_at_start before
        !          6710:        processing parameters since it might be needed during that processing. 
        !          6711:        Set RTX_INTEGRATED_P in all insns emitted, including labels and
        !          6712:        barriers.
        !          6713:        Ensure COPY is set correctly when replacing RETURN and avoid
        !          6714:        duplicate barriers by calling emit_jump_insn instead of emit_jump.
        !          6715:        Call note_stores for JUMP_INSNs and CALL_INSNs in case they have
        !          6716:        side-effects we care about.
        !          6717:        (copy_rtx_and_substitute): Convert (use (subreg FOO)) to (use FOO).
        !          6718:        (subst_constants): Don't crash if we see a SUBREG replaced by a
        !          6719:        REG or vice versa; we have no work to do in that case.
        !          6720:        Fix typo in case MULT.
        !          6721: 
        !          6722:        * recog.c (constrain_operands): Call reg_fits_class_p with original
        !          6723:        mode of OP, not mode of SUBREG_REG (op) when OP is SUBREG.
        !          6724: 
        !          6725: Mon May 21 14:25:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6726: 
        !          6727:        * expmed.c (extract_bit_field): Use class of TMODE for simple reg case.
        !          6728: 
        !          6729:        * flags.h (flag_pic): Declare it.
        !          6730:        * tree.h (mode_for_size): Declare it.
        !          6731:        * c-tree.h (merge_component_comparisons): Declare it.
        !          6732: 
        !          6733: Mon May 21 07:27:12 1990  Michael Tiemann  (tiemann at cygnus.com)
        !          6734: 
        !          6735:        * jump.c (thread_jumps): New function to optimize the case where one
        !          6736:        conditional jump jumps to another testing the same condition.  This
        !          6737:        function usefully optimzies code both before common subexpression
        !          6738:        elimination (where it "finds" common subexpressions that cse won't
        !          6739:        find) and after loop optimization (where the loop optimizer
        !          6740:        introduces new conditional jumps after rearranging loops).
        !          6741:        (rtx_equal_for_thread_p): cheaply builds equivalences between
        !          6742:        register so that jump threading can be effectively run before cse.
        !          6743: 
        !          6744:        * emit-rtl.c (init_emit_once): Initialize PIC_OFFSET_TABLE_RTX if
        !          6745:        PIC_OFFSET_TABLE_REGNUM is defined.
        !          6746: 
        !          6747:        * tree.c (build,build1,build_nt): Set TREE_RAISES in addition to
        !          6748:        TREE_SIDE_EFFECTS.
        !          6749:        ({temp,saveable,perm}_tree_cons): Call `tree_cons' with arguments
        !          6750:        instead of calling `make_node' directly.  Eventually, `tree_cons'
        !          6751:        could be faster than `make_node'.
        !          6752:        (get_identifier): Use `bcmp' instead of `strcmp', since it's
        !          6753:        faster.  Also, test the first letter of each string before calling
        !          6754:        the string comparison function.
        !          6755: 
        !          6756:        * toplev.c: Add new flags FLAG_THREAD_JUMPS and FLAG_PIC.  The
        !          6757:        former gives better common sub-expression elimination while the
        !          6758:        latter tells the compiler to emit position-independent code.
        !          6759:        (rest_of_compilation): Thread jumps if requested.
        !          6760: 
        !          6761:        * stor-layout.c (layout_{record,union}): For loop bodies meant only
        !          6762:        for FIELD_DECLs, make sure we have a FIELD_DECL before proceeding.
        !          6763: 
        !          6764:        * stmt.c (expand_end_case): Use ADDR_DIFF_VEC if FLAG_PIC is
        !          6765:        nonzero.
        !          6766:        @@ NOTE: This would look a lot nicer if CASE_VECTOR_PC_RELATIVE were
        !          6767:        an expression (like zero/nonzero) instead of soley a #define.
        !          6768:        (fixup_cleanups): If cleanups emitted no code, don't call
        !          6769:        `reorder_insns'.
        !          6770:        (expand_decl_cleanup): Return 0 in case we are not in a block
        !          6771:        (but instead at top-level).
        !          6772: 
        !          6773:        * stack.h: New GNU C++ file.
        !          6774: 
        !          6775:        * rtl.c (REG_NOTE_NAMES): Add REG_CC_STATUS and REG_TAIL_CALL.
        !          6776:        * rtl.h: Ditto.  Also make external declaration of
        !          6777:        pic_offset_table_rtx.
        !          6778:        * rtl.def: Add the following new RTL codes: DEFINE_SPLIT,
        !          6779:        MATCH_OP_DUP, LO_SUM and HIGH.
        !          6780: 
        !          6781:        * reorg.c: New file.  Performs instruction reorganizations
        !          6782:        (primarily branch scheduling) after register allocation.
        !          6783: 
        !          6784:        * local-alloc.c (local_alloc): If defined, execute
        !          6785:        ORDER_REGS_FOR_LOCAL_ALLOC.
        !          6786: 
        !          6787:        * genrecog.c (struct decision): Extended to handle DEFINE_SPLITs.
        !          6788:        (write_tree): Split into three subroutines: `write_tree_1' which
        !          6789:        does the main work, `write_tree' which does the original job, and
        !          6790:        `write_split_tree' which builds the recognizer for insn splitting.
        !          6791:        (add_to_sequence): Handle MATCH_OP_DUP.
        !          6792:        (main): Bui.Build both insn->insn_code and insn->insn_list
        !          6793:        recognizers.
        !          6794:        Also, fixed comment at the top of the file.
        !          6795:        * genpeep.c (main): Handle DEFINE_SPLIT.
        !          6796:        (match_rtx): Handle MATCH_OP_DUP.
        !          6797:        * genoutput.c (main): Handle DEFINE_SPLIT.
        !          6798:        * genconfig.c (main): Handle DEFINE_SPLIT and MATCH_OP_DUP.
        !          6799:        * genattrtab.c (main): Handle DEFINE_SPLIT.
        !          6800: 
        !          6801:        * fold-const.c (various places): Use `build1' constructor instead of
        !          6802:        `build' constructor whenever possible.
        !          6803: 
        !          6804:        * final.c (final_scan_insn): If we know the status of the condition
        !          6805:        codes at a particular JUMP_INSN (by dint of the fact that it has a
        !          6806:        REG_CC_STATUS note), set CC_STATUS to reflect that value.
        !          6807:        (only_leaf_regs_used): @@ For some reason the frame pointer register
        !          6808:        is not marked live, even when it is.  If FRAME_POINTER_NEEDED is
        !          6809:        nonzero, set REGS_EVER_LIVE[FRAME_POINTER_REGNUM] to 1.
        !          6810: 
        !          6811:        * expr.c (emit_library_call): Round ARGS_SIZE.CONSTANT up, not down.
        !          6812:        Use new macro MAX to accomplish this.
        !          6813:        (safe_from_p): Don't check that EXP is nonzero.  Instead, make
        !          6814:        caller check (only in one place) that argument to `safe_from_p' is
        !          6815:        non-zero.
        !          6816:        (expand_expr): In COND_EXPR case, make sure that the predicate is
        !          6817:        safe from the two conditions.  Lossage occured in a construct of the
        !          6818:        form (c = c < 0 ? d : -d).
        !          6819: 
        !          6820:        * explow.c (plus_constant): Handle LO_SUM rtl.
        !          6821: 
        !          6822:        * c-typeck.c (build_binary_op_nodefault): If optimizing, try merging
        !          6823:        component refs and/or comparisons into larger operations.
        !          6824: 
        !          6825:        * c-common.c (rewrite_for_merged_ref): New function.  Canonicallizes
        !          6826:        expressions to be recognizable as candidates for merged
        !          6827:        COMPONENT_REF operations.
        !          6828:        (make_merged_ref): Builds custom FIELD_DECLs for accessing multiple
        !          6829:        bits in a byte simultaneously.
        !          6830:        (merge_component_comparisons): Optimize COMPONENT_REFs in
        !          6831:        expressions that look like (x.p == y.p && x.q == y.q) or
        !          6832:        (x.p != y.p || x.q != y.q).  Also optimize (x.p == c1 && x.q == c2),
        !          6833:        where C1 and C2 are known constants.
        !          6834: 
        !          6835:        * c-lang.c (print_lang_statistics): Added new hook function.
        !          6836:        Currently does nothing for C.
        !          6837: 
        !          6838:        * c-convert.c: Use `build1' constructor instead of `build'
        !          6839:        constructor whenever possible.
        !          6840: 
        !          6841:        * cplus-typeck.c (build_binary_op_nodefault): Call this function for
        !          6842:        better applicability of the merged component ref optimization. 
        !          6843:        Also, add more recognized cases.
        !          6844: 
        !          6845:        * cplus-type2.c (merge_component_comparisons): Code improved, and
        !          6846:        moved to c-common.c.
        !          6847: 
        !          6848:        * cplus-parse.y (operator_name): Recognize `operator,'.
        !          6849:        (expr): On parsing ',', call `build_x_compound_expr' instead of
        !          6850:        `build_compound_expr'.
        !          6851:        (various places): Call `note_decl_list_got_semicolon' instead of
        !          6852:        `note_decl_got_semicolon' where object in question is a list instead
        !          6853:        of a type.
        !          6854:        (component_declarator0): Set CURRENT_DECLSPECS from the bitfield
        !          6855:        type.
        !          6856: 
        !          6857:        * cplus-method.c (hack_wrapper): Rename parameter TYPE to CNAME,
        !          6858:        since it is a type name we pass in, not a type.
        !          6859: 
        !          6860:        * cplus-lex.c (opname_tab): Add `operator,'.
        !          6861:        (note_decl_list_got_semicolon): Make notation that a list of
        !          6862:        declarations should be considered as having "gotten a semicolon".
        !          6863:        (extract_interface_info,interface_strcmp): Commented.
        !          6864: 
        !          6865:        * cplus-init.c (build_delete): Rest of changes to reimplement new
        !          6866:        destructor mechanism.
        !          6867:        (build_vbase_delete): Fix bug whereby arrays of length 0 and 1 were
        !          6868:        not being correctly handled.  Also, where elsements were not being
        !          6869:        deleted.  Use new destrouct calling convention.
        !          6870:        (various places): Change TYPE_HAS_CONSTRUCTOR to
        !          6871:        TREE_HAS_CONSTRUCTOR where appropriate.
        !          6872: 
        !          6873:        * cplus-expr.c (cplus_expand_expr): Use `emit_block_move' to copy
        !          6874:        data from RETURN_TARGET to CALL_TARGET in case they do not line up
        !          6875:        normally.
        !          6876: 
        !          6877:        * cplus-decl2.c (finish_file): No need to call `build_vbase_delete'
        !          6878:        on top-level objects anymore, since destructors now do the right
        !          6879:        thing.
        !          6880: 
        !          6881:        * cplus-decl.c (finish_function): Implement new destructor
        !          6882:        mechanism: destroy virtual baseclass objects if (in$charge & 2) is
        !          6883:        nonzero.  Deallocate if (in$charge & 1) is nonzero.
        !          6884: 
        !          6885:        * cplus-cvt.c (build_up_reference): Use TREE_HAS_CONSTRUCTOR, not
        !          6886:        TYPE_HAS_CONSTRUCTOR on non-TYPE tree nodes.
        !          6887:        (build_up_reference): Only build up references between compatible
        !          6888:        types.  I.e., don't build a char& to an int object.
        !          6889:        (convert_to_aggr): Set the TREE_SIDE_EFFECTS bit if the result is a
        !          6890:        CALL_EXPR.
        !          6891: 
        !          6892:        * cplus-class.c (build_vbase_path): Recover from bad parse errors.
        !          6893:        (build_method_call): Implement new ctor/dtor semantics to allow
        !          6894:        differentiation between tearing an object down and deallocating it.
        !          6895:        This also means that ctors and dtors can now aviod going through the
        !          6896:        virtual function table mechanism as they construct/destruct their
        !          6897:        objects.
        !          6898: 
        !          6899:        * ALL GNU C++ files: Use new macro IDENTIFIER_TYPE_VALUE to lookup
        !          6900:        type value of an identifier.  Also implement related macros
        !          6901:        IDENTIFIER_HAS_TYPE_VALUE, and IDENTIFIER_TYPEDECL_VALUE.
        !          6902: 
        !          6903:        * cplus-cadillac.c (cadillac_switch_source): Change Prototype
        !          6904:        declaration to non-prototype declaration.
        !          6905:        (readable_p): Ditto.
        !          6906: 
        !          6907: Sun May 20 20:23:39 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6908: 
        !          6909:        * c-typeck.c (c_sizeof): For incomplete type, warn and return 0.
        !          6910:        (c_sizeof): Similar.
        !          6911: 
        !          6912: Sun May 20 17:20:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6913: 
        !          6914:        * emit-rtl.c (gen_highpart): Support SUBREG like gen_lowpart.
        !          6915: 
        !          6916: Sun May 20 16:59:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          6917: 
        !          6918:        * c-typeck.c (build_c_cast): Warn about pointer-integer casts 
        !          6919:        where size differs.
        !          6920: 
        !          6921:        * stor-layout.c (layout_type): Multi-word field doesn't force BLKmode.
        !          6922: 
        !          6923:        * expmed.c (extract_bit_field): Use mode_for_size for lsb-aligned
        !          6924:        fields in regs.  No longer knows explicit modes for this.
        !          6925: 
        !          6926: Sun May 20 15:12:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          6927: 
        !          6928:        * Makefile.in: (reload1.o): Now depends on output.h.
        !          6929: 
        !          6930:        * calls.c (expand_call): No need to set frame_pointer_needed.
        !          6931: 
        !          6932:        * emit-rtl.c (gen_rtx): If reference to sp, ap, or fp, use
        !          6933:        appropriate already-made rtx (e.g., stack_pointer_rtx).
        !          6934: 
        !          6935:        * expr.c (expand_builtin, case BUILT_IN_ALLOCA): No need to set
        !          6936:        frame_pointer_needed.
        !          6937: 
        !          6938:        * final.c (final_start_function): No longer round size of frame here.
        !          6939:        (final_scan_insn): Call constrain_operands with new operand.
        !          6940: 
        !          6941:        * flow.c (life_analysis): Change test on whether sp is live or
        !          6942:        not to depend on FRAME_POINTER_REQUIRED and -fomit-frame-pointer.
        !          6943:        (This code may not be relevant any more.)
        !          6944: 
        !          6945:        * function.c (push_function_context, pop_function_context): No need
        !          6946:        to save and restore frame_pointer_needed.
        !          6947:        (assign_{outer_,}stack_local): No need to set frame_pointer_needed.
        !          6948:        (assign_parms): Likewise.
        !          6949:        (init_function_start): Don't initialize frame_pointer_needed here.
        !          6950: 
        !          6951:        * function.h (frame_pointer_needed): Deleted.
        !          6952: 
        !          6953:        * genattrtab.c (write_attr_case): Write call to constrain_operands
        !          6954:        with new second argument (reload_completed).
        !          6955: 
        !          6956:        * global-alloc.c (global_alloc): Don't left fp be allocated if we
        !          6957:        already know we can't eliminate it.
        !          6958:        (find_reg): Argument LOSERS is now a HARD_REG_SET instead of an array.
        !          6959:        Precompute HARD_REG_SETs before loop over registers to speed up
        !          6960:        allocation.
        !          6961:        (retry_global_alloc): Argument FORBIDDEN_REGS is now a HARD_REG_SET.
        !          6962:        (check_frame_pointer_required): Deleted; no longer needed.
        !          6963: 
        !          6964:        * integrate.c (save_for_inline, output_inline_function): No longer
        !          6965:        need to save and restore frame_pointer_needed.
        !          6966: 
        !          6967:        * local-alloc.c (block_alloc): No longer have to worry that having
        !          6968:        a stack variable might cause a frame pointer to be needed when it
        !          6969:        might otherwise not be.
        !          6970:        (find_free_reg): Don't allocate into registers that may be eliminated
        !          6971:        later even if they are not FIXED_REGS.
        !          6972: 
        !          6973:        * output.h: Define reload_completed.
        !          6974: 
        !          6975:        * recog.c (constrain_operands): Add new argument, STRICT.  If zero
        !          6976:        and the constraints could not be matched, try again with a less
        !          6977:        strict view (i.e., assume that reload will fix those things that
        !          6978:        it can).  This allows attribute values to be obtained prior to
        !          6979:        reload.
        !          6980:        Don't call alter_subreg or assume it has been called.  Instead,
        !          6981:        look inside SUBREGs.
        !          6982: 
        !          6983:        * reload.c (find_reloads_address{,_1}): Handle an address that
        !          6984:        is a MEM; it may have been produced by register elimination.
        !          6985:        (find_reloads_address): sp can also be the base register for a
        !          6986:        stack slot.
        !          6987:        (form_sum): No longer static.
        !          6988: 
        !          6989:        * reload1.c: Rewrite code that performs frame pointer elimination.  Do
        !          6990:        it during reload to ensure that all addresses and operands remain
        !          6991:        valid; also generalize to support more than one pair of eliminations.
        !          6992:        (reg_equiv_stack_slot, bad_spill_regs): New vars.
        !          6993:        (forbidden_regs): Now a HARD_REG_SET.
        !          6994:        (struct elim_table): New structure to describe register eliminations.
        !          6995:        (reload): Start scanning registers after virtual registers.
        !          6996:        Initialize reg_equiv_stack_slot for each register.  Compute
        !          6997:        reg_equiv_{mem,address} during register scan only if not eliminating
        !          6998:        registers.
        !          6999:        Compute initial default value of frame_pointer_needed.
        !          7000:        Round frame size to BIGGEST_ALIGNMENT.
        !          7001:        Create obstack for scratch rtl created by register elmination.
        !          7002:        Initialize elimination table and spill registers that we know can't
        !          7003:        be eliminated.
        !          7004:        On each scan of the insns: Reset all elimination entries to initial
        !          7005:        offsets, compute reg_equiv_{mem,address}, and see if any potentially
        !          7006:        eliminable register changed status.
        !          7007:        Try to eliminate registers from each insn unless we know that none
        !          7008:        can be eliminated.
        !          7009:        Don't complete groups for spill registers from registers that
        !          7010:        shouldn't be used as spill registers.
        !          7011:        Call reload_as_needed if register eliminations can be done, even if
        !          7012:        no reloads are needed.
        !          7013:        (new_spill_reg): Don't allow spilling an eliminable register.
        !          7014:        Don't set forbidden_regs here.
        !          7015:        Indicate something changed if a register that wasn't ever used before
        !          7016:        was made a spill register.
        !          7017:        (eliminate_frame_pointer, {alter,fix}_frame_pointer_address): Deleted.
        !          7018:        (delete_dead_insn): New function.
        !          7019:        (alter_reg): Call it.
        !          7020:        Always set reg_equiv_stack_slot; if not eliminating registers, also
        !          7021:        set reg_equiv_{mem,address}.
        !          7022:        (eliminate_regs, eliminate_regs_in_insn): New functions.
        !          7023:        (spill_hard_reg): Add new argument, CANT_ELIMINATE.
        !          7024:        Set bit for register being spilled in forbidden_regs.
        !          7025:        Use new argument instead of seeing if we are spilling fp.
        !          7026:        No longer need to have frame pointer just because a reg needs a
        !          7027:        stack slot.
        !          7028:        (order_regs_for_reload): Set bad_spill_regs to contain those registers
        !          7029:        that can't be used for spill registers.
        !          7030:        Consider any eliminable register as bad to use as a spill register.
        !          7031:        Rework initialization of potential_reload_regs.
        !          7032:        (reload_as_needed): Handle register elimination in a similar manner
        !          7033:        as function reload.
        !          7034:        (gen_input_reload): When generating a reload for a PLUS, first try to
        !          7035:        use a three-operand add insn.  If that fails, emit two two-operand
        !          7036:        insns.
        !          7037: 
        !          7038:        * rtl.h (FUNCTION_FLAGS_FRAME_POINTER_NEEDED): Deleted; all others
        !          7039:        renumbered.
        !          7040: 
        !          7041:        * stmt.c (expand_decl): No longer have to set frame_pointer_needed
        !          7042:        for variable-sized decl.
        !          7043: 
        !          7044:        * stupid.c (stupid_find_reg): Don't try to allocate an eliminable
        !          7045:        register.
        !          7046: 
        !          7047:        * tm-vax.h (INITIAL_FRAME_POINTER_OFFSET): Add definition.
        !          7048: 
        !          7049:        * recog.c (next_insn_tests_no_inequality): If no next insn, return 0.
        !          7050: 
        !          7051:        * print-tree.c (print_node): Set length for TREE_VEC.
        !          7052: 
        !          7053:        * calls.c (store_one_arg): Set arg->value to location where argument
        !          7054:        was placed (either register or stack).
        !          7055: 
        !          7056:        * recog.c: Needs flags.h (for flag_pretend_float):
        !          7057:        * Makefile.in (recog.o): Likewise.
        !          7058: 
        !          7059:        * expr.c (convert_move): Add missing RETURN statements.
        !          7060: 
        !          7061: Sat May 19 14:26:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7062: 
        !          7063:        * expr.c (expand_expr, case EXIT_STMT): Return rather than falling
        !          7064:        out of switch statement (and into `binop').
        !          7065: 
        !          7066:        * cse.c (cse_insn): Allow conditional branches to be turned into
        !          7067:        noops when the condition is known false by not calling validate_change.
        !          7068: 
        !          7069:        * cse.c (fold_rtx): Add LABEL_REF to list of fast RTL codes.
        !          7070: 
        !          7071: Sat May 19 12:41:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7072: 
        !          7073:        * tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align.
        !          7074:        (ASM_OUTPUT_ALIGN_CODE): Likewise.
        !          7075: 
        !          7076:        * gcc.c (default_compilers): For .cc, pass -g* to cc1.
        !          7077: 
        !          7078: Sat May 19 06:51:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7079: 
        !          7080:        * tree.c (push_obstacks, pop_obstacks): Put struct obstack_stack
        !          7081:        in obstack instead of using xmalloc/free.
        !          7082:        (init_tree): Initialize new obstack for {push,pop}_obstacks.
        !          7083: 
        !          7084:        * tree.c (simple_cst_list_equal): No longer static.
        !          7085: 
        !          7086: Fri May 18 19:38:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7087: 
        !          7088:        * expr.h (MUST_PASS_IN_STACK): Refine test for case where padding
        !          7089:        requirement prohibits passing in register.
        !          7090: 
        !          7091: Fri May 18 18:14:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7092: 
        !          7093:        * fixincludes: Fix CAT macro in memvar.h.
        !          7094: 
        !          7095: Fri May 18 16:13:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7096: 
        !          7097:        * expr.c (do_jump): Don't explicitly copy item being tested from
        !          7098:        MEM to REG.  If needed, this will be done later.
        !          7099: 
        !          7100: Thu May 17 14:33:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7101: 
        !          7102:        * Makefile.in (bootstrap): Pass LANGUAGES to inner makes.
        !          7103: 
        !          7104: Thu May 17 13:57:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7105: 
        !          7106:        * fixincludes: Handle _CTRL like CTRL.
        !          7107: 
        !          7108: Wed May 16 21:09:42 1990  Richard Kenner  (kenner at vlsi1.ultra.edu)
        !          7109: 
        !          7110:        * fold-const (fold): Two conversions in a row are needed if from an
        !          7111:        integer type to a pointer type of a different precision.
        !          7112: 
        !          7113: Wed May 16 16:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7114: 
        !          7115:        * expr.c (expand_expr): Make sure a volatile value is referenced
        !          7116:        even if value is ignored.
        !          7117: 
        !          7118:        * c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int.
        !          7119:        (invert_truthvalue): Simplify COND_EXPR.
        !          7120: 
        !          7121: Tue May 15 00:25:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7122: 
        !          7123:        * stor-layout.c (layout_record): Do set TYPE_SIZE if size is var.
        !          7124: 
        !          7125:        * reload.c (push_reload): If insn is an asm, verify that CLASS
        !          7126:        is at least possible for the specified mode.
        !          7127: 
        !          7128:        * c-decl.c (complete_array_type): Compensate for wide string constant.
        !          7129: 
        !          7130:        * final.c (leaf_function_p): Reject everything if profiling.
        !          7131: 
        !          7132:        * function.c (optimize_bit_field): Adjust OFFSET if
        !          7133:        BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
        !          7134: 
        !          7135:        * expmed.c (store_bit_field, extract_bit_field): Rework the code
        !          7136:        to adjust XBITPOS for the size within which to count.
        !          7137:        (extract_bit_field): When converting MEM to REG, don't make SUBREG
        !          7138:        immediately; fall through and let this happen in the code that
        !          7139:        handles original registers of the wrong mode.
        !          7140: 
        !          7141: Mon May 14 16:01:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7142: 
        !          7143:        * cexp.y (yylex): Ignore carriage return.
        !          7144:        * cccp.c (initialize_char_syntax): Likewise.
        !          7145:        (newline_fix, name_newline_fix): Likewise.
        !          7146: 
        !          7147:        * c-common.c: New file.
        !          7148:        (combine_strings): Moved here.  Fix errors for wide string length.
        !          7149:        * c-parse.y, objc-parse.y, cplus-lex.c: Function deleted here.
        !          7150: 
        !          7151: Sun May 13 08:08:41 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7152: 
        !          7153:        * integrate.c (subst_constants): Fix typo in case 'E'.
        !          7154: 
        !          7155: Sat May 12 17:14:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7156: 
        !          7157:        * combine.c (subst): Don't change -(y-x) to x-y for IEEE floats.
        !          7158:        Include real.h.
        !          7159: 
        !          7160:        * cse.c (fold_rtx): Don't simplify float+0, float-0, float*0
        !          7161:        if using IEEE floating point.
        !          7162:        Don't simplify float-self even if not IEEE.
        !          7163:        * fold-const.c (fold): Likewise.
        !          7164: 
        !          7165:        * i386.md (trunc**): Use long move if source is constant.
        !          7166:        * out-i386.c (PRINT_REG): Handle CODE == 'k'.
        !          7167: 
        !          7168:        * fixincludes: Use rm -fr to delete before making link.
        !          7169: 
        !          7170:        * optabs.c (init_optabs): Support MULDI3_LIBCALL, etc.
        !          7171: 
        !          7172: Sat May 12 17:04:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7173: 
        !          7174:        * cse.c (find_best_addr): Don't modify constant address MEMs; they
        !          7175:        are shared.
        !          7176: 
        !          7177: Sat May 12 15:17:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7178: 
        !          7179:        * ns32k.md (signed bitfield extract): Don't output assembler comment.
        !          7180: 
        !          7181: Fri May 11 15:23:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
        !          7182: 
        !          7183:        * Makefile.in: Don't use $(libsubdir) as a target since it involves
        !          7184:        shell `...` constructs.
        !          7185: 
        !          7186:        * genattr.c (fatal, main): Remove relics of old program name.
        !          7187:        * genattrtab.c: Likewise.
        !          7188: 
        !          7189:        * expr.c (expand_expr, case COND_EXPR): Add missing argument to
        !          7190:        operand_equal_p.
        !          7191: 
        !          7192:        * reload.c (form_sum): Handle case where second operand is
        !          7193:        (plus foo (const_int ...)).
        !          7194: 
        !          7195:        * c-typeck.c (c_sizeof{,_nowarn}, c_alignof): Don't blow up for
        !          7196:        ERROR_MARK.
        !          7197:        * cplus-typeck.c (c_sizeof{,_nowarn}, c_alignof): Likewise.
        !          7198: 
        !          7199:        * cplus-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars,
        !          7200:        since c defines sizeof (char) as 1.
        !          7201: 
        !          7202:        * loop.c (mark_loop_jump): RETURN, SIGN_EXTEND, and ZERO_EXTEND can
        !          7203:        also occur in JUMP_INSN's.
        !          7204: 
        !          7205:        * reload.c (find_reloads, find_reloads_address): Correct errors where
        !          7206:        an arg to find_reloads is "VOIDmode" instead of "0" and vice versa.
        !          7207:        (find_reloads_address_1): Likewise.
        !          7208: 
        !          7209:        * global-alloc.c (global_alloc): Avoid divide-by-zero for allocnos
        !          7210:        where all regs have reg_live_length == -2.
        !          7211: 
        !          7212: Fri May 11 14:45:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7213: 
        !          7214:        * tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4.
        !          7215: 
        !          7216: Thu May 10 23:43:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
        !          7217: 
        !          7218:        * out-i860.c (single_insn_src_p, strict_single_insn_src_p):
        !          7219:        Correct conditions for needing multiple instructions.
        !          7220:        (output_delayed_branch): Likewise.
        !          7221: 
        !          7222: See file ChangeLog.1.
        !          7223: 
        !          7224: Local Variables:
        !          7225: mode: indented-text
        !          7226: left-margin: 8
        !          7227: fill-column: 76
        !          7228: version-control: never
        !          7229: End:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.