Net2/usr/src/usr.bin/gcc/cc1/ChangeLog

Wed Jan 16 15:34:38 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* Version 1.39 released.

	* config.gcc (i386-esix): New alternative.
	* tm-i386esix.h: New file.

	* expr.c (expand_call): Don't put libcall notes on const function call
	unless there is a suitable value-copying insn at the end.

	* config.gcc (delta68k): New alternative.
	* tm-delta68k.h, xm-delta68k.h: New files.

Tue Jan 15 01:37:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* loop.c (scan_loop): Condition for movability was wrong.
	A reg that isn't necessarily set may be unsafe
	even if used only inside the loop.
	However, a reg used only in the same basic block after the set is safe.
	So is a reg that isn't a user-level variable.

	* combine.c (try_distrib): Don't push + thru negative-count shift.
	* tm-vax.h (NEGATIVE_SHIFT_COUNT): Define to enable that change.

Mon Jan 14 18:17:58 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* stmt.c (assign_parms) [FIRST_PARM_CALLER_OFFSET]:
	If that's negative, adjust first_parm_offset rather than
	stack_args_size for size of structure value address.
	(Kludge to make sparc work.)

	* fixincludes-V4: Handle #lint.

	* tm-i386sco.h (CPP_PREDEFINES): Get rid of the %-spec.
	(CPP_SPEC): Override this; handle -scointl here.

Sun Jan 13 23:06:25 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* fixincludes (sys/file.h): Fix incorrect conditional in Ultrix.

Sat Jan 12 14:25:02 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* i386.md (movsf, movdf): Change constraints to ensure opt reload.

Fri Jan 11 13:22:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-tower-as.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Use %u.
	(PUT_SDB_START_DIM): New macro.
	(PUT_SDB_DIM): Deleted.

	* tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p.

Thu Jan 10 13:05:46 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target.
	(WORD_SWITCH_TAKES_ARG): Define to recognize -target.
	(LIB_SPEC): Define; handle -a.
	* tm-sun3os4.h: New file.

	* tm-mips-news.h (CPP_SPEC): Update include directory version.
	(MACHINE_TYPE): Change this string.

	* tm-next.h (LIB_SPEC): Use -lsys_s, not -lc.

	* Makefile (gnulib): Depend on config.status.

Mon Jan  7 15:03:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-typeck.c (process_init_constructor): Error if values
	provided for an array of empty elements.
	Rename variable `error' to `error_flag'.

	* out-i386.c (function_epilogue) [STRUCT_RETURN_CALLER_POP]:
	Don't pop struct value arg if -fpcc-struct-return.
	* expr.c (expand_call) [STRUCT_RETURN_CALLER_POP]:
	Change handling of structure_value_addr.

	* cse.c (cse_insn): In special case for (set REG0 REG1),
	change any REG_EQUIV notes to REG_EQUAL.

Sun Jan  6 13:51:59 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it.

	* out-i386.c (fp_top_dead_p1): Follow jump only if optimizing.

Fri Jan  4 23:17:41 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section.

Thu Jan  3 13:31:41 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* loop.c (move_movables): Do reg substitutions on REG_EQUAL, REG_EQUIV.

	* out-i386.c (fp_top_dead_p1): Follow one jump or label.

	* rtl.c (read_rtx): Cast type of NULL vector.

Wed Jan  2 18:59:34 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-i386.c (fp_call_internal): Use fp_top_dead_p1, not top_dead_p.
	* reload1.c (emit_reload_insns): Undo previous change.

Tue Jan  1 12:01:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* integrate.c (expand_inline_function):
	Handle parms passed in reg but stored in memory.

	* ecoff-cmp: Specify `c' in option to tail.

	* reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]:
	Move notes to output reload even if dest is reg.
	Check for notes matching by hard reg, even if different origin.
	Really scan all the output reload insns.

Mon Dec 31 16:04:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* stupid.c (stupid_find_reg): Don't use reg if OVERLAPPING_REGNO_P.

	* i386.md (push for SFmode): Operand of fst was missing.
	* out-i386.c (fp_call_internal): Discard result if unused.

Sat Dec 29 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* Makefile (install): Use basename on eachfile; BSD make adds dirs. 

	* cccp.c (macroexpand): Test traditional when computing expansion size.

Thu Dec 27 23:42:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* reload.c (find_reloads_address_1): For auto-increment, save the reg
	before replacing it with something being reloaded.

Fri Dec 21 18:31:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* Version 1.38.

	* tm-i386vgas.h (STARTFILE_SPEC, LIB_SPEC): Deleted.

Sun Dec 16 18:10:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-i386vgas.h (ASM_OUTPUT_LABELREF): Do prepend `_' again.

	* tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*):
	Use double_is_minus_zero to test for -0.0.
	* out-m68k.c (double_is_minus_zero): New function.

Fri Dec 14 00:57:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*):
	Use `iszero' and `signbit' to check for -0.0.

	* recog.c (offsettable_address_p): Use OFFSETTABLE_ADDRESS_P.
	* tm-i860.h (OFFSETTABLE_ADDRESS_P): Define this.

Wed Dec 12 16:11:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* gvarargs.h: Avoid duplicate inclusion using _VARARGS_H.

	* c-decl.c (grokdeclarator): Always promote short even if -mshort.

Tue Dec 11 23:12:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (convert_move): Do compare before slt.
	Handle destination not valid in slt.

Mon Dec 10 00:27:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-sparc.c (output_fp_move_double): Bugs in last change:
	Use adj_offsettable_operand when possible.
	Choose a reg other than fp to increment.

Sun Dec  9 23:21:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (collect_expansion): Don't check for /* */ concat here.
	(macroexpand): Always use raw arg if traditional.

Wed Dec  5 13:52:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* optabs.c (expand_binop): Handle insn_before == 0.

	* Makefile (includes): Export LIB.

Tue Dec  4 21:27:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* loop.c (consec_sets_giv): Give proper type to force, force2.

Mon Dec  3 15:57:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (special_symbol): Use time_t as type of t.

Sun Dec  2 16:43:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* config.gcc (tower): New alternative.
	* tm-tower.h, tm-tower-as.h, xm-tower.h: New files.

	* stddef.h (ptrdiff_t): Prevent redefinition, as with size_t.
	(size_t): Define all the macros used to prevent redefinition.

Fri Nov 30 14:25:49 1990  Michael Meissner  (meissner at osf.org)

	* out-mips.c (init_cumulative_args, function_arg_advance,
	function_arg, function_arg_partial_nregs): Type CUMULATIVE_ARGS is
	now a pointer to a structure instead of a structure.  New field
	arg_words tracks number of words consumed so far and arg_number just
	tracks physical numbers of arguments.  Make four single precision
	floating point arguments passed via prototypes use $f12, $f14, $6,
	and $7, just like mips cc.

	* tm-mips.h (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE,
	FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Type CUMULATIVE_ARGS is
	now a pointer to a structure instead of a structure, and storage is
	allocated via alloca.

Thu Nov 29 22:03:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.

Tue Nov 27 12:03:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set.

Tue Nov 27 12:28:45 1990  Michael Meissner  (meissner at osf.org)

	* out-mips.c (function_arg, function_arg_advance): Pass single
	precision floating point numbers to prototyped functions by assuming
	only one word is passed rather than two unless the argument is
	passed in a floating point register.  This behavior matches the MIPS
	C compiler.

	* tm-mips.h (CPP_SPEC): Add -D_MIPSEB -D_SYSTYPE_SYSV -D_LANGUAGE_C
	to SGI's CPP_SPEC.
	(MIPS_DEBUGGING_INFO): New macro.
	(PUT_SDB_*): Write debug information to the temporary file that
	buffers the text section, instead of using the current output file.

	* tm-iris.h (CPP_PREDEFINES): Move -D_LANGUAGE_C from CPP_PREDEFINES
	to CPP_SPEC since it's in the compiler name space, -ansi should not
	disable it.

Mon Nov 26 18:37:39 1990  Michael Meissner  (meissner at osf.org)

	* mips.md (stack compressor peephole): Remove check against
	stack_args_preallocated, since nobody sets it.
	(anonymous add/subtract patterns): Explicitly use the assembler
	temporary register if adding/subtracting a constant that won't fit
	in 16 bits -- Silicon Graphics asm complains.
	(fix_truncdfsi2, fix_truncsfsi2) Rewrite so that optimization of
	repeated conversions of the same number do not generate an insn not
	found error message (the generated insn was optimized to a gp->gp
	register move inside of a parallel with a clobber of a hard fp
	register).  The new insns describe the machine more faithfully, and
	allow things like clobbering the fp register containing the value,
	if it is the last use rather than using a specific hard register.
	(fixuns_truncsfsi2, fixuns_truncdfsi2): New patterns to
	automatically convert {single,double} precision to unsigned.
	(anonymous move df/sf patterns): Put the operands to mfc1 in the
	order the assembler likes them (always put gp reg first, even if
	moving from gp register to fp register).
	(wild_insn): Remove bogus insn which is commented out.
	(jump): Remove TARGET_PIC code for now.

	* out-mips.c (toplevel, function_epilogue, mips_asm_file_end,
	mips_output_external): If optimizing for the global pointer, emit
	all code after processing the entire program, rather than emitting
	the code at the end of the function.  Also, properly sized .extern's
	are emitted for variables that are not defined in the current
	module.  This is because the MIPS assembler uses single pass
	semantics, and will emit a 2 instruction sequence for externals it
	doesn't know anything about, and GCC emits data definitions at the
	end of the program.  You can't just emit a properly sized .extern
	either, because the assembler will complain if it sees an .extern
	followed by a definition.  The ADDRESSABLE bit in the identifier
	node for the external name is used to indicate whether a definition
	for the name exists or not.  This replaces code which told the
	assembler to preprocess the source, and include the same source
	twice.
	(sym_lineno): Add a new variable to keep trace of labels emitted
	after each .loc for Silicon Graphics.
	(function_prologue, function_epilogue, toplevel): Explicitly use
	temporary registers for stack frames > 32K, since the Silicon
	Graphics system doesn't automatically use $at if the value overflows,
	also save an instruction or two for large stack frames.
	(init_cumulative_args): Fix to work with the method types G++
	produces as well as normal function types.
	(compare_collect): In debug code, print the mode symbolically.
	(trace): Take two additional arguments which are passed to fprintf.
	(override_options): Remove unsupported -mpic code.

	* tm-decstatn.h (toplevel): Add a GNU copyright.

	* tm-iris.h (toplevel): Add a GNU copyright.
	(CPP_SPEC): If -ansi, define __EXTENSIONS__.
	(SGI_TARGET): Define this for other mips files.
	(LABEL_AFTER_LOC): New macro to put a label after .loc.
	(SET_FILE_NUMBER): New macro to force .file/.loc file # to be 1.
	(ADJUST_STACK_SIZE): Don't deal with variable arguments.

	* tm-mips.h (*_SPEC): Add #ifdef's so other files can define their
	own, without #undef.
	(LINK_SPEC, ASM_SPEC): Pass -EB/-EL to assembler, linker so cross
	compilers can be made from little endian mips to big endian mips and
	vica versa.  Generate an error message if the wrong flag is used.
	Do not pass -EB/-EL to Silicon Graphics assembler/linker.
	(CPP_SPEC, MACHINE_NAME): Add Silicon Graphics defaults.
	(MIPS_TEMP?_REGNUM): New macros for temporary registers used in the
	prologue and epilogue if the stack frame is > 32K.
	(ASM_OUTPUT_LABEL): If optimizing the global pointer, set the
	addressable bit in the indentifier node, so that mips_asm_file_end
	and mips_output_external can figure out if a particular identifier
	really is external to the compiliation unit.
	(ASM_OUTPUT_COMMON): Same change as ASM_OUTPUT_LABEL.
	(ASM_OUTPUT_LOCAL): Same change as ASM_OUTPUT_LABEL.
	(MACHINE_TYPE): Key off of OSF_OS and SGI_TARGET macros.
	(TARGET_DEFAULT): For OSF/1 make -mgas and -G 0 default.
	(STACK_POINTER_OFFSET): Define as 0.
	(external variables): Declare flag_omit_frame_pointer,
	sdb_label_count, mips_section_threshold, and sym_lineno.
	(STACK_ARGS_ADJUST): Protect with an #ifndef.
	(FUNCTION_PROFILER): Talk to the MIPS profiling routines the same
	way the MIPS compiler does.
	(INDIRECTABLE_ADDRESS_P): Allow disp+reg in addition to reg+disp.
	(ASM_FILE_START): If optimizing for the global pointer, create a
	temporay stream to hold text until program ends.  Put gcc_compiled.
	in the data section.
	(ASM_DECLARE_FUNCTION_NAME): Switch file streams used to the text
	stream if optimizing for the global pointer.
	(ASM_FILE_END): New macro to invoke mips_asm_file_end function.
	(ASM_OUTPUT_SOURCE_LINE): Invoke macro LABEL_AFTER_LOC after .loc,
	so that Silicon Graphics can put out a label after each .loc.
	(ASM_OUTPUT_SOURCE_FILENAME): Invoke macro SET_FILE_NUMBER to set
	the file number, so Silicon Graphics can hardwire this to 1.
	(LABEL_AFTER_LOC, SET_FILE_NUMBER): Provide defaults if not Silicon
	Graphics.
	(ASM_OUTPUT_ASCII): Assign parameter to local variable, and remove
	special \a, \v support.
	(ASM_OUTPUT_IDENT): Dump #ident directives into .data.

Mon Nov 26 16:50:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (main): Handle -w.
	(warning): Do nothing if -w.
	* gcc.c (compilers): Pass -w to cpp.

Sun Nov 25 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (emit_push_insn): Don't pad at all if space already allocated
	and padding is upward.

	* gcc.c (do_spec_1): Handle %W{...}.
	(compilers): Use %W{...} when passing -o option.

Sat Nov 24 16:50:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* va-mips.h (va_list): Don't typedef if _VA_LIST_ is defined.

Wed Nov 21 15:57:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (expand_expr, expand_assignment):
	Check for TREE_THIS_VOLATILE in ARRAY_REF.
	expand_assignment failed to handle volstruct at all.

Tue Nov 20 17:47:22 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-sparc.c (output_fp_move_double): Handle reg+reg address
	when moving each word separately.

	* ns32k.md (addsi3): Don't use `addr' for very large displacements.

	* recog.c (address_operand): Don't allow volatile mem as indirect.

Mon Nov 19 14:55:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-sparc.c (output_fp_move_double): Don't assume arrays are aligned.

Sun Nov 18 19:21:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (emit_push_insn): set extra to 0 once the padding is done,
	to avoid padding twice.

Thu Nov 15 21:56:07 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* math-68881.h (HUGE_VAL): Add extra braces on Sun.

Wed Nov 14 14:30:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-decl.c (grokdeclarator): Don't ignore prototype if -traditional.

Tue Nov 13 18:16:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-i860.c (output_block_move): Move .Lm%3 down one insn.

Wed Nov  7 00:01:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-parse.y (component_decl_list): Allow missing semi at end.

Tue Nov  6 20:49:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (expand_builtin): For ffs, use mode of operand.

	* xm-iris.h (alloca): Don't define it.
	* tm-iris.h (CPP_SPEC): Define variant symbols starting with _.
	Define __EXTENSIONS__.

	* config.gcc (editing .gdbinit): Search current dir, not just srcdir.

Sun Nov  4 12:55:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* i386.md (extend*): Take out last change.
	Unix assembler rejects movsx...

	* expr.c (expand_expr): Special case for ignored volatile
	failed to return.

Fri Nov  2 15:30:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* va-i860.h (_VA_LIST): New macro avoids duplicate typedefs.

	* gnulib2.c (__builtin_saveregs): Add version for i860.

	* out-i860.c (output_block_move): Rearrange the copy loop.
	Now uses two labels and a more complicated lead-in.

Thu Nov  1 18:15:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4.

	* math-68881.h (HUGE_VAL): Alternate definition for Suns.

	* tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix.
	(CPP_SPEC): New macro.
	(LIB_SPEC): Handle -shlib.

Wed Oct 31 22:12:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* config.gcc (ultrix):  New alternative.

	* i386.md (extend*): Change opcode to movsx.  Was movs.

Tue Oct 30 17:03:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-aix386.h (ASM_FILE_START): Don't do .noopt or .optim.

	* cccp.c (make_definition): Convert newline to newline-newline.

Mon Oct 29 11:43:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* fixincludes: Fix missing semi in rusers.h.

Sun Oct 28 17:23:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (macarg1): Don't skip the char after */.

	* Makefile: Put an `else' in every shell `if'.

	* m68k.md (zero-extend QI): Use gen_rtx, not change_address.

	* Makefile (USER_H): List va-*.h explicitly.
	(toplev.o): Depend on RTL_H.
	(expr.o): Depend on typeclass.h.
	(stamp-*): Depend on move-if-change.
	(install): Depend on various header files and gcc.1.
	(gcc.o): Depend on gvarargs.h and obstack.h.

	* i860.md (movsf): Handle moving CONST_DOUBLE to cpu reg.

Fri Oct 26 11:16:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* Makefile (libg): Add else to the if.

Thu Oct 25 21:17:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* integrate.c (access_parm_map): Handle refs to all words of DF reg.

Wed Oct 24 13:50:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-typeck.c (build_array_ref): Use main variant for value type.

	* expr.c (expand_expr): For ARRAY_REF, preserve const and volatile.

	* cccp.c (macarg1): Skip the */ that ends a comment.

	* cccp.c (rescan): Use newline_fix testing for comments before #.
	(handle_directive): Likewise, in comments before directive name.
	(rescan): Process macro when terminated by comment.
	Ignore backslash-newline in C++ comment.

Tue Oct 23 20:35:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (collect_expansion): Remove newline from error message.
	Error for ## at beginning or end of definition.

	* m68k.md (zero-extend QI): When pushing, store value at 1(sp).

Mon Oct 22 13:07:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (rescan): In the loop that handles numbers, discard \newline.

	* cccp.c (S_ISREG): Fix typo: do use the argument.

	* xm-sparc.h (alloca.h): Don't include if alloca already defined.

Sun Oct 21 16:28:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* reload.c (find_equiv_regs): Reject reg that overlaps goal.

	* expmed.c (extract_bit_field): For big fields, make sure
	value really goes in the target.

Fri Oct 19 13:21:25 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp.

	* expr.c (emit_push_insn): Allow const0_rtx for multi-word constant.

Thu Oct 18 17:38:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* reload1.c (choose_reload_regs): Cast reg class used as index.

Wed Oct 17 00:21:25 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* stmt.c (push_structure_value, pop_structure_value): New fns.
	* expr.c (expand_call): Use them if structure value needed.

	* gcc.c (do_spec_1): Null-terminate error message.

	* sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL.
	This happens for vars from the parms of inline functions.
	* dbxout.c (dbxout_symbol): Likewise.

Tue Oct 16 13:22:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expmed.c (extract_bit_field, store_bit_field):
	Handle fields wider than a word.
	Restrict special case for word-sized field to aligned words.

	* stddef.h (size_t): Also inhibit if _SIZE_T_.

	* cccp.c (macarg1): If traditional, let backslash quote always.

	* fixincludes (CTRL): Don't put quotes around a quote.

Sun Oct 14 21:28:32 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* flow.c (life_analysis): No hard regs for any pseudos live at setjmp.

	* c-decl.c (duplicate_decls): Don't suppress warning for fn defn
	after implicit declaration, if fn has already been defined.

Thu Oct 11 13:15:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (saveregs_value): New variable.
	(init_expr): Init the variable.
	(expand_builtin): Don't call __builtin_saveregs twice in one function.

	* va-*.h: Rename all structure fields to start with __.
	* va-pyr.h: Rename variables also.
	(va_start): Delete the unmatched {.
	(va_end): Now a nop.

Wed Oct 10 22:01:59 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* va-sparc.h (__va_ctl): Rename fields to start with __.

Tue Oct  9 14:47:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* flow.c (propagate_block): Include NOTE at end of block in scan.

	* fixincludes: Fix missing semicolon in rstat.h.

Mon Oct  8 13:09:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* loop.c (eliminate_biv): Handle mult_val < 0 by reversing compare.

	* cccp.c (main): Handle .S when removing suffix for deps output.

Sun Oct  7 23:33:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-i386v.h (STARTFILE_SPEC): Handle -p here.
	(LIB_SPEC): Not here.

Sun Sep 30 21:35:52 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* print-tree.c (print_node_brief): Declare i for printing REAL_CST.

Sat Sep 29 18:40:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* fixincludes: For link pointing outside /usr/include,
	use $x rather than $dest.

Wed Sep 26 12:44:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-mips-news.h: New file.

    	* out-i860.c (output_size_for_block_move): Don't decrement.
	(output_block_move): Decrement initial storing address instead.

	* c-parse.y (yylex): Always try unsigned int if `u' is written.

	* tm-seq386.h (LINK_SPEC): Define it.

	* c-typeck.c (build_unary_op): Don't let &* make an lvalue.

Sun Sep 23 14:59:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (S_ISREG): Define it unless overridden.
	(main, finclude): Use that.

	* reload1.c (reload): If insn after a function call uses the
	function value, and that reg is spilled, and the insn might
	use it for reloading, add an extra need.
	(reload_as_need): Detect such insns for new arg to choose_reload_regs.
	(choose_reload_regs): In that case, don't choose function value reg.

	* tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH.

Sat Sep 22 14:01:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tree.c (build_index_type): Don't hash variable-bound type.

	* tm-aix386.h (LIB_SPEC): Different library name for -p.  Always -lc.
	(LINK_SPEC): Don't pass -lg or -g.
	(CPP_PREDEFINES): Define _I386 and _AIX; don't define unix.
	(SDB_DEBUGGING_INFO): Define it.
	(DBX_DEBUGGING_INFO): Undefine it.
	(ASM_FILE_START): Output .noopt if not optimizing.
	(PCC_BITFIELD_TYPE_MATTERS): Define it.
	(FUNCTION_PROFILER): Add definition.

Thu Sep 20 13:16:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-hp9k320.h (PROFILE_BEFORE_PROLOGUE): Define it.
	(FUNCTION_PROFILER): Don't redefine if not HPUX_ASM.

Tue Sep 18 22:46:02 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sdbout.c (sdbout_one_type): Don't output undefined structs, etc.

Mon Sep 17 13:35:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* mips.md (movdf): Move words in opposite order if overlap.

Sun Sep 16 16:27:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb
	only if top_level.

	* expr.c (expand_builtin): Error for __builtin_nextarg
	if function definition doesn't have `...'.

	* c-typeck.c (build_conditional_expr): Don't skip arg promotion.

Fri Sep 14 17:26:59 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sdbout.c (plain_type_1): Save up array dims on the way out
	in the reverse order.
	(plain_type): Print the innermost ones, reversing them.

Thu Sep 13 16:00:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* gstdarg.h: New name for stdarg.h.
	* Makefile (install): Rename gstdarg.h while installing it.

	* fixincludes: Discard `.' from value of `files'.

	* sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM.
	(plain_type): Output accumulated array dims and size.
	(plain_type_1): Eliminate arg NOSIZE.  Save up dims and size.
	Call self rather than plain_type for pointers and functions.
	(sdbout_array_type, sdbout_array_depth): Functions deleted.

Wed Sep 12 18:47:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expmed.c (expand_divmod): Use divmod insn for divide if appro.

Tue Sep 11 13:24:58 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* gnulib.c (_bb_init_func): Library member now named _bb.

Mon Sep 10 13:07:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sdbout.c (plain_type_1): New argument NOSIZE.  Inhibits size output.
	(sdbout_array_type): Call plain_type_1 directly; set NOSIZE.

	* sdbout.c (sdbout_array_type): New argument DEPTH.
	Don't output more than SDB_MAX_DIM dimensions.
	(sdbout_array_depth): New function.
	(plain_type_1): Start DEPTH by calling sdbout_array_depth.

Sun Sep  9 18:05:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-mips.h (CPP_SPEC): Error for -EL and -EB.

	* sdbout.c (plain_type_1): Test KNOWN_TYPE_TAG with TREE_ASM_WRITTEN.
	(sdbout_symbol): Call sdbout_one_type before the switch.
	(sdbout_field_types): Look at targets of pointers.
	(sdbout_one_type): Call sdbout_field_types.

	* stor-layout.c (layout_record): Update size_unit adding var to var.

	* tm-i386v4.h: New file.

Fri Sep  7 13:10:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (STDC_VALUE): New macro, defaulting to 1.
	(intialize_builtins): Use that.

	* print-tree.c (print_node): Correct first_rtl for SAVE_EXPR.

	* m68k.md (movqi): `st' does not set cc's.

Wed Sep  5 16:18:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* Makefile (includes): Use proper directory.

Tue Sep  4 13:01:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-decl.c (store_parm_decls): Let extra_warnings control
	warnings about parms not declared.

	* local-alloc.c (block_alloc): Don't try to lower qty_birth
	if reg_qty is negative.

	* flow.c (life_analysis): Move code to detect stack-adjust insns.
	It was unreachable.

	* reload1.c (reload): Don't complete group with explicitly used reg.

Mon Sep  3 14:37:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* Makefile (RANLIB): Don't specify the directory.

	* local-alloc.c (reg_classes_overlap_p): Cast enums to ints.

Fri Aug 31 17:09:38 1990  Michael Meissner  (meissner at osf.org)

	* mips.md (anonymous add insn before addsi3): Allow offsets from the
	frame pointer to be >16 bits, just like the stack pointer.  This is
	to prevent insn's not found generated when optimizing programs that
	have stack frames more than 32K, and the optimizer wants to load the
	address of an array into a register, it does so by generating a PLUS
	insn with the appropriate offset.  This PLUS insn is never checked
	to see if the machine can handle the offset.
	(anonymous subtract insn before subsi3): same change as above.
	(addsi3): Don't accept large constants with a !n constraint.  Just
	reject any large constants, the anonymous add pattern before addsi
	will catch references to the stack and frame pointers.
	(subsi3): Same change as addsi3.

Sat Sep  1 16:14:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* expr.c (convert_move): Don't forget to set `target'.

Fri Aug 31 14:37:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block.

Wed Aug 29 17:01:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* local-alloc.c (combine_regs): Don't combine regs if classes
	fail to overlap usefully, if either reg says preferred or nothing.
	(reg_classes_overlap_p): New function.

Tue Aug 28 21:28:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sdbout.c (plain_type_1): Output .dim X,Y...; for multi-dim array.
	(sdbout_array_dim): New recursive subroutine.
	(PUT_SDB_DIM): Macro eliminated.
	(PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): New macros.
	* tm-3b1.h: Override PUT_SDB_START_DIM.

Sun Aug 26 21:28:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cccp.c (make_definition): Eliminate any backslash-newline.

Sat Aug 25 17:20:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros.
	(BSS_SECTION_ASM_OP): New macro.
	(ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss.

Fri Aug 24 17:16:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* cse.c (rtx_cost): Cost of MEM depends on number of words.

	* i860.md (movsf, movdf): Allow moving G to m in constraints.
	* tm-i860.h (CONST_COSTS): Make SFmode constant cheaper.

Thu Aug 23 14:19:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-typeck.c (digest_initializer): No pedantic warning for string
	and array of unsigned char.

	* tree.c (get_identifier): Do id_clash_len stuff if length equals that.

Wed Aug 22 15:06:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* loop.c (scan_loop): Don't use REG_EQUAL notes as invariants
	unless they come with REG_RETVAL notes.

Tue Aug 21 20:03:51 1990  Michael Meissner  (meissner at osf.org)

	* Makefile (install): Add code to build libg.a if it doesn't exist
	when installing GCC.

	* out-mips.c (toplevel): add external declaration for asm_out_file,
	and 2 new FILE *'s (asm_out_data_file, asm_out_text_file) so we can
	switch between two files when optimizing for the global pointer.
	Also add a structure type to hold the linked list of externs that
	GCC wishes to emit.

	Everything between the function prologue and epilogue are written to
	a temporary file, which is written to the normal output file after
	the entire program is processed.  This is needed because the MIPS
	assembler assumes that all externals should be referenced with a 2
	instruction sequence instead of the faster 1 instruction sequence
	off of the GP, unless a proper .extern proceeds any use.  We can't
	emit the .extern because the assembler will complain if later there
	is a definition for the variable, such as GCC puts out at the end of
	the program.

	(compare_collect): print mode symbolically in debug code.

	(mips_output_external): Remove code which used the preprocessor to
	handle the global pointer, and remember all externs in a linked list
	for use at the end of the program.

	(mips_asm_file_end): If optimizing the global pointer, emit all
	externals which don't have definitions as the appropriate sized
	.extern, and then emit the code for functions that was written to a
	temporary file, so that the code comes after the appropriate
	definition or declaration.

	(function_epilogue): If optimizing for the global pointer, switch
	the current output file to the data file after all of the epilogue
	is written out.

	* tm-mips.h (ASM_SPEC): Duplicate ASM_SPEC into 2 #ifdef sections (one
	for the little endian DECstation, and the other for everybody else
	who uses the MIPS in a big endian mode), and pass the appropriate
	-EL and -EB switches to the assembler.  This allows building a cross
	compiler for a different endian MIPS.

	(LINK_SPEC): Pass -EL and -EB to linker, just like ASM_SPEC.

	(MACHINE_TYPE): For DECstation, specify "Ultrix Dec Mips" instead of
	just "Dec Mips".

	(FUNCTION_PROFILER): Call _mcount in the appropriate MIPS fashion.

	(ASM_FILE_START): If optimizing for the global pointer, open a
	temporary file to write the code to (see out-mips.c above).

	(ASM_DECLARE_FUNCTION_NAME): If optimizing for the global pointer,
	switch the current output file to asm_out_text_file.

	(ASM_OUTPUT_COMMON): Remove the old code which used the preprocessor
	to optimize for the global pointer.

Tue Aug 21 17:44:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* make-cc1.com: Compile and link version.c.

	* expr.c (convert_move): Handle expand_unop retval not same as target.

	* reload.c (find_reloads): For register letters, don't win if BLK.

	* flow.c (mark_set_1, mark_used_regs): Update reg_first_use.
	(allocate_for_life_analysis): Allocate and clear it.
	* local-alloc.c (block_alloc): Calculate INSN_MAP.
	Get first use of each reg from reg_first_use.

	* tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section.
	(ASM_OUTPUT_EXTERNAL): Use that section.
	(SELECT_SECTION): Go to that section when appropriate.

Mon Aug 20 13:00:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* gcc.c (process_command): Split -oFOO into two arguments.

	* out-mips.c, tm-mips.h: Changes by Meissner.

	* stmt.c (expand_asm_operands): Handle COMPONENT_REF and
	ARRAY_REF directly as output operands.  Avoids crash if BLKmode.

	* tm-i386vgas.h: New file, copied from tm-i386gas.h.
	(ASM_OUTPUT_LABELREF): Eliminate leading underscores.
	(STARTFILE_SPEC, LIB_SPEC): Define as in tm-i386v.h.
	(PCC_BITFIELD_TYPE_MATTERS): Likewise.
	* config.gcc (i386-sysv-gas): Use the new file.

	* tm-i860.h (PRINT_OPERAND): Convert double to float
	for SFmode operand.
	(PRINT_OPERAND_EXTRACT_FLOAT): New macro.

Sun Aug 19 17:23:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* c-parse.y (lineno): Delete definition--it's in toplev.

	* output.h: Make all variables extern.

	* tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__.

	* fixincludes: Handle uses of _IO* followed by spaces.
	Change redirections for cd when testing that directory exists.

Thu Aug 16 22:44:35 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-sparc.c (output_scc_insn): Clear CC_IN_FCCR after
	operation since setting a register to the result of a
	floating-point comparision affects the INTEGER condition code
	register.

	* stmt.c: fixup_gotos must ignore blocks started after the goto.
	(block_start_count): New variable, and slot in some structures.
	(expand_function_start): Initialize it.
	(expand_start_bindings): Increment it and store in struct nesting.
	(expand_goto): Store it in struct goto_fixup.
	(fixup_gotos): Compare fixup's count with block's count.

Wed Aug 15 16:46:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* out-i860.c (output_size_for_block_move): Do subtract ALIGN.

Mon Aug 13 17:45:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment.

	* config.gcc (sun3-mach): New alternative.
	* tm-sun3mach.h: New file.

	* m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE.

Sun Aug 12 14:25:23 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tree.h (enum built_in_function): Delete comma after last name.
	* c-parse.h (enum rid): Likewise.
	* expr.h (enum optab_methods): Likewise.

	* config.gcc (genix): Set target_machine.
	* tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition.

Thu Aug  9 15:19:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI.
	(CPP_PREDEFINES): Don't define it here.
	Do define alternatives with __ prepended.

	* tm-mips.h (CPP_SPEC): Don't do -I if -nostdinc.

Wed Aug  8 13:35:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (do_define, do_undef): Warn if macro name is `defined'.

	* tm-mips.h (ASM_INT_OP): Add missing space.

	* tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after
	gcc_compiled.

Tue Aug  7 12:19:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-mips.c (need_ent_after_loc): Variable deleted.
	(function_prologue): Output initial .ent and initial label.
	* tm-mips.h: Add extern declarations.
	(ASM_SPEC): No -nocpp if optimizing.
	(STACK_ARGS_ADJUST): Round size up to 16.  Nothing else.
	(PRINT_OPERAND_ADDRESS): Eliminate irrelevant things
	such as scaled indexing.
	(ASM_OUTPUT_SOURCE_FILENAME): Simplify code.
	(ASM_OUTPUT_SOURCE_LINE): Flush code to handle need_ent_after_loc.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	(*_SECTION_ASM_OP): Delete the \n.

	* pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'.

Mon Aug  6 12:46:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern.
	(start_decl): Don't warn at all for initialized extern.

	* final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE.
	(profile_function): New subroutine.

	* tm-i386sco.h: New file.
	* config.gcc (i386-sco): New alternative.

Sun Aug  5 12:36:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_record, layout_union): Test value of 
	PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined.
	* tm-*.h: Define with value 1.
	* tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment.

	* proto.h: New file.
	* Makefile.in (USER_H): Add that file.

	* loop.c (other_reg_use_p): Change && to || in test at beginning.

Fri Aug  3 00:18:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (ENDFILE_SPEC): New macro.
	(do_spec_1): Handle %E.
	(link_spec): Use %E.

	* xm-i386.h (alloca): Define without arg.

	* Makefile (RANLIB): New var, used in various places.

	* gnulib2.c (__bb_init_func): Add dummy function to prevent warning.

	* Makefile (install): Look for ranlib in both places.
	(stage1, ...): Likewise.  And run ranlib even after ln.

Tue Jul 31 23:59:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label.

Mon Jul 30 13:52:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gnulib2.c (__floatdidf): Fix typo.

Sun Jul 29 16:05:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY.

	* xm-vms.h (alloca): Use built-in alloca.

Fri Jul 27 15:07:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0)
	only if little-endian.

Thu Jul 26 17:22:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Delete pic stuff (was for v2).

	* fold-const.c (rshift_double): Reset carry after each shift of
	one bit.

Wed Jul 25 16:21:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.

Tue Jul 24 15:35:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (build_binary_op_nodefault): Allow compare of any
	pointer with const void *, etc.

	* reload1.c (reload): Don't use fixed reg or frame pointer in group.

	* c-decl.c (grokdeclarator): Error for initialized parm.

Mon Jul 23 14:33:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (install): chmod only the header files.

Sat Jul 21 13:58:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (O_RDONLY): Define it if not defined.

	* c-decl.c (finish_decl): No error for nonstatic incomplete array.

Sat Jul 14 14:59:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (compilers): Pass -P to cpp.

	* tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Handle TARGET_GAS, TARGET_PIC.

Thu Jul 12 12:28:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED.

	* stmt.c (group_case_nodes): Don't group across an overflow.

	* combine.c (subst, case LSHIFT): Use gen_lowpart_for_combine.

Wed Jul 11 15:17:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst, case LSHIFT):
	Fix condition for (lshift ... (sign_extend ...)).

Tue Jul 10 17:02:54 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (pushdecl): No shadow warning if TREE_INLINE is set.
	* integrate.c (copy_parm_decls): Set TREE_INLINE in the copies.
	(copy_decl_tree): Likewise.

	* c-parse.y (yylex): Terminate token_buf after integer.

Mon Jul  9 16:56:55 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): Don't check args[i].partial when bumping
	negative args_size up to 0.

	* sparc.md (call recognizers): Don't allow address arithmetic.

Sun Jul  8 14:22:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (build_c_cast): Reinsert missing default_conversion call.

	* gnulib.c (__bb_init_func): Ensure this defines >=1 symbol.

Fri Jul  6 12:28:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (build_indirect_ref):
	No error if result is incomplete array.

	* m68k.md (casesi2 recognizer): Handle new ASM_RETURN_CASE_JUMP macro.

	* expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE.
	Don't extract a bigger unit from memory than this.
	* expr.c: Callers changed.
	(store_field): New arg TOTAL_SIZE; callers changed.

	* xm-ns32k.h: Use built in alloca.
	* ns32k.md (movsf): Output float constants only if GAS_SYNTAX.
	(call, call_value): Support JSR_ALWAYS.
	Change handling of bsr for GAS_SYNTAX.

Thu Jul  5 15:05:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* mips.md (divdf3): Fix spacing in output.
	(movdf): Fix bad output storing CPU regs into memory.
	* out-mips.c (function_prologue): Bug testing fmask.
	(function_epilogue): Bug in spacing in output.

	* c-typeck.c (build_conditional_expr): Handle ((void *) 0).
	Allow 0 versus function pointer.

Tue Jul  3 21:43:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (finish_struct): Lay out any array typedefs now completed.
	(layout_array_type): New function.
	(grokdeclarator): Don't warn for incomplete array in typedef.

	* tm-*.h (ASM_OUTPUT_COMMON): Use %u, not %d.
	(ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.

Mon Jul  2 12:07:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (tstsf): Clobber reg 0 in SImode.

Sun Jul  1 14:28:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stddef.h: Check __SIZE_T also.

	* toplev.c: Include types.h first.

	* i386.md (trunc*2): Don't allow moving symbolic constant to memory.
	Use wider move only for symbolic constant.

	* tm-convex.h (LINK_SPEC): Posix link flags.
	* tm-convex.h (STARTFILE_SPEC): Posix start files.
	* tm-convex[12].h (CPP_SPEC): Posix defines.
	* tm-convex[12].h (LIB_SPEC): Posix libraries.
	* tm-conv[12]os7.h: New files.
	* config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there.

	* xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix.
	* xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up.

	* tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND):
	  use %e instead of %#g, which is broken or non-posix.

        * tm-convex.h (current_section_is_text): make extern.
	* out-convex.c (current_section_is_text): define here.
	* tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options):
	  useless; remove.
	* tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from
	  system includes.

Fri Jun 29 12:42:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-vax.h (LEGITIMATE_CONSTANT_P): Fix typo.

	* out-mips.c (function_arg_partial_nregs): Round size up to words.

Thu Jun 28 12:50:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (cse_insn): Replace src only with general_operand
	unless moving to a register.

	* expr.c (expand_expr): Use assign_stack_local for constructors.

	* Makefile (STAGESTUFF): Change names of stamp files.

	* pyr.md (tstqi): Change comma to semicolon.

	* out-mips.c (init_cumulative_args): Fix name of debug_tree.

	* vax.md (movsi special case): Fix assembler syntax.
	* tm-vax.h (LEGITIMATE_CONSTANT_P): Add missing backslashes.
	* tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1.

Wed Jun 27 14:04:51 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (emit_move_insn): Force constants to mem only if predicate
	fails.
	* out-vax.c (supergeneral_operand): New function.
	* vax.md (movsi): Use that predicate.

	* out-mips.c (function_prologue): Don't use sp_str in .frame.
	Use sw rather than sd in cases 5 and 7.

Tue Jun 26 14:21:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* rtl.h (EXTERNAL_SYMBOL_P): New macro.
	* varasm.c (make_decl_rtl): Set it if variable is external.
	* tm-vms.h (NO_EXTERNAL_INDIRECT_ADDRESS): Define this.
	* tm-vax.h (INDIRECTABLE_CONSTANT_ADDRESS_P): New macro.
	Value depends on NO_EXTERNAL_INDIRECT_ADDRESS.
	(INDIRECTABLE_ADDRESS_P, LEGITIMATE_CONSTANT_P): Value depends...
	(NONINDIRECT_ADDRESS_P): New macro.
	(GO_IF_NONINDEXED_ADDRESS): Use NONINDIRECT_ADDRESS_P sometimes.
	* vax.md (movsi special case): New pattern for loading
	illegitimate constants.
	* out-vax.c (print_operand_address): Handle reg+(reg+const).

	* tm-sparc.h (LINK_SPEC): Delete spurious `-'.
	* tm-sun386i.h (LINK_SPEC): Define it, handling -Bstatic and aliases.
	* tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Delete spurious `\n'.
	(ASM_OUTPUT_DOUBLE_OPERAND): Likewise.

Mon Jun 25 18:45:51 1990  Michael Meissner  (meissner at osf.org)

	* sdbout.c: If not on a COFF system, define COFF symbols by hand.

	* out-mips.c (legitimize_constant_expr): Delete unused function.
	(output_load_immediate, addr_compensate): Delete unused functions.
	(compare_restore): Redo code based on eliminating peepholes.
	(function_prologue): New function, emit correct entry sequence.
	(function_epilogue): New function, emit correct exit sequence.
	Also output .ent, .frame, .mask, .fmask, and .end, for back tracing.
	(mips_fix_frame_pointer): New function to eliminate frame.
	(function_arg_partial_nregs, function_arg, function_arg_advance):
	(init_cumulative_args): New funtions.

	* stdarg.h (va_arg): Alternate definition for mips.
	* va-mips.h: Total rewrite.
	These changes in tm-mips.h have not yet been done.
	* tm-mips.h (ASM_OUTPUT_DOUBLE): Put floating point out in hex.
	(ASM_OUTPUT_FLOAT): Put floating point out in hex.
	(PRINT_OPERAND): Add 'D', 'L', and 'M' codes.
	(STRUCTURE_SIZE_BOUNDARY): Set this to 8 for MIPS cc compatibility.
	(CC1_SPEC): Add -O1 which is same as -O.
	(CC1_SPEC): Add -O3 which is -O2 + -finline-functions.
	(TARGET_SWITCHES): Use hex for options.
	(TARGET_SWITCHES): Rename -munix to -mmips-as.
	(TARGET_SWITCHES): Add -mgas as oppisite of -mmips-as.
	(TARGET_SWITCHES): Add -mpic, -mpic-large-object (but no code yet).
	(TARGET_SWITCHES): Make -mdebug* comments match reality.
	(PROMOTE_PROTOTYPES): Define this macro.
	(FIXED_REGISTERS): Allow $f0, $f2, and $f14 to be allocated.
	(NO_LIBG): Define this macro.
	(TARGET_VERSION): Be more specific about which vendors MIPS system.
	(ASM_FILE_START): Call ASM_OUTPUT_SOURCE_FILENAME, print_options.
	(ASM_OUTPUT_SOURCE_FILENAME): Emit correct .file directive.
	(ASM_OUTPUT_SOURCE_LINE): Emit correct .loc directive.
	(EXTRA_SECTIONS): Add rdata_section.
	(SELECT_SECTION, SELECT_SECTION_MODE): Use .rdata if feasible.
	(SDB_DEBUGGING): Define this, but only line #'s supported now.
	(FRAME_POINTER_REQUIRED): Allow no frame ptr in leaf procedures.
	(GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+70000 as address.
	(various): Use MIPS profiling (no _mcount).
	(various): Add new macros to classify registers.
	(NO_UNDERSCORES): Define this for G++.

	* mips.md (peepholes): Merge 4 peepholes, delete 24 unneeded ones. 
	Replaced with an anonymous pattern for a test insn.
	(call_value): Change to a define_insn.
	(movsi, movhi, movqi): Don't fall through at end, to avoid a warning.
	(movsf special case for immediate args): Pattern deleted.
	(movdf special case for immediate args): Pattern deleted.
	(movsf, movdf): Use new macros to distinguish fp regs.
	Add letter `y' to constraints.
	(cmpsi): Allow arith_operand for second operand.
	(hi and qi tests): Patterns deleted.
	(jump): Handle TARGET_PIC.
	(tablejump): Pattern moved.
	(conditional branches): Align the comments that are output.
	(call, call_value): Make predicates more specific.
	Don't output any comments.

	* out-mips.c: Include flags.h.  Include tree.h at beginning.
	Define numerous variables counting things used in this compilation.
	(my_print_rtx): Deleted.  Callers use debug_rtx.
	(output_load_immediate): Simply output an li instruction.
	(print_options): Body rewritten.  Now always defined, but body
	is in an #if 0.
	(abort_show_logged, my_print_insncode): Functions deleted.
	(abort_with_insn): Now use `error' to print the message.
	(mips_section_get): Function deleted.
	(override_options): Update mips_section_threshold, once and for all.

Mon Jun 25 16:54:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (output_inline_function): Pass dummies for new args
	to init_function_start.

	* stddef.h: Check _T_SIZE as well as _SIZE_T.

Sun Jun 24 17:15:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (init_function_start): New args give file/line for first note.
	* c-decl.c (store_parm_decls): Pass them.
	* final.c (final_start_function): For sdb, don't output a line number, 
	just set last_linenum.

	* tm-att386.h (ASM_OUTPUT_LOCAL): Put it in .bss section.

Fri Jun 22 12:40:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (handle_directive): Always ignore empty directive.

	* tree.h (BUILT_IN_NEXT_ARG): Define it.
	* c-decl.c (init_decl_processing): Declare __builtin_next_arg.
	* expr.h (current_function_arg_offset_rtx): Declare it.
	* stmt.c (assign_parms): Set that variable at end.
	* expr.c (expand_builtin): Implement __builtin_next_arg.
	* stdarg.h (va_start): Use __builtin_next_arg.
	* function.c (push_function_context, pop_function_context):
	Save and restore current_function_arg_offset_rtx.
	* function.h (struct function): New field for this.

Wed Jun 20 15:26:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad.
	(STACK_BOUNDARY): Make it 32.
	(CPP_SPEC): Add spaces.  Define _APOLLO_SOURCE if not -ansi.

	* expr.c (expand_call): If have STACK_BOUNDARY and push insns,
	compute stack_align when size is rounded, and use later
	to push the space for the rounding.

Tue Jun 19 15:41:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* genextract.c (gen_peephole): Use sizeof (rtx), not UNITS_PER_WORD.

	* reload1.c (reload_inheritance_insn): New variable.
	(reg_reloaded_insn): New variable.
	(choose_reload_regs): Update those variables.
	(emit_reload_insns): Use them to remove deaths from insns
	that used input reloads.
	(reload_as_needed): Clear reg_reloaded_insn when necessary.

Mon Jun 18 13:25:59 1990  Michael Meissner  (meissner at osf.org)

	* mips.md (probe): Make a single insn, just a memref.

	* mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted.
	(ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified.
	Don't output comments.  Use more specific predicates.

	* mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's.
	Also simplify and don't output comments.
	(anonymous patterns for those insns): Deleted.
	(loading floating constant): New patterns added.
	(move qi to si pattern): Deleted; ridiculous.
	(movdi, movsi, movhi, movqi): No need to check for moving reg to self.

	* mips.md (nop): Use .set noreorder to placate assembler.

Sun Jun 17 01:19:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (stamp-*.c, stamp-*.h): Remove .c or .h from names.

	* tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple
	of the alignment of the operand.

	* i860.md (signed bit field recognizers): Don't shift by >31 bits.

	* out-i860.c (output_delayed_branch): Pass register properly to
	load_opcode.

	* sdbout.c (sdbout_symbol): Get right regno for var-length object.

	* c-decl.c (duplicate_decls): Types don't "match" if one is error.

	* cexp.y (yylex): Ignore carriage return.
	* cccp.c (initialize_char_syntax): Likewise.

Sun Jun 17 01:19:26 1990  Michael Meissner  (meissner at osf.org)

	* mips.md (general/fp reg move patterns): Use codes L, M, D.
	(movdi): Likewise.  And don't output useless comments.
	Use the assembler temp reg for non-offsettable address.
	(movsi, movhi, movqi): Output nothing for move from reg to itself.
	Output li to load a constant.  Use `move' instead of `add'.
	Don't output useless comments.
	(load-address pattern): Deleted; handled by addsi3 pattern.

	* mips.md (addsi3, mulsi3): Make both input predicates arith_operand
	since they are commutative.
	(andsi3, iorsi3, xorsi3): Likewise.

	* tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New.

	* tm-mips.h (PRINT_OPERAND): New codes D, L, M.
	* mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap.
	Use new print code D.

	* mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific.
	(andhi3, ..., andqi3, ...): Patterns deleted.
	(patterns for nor): New anonymous patterns.
	* out-mips.c (uns_arith_operand): New function.

	* mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*):
	Use more specific predicates.

	* mips.md (addhi3, ..., addqi3, ...): Patterns deleted.
	(addsi3, subsi3, mulsi3, divsi3): Make predicates more specific.
	Delete useless comments from assembler code.
	Use more generic op codes rather than special cases such as addiu.
	(divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns.
	(abssf2, absdf2): New patterns.

Sat Jun 16 22:52:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (process_init_constructor): Handle unions.
	(digest_init): Use that for union inits.

Wed Jun  6 19:20:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (move_movables): In insn-deleting loop, check p != 0.

Sun Jun  3 22:44:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (grokdeclarator): Warn about extern with initializer.

Sat Jun  2 14:46:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (grokdeclarator): Handle const and volatile with parm
	specified as function type.

	* varasm.c (immed_real_const_1): Don't confuse -0.0 with 0.0.

	* tm-sun3.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Handle -0.0.
	(ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
	Note: Sun 4 (under SunOS 4) seems to work okay without this change.
	Perhaps printf works better in that version.

Fri Jun  1 13:38:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): For const function, pop stack before and aft.

Thu May 31 12:59:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): Don't round stack block if size negative.

	* fold-const.c (fold): Preserve sign on constant when other terms
	cancel (after call to split_tree).

Wed May 30 20:49:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (primary, fndef): Use YYFAIL, since YYERROR was changed.

	* out-m68k.c (output_move_double): Don't test HOST_WORDS_BIG_ENDIAN
	since that only exists in version 2.
	* tm-m68k.h (PRINT_OPERAND_EXTRACT_FLOAT): New macro wasn't mentioned.
	Don't test HOST_WORDS_BIG_ENDIAN.
	(PRINT_OPERAND_PRINT_FLOAT): New macro wasn't mentioned before.
	(PRINT_OPERAND): Use them.

Tue May 29 21:35:23 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* optabs.c (expand_float): Don't use hard reg for intermediate result.

	* c-parse.y (yylex): Fix typo in handling of ERANGE.

	* sparc.md (tstdf, tstsf): Use a CLOBBER, not a USE, on f0.

	* sparc.md (eager branch peepholes): Fix typos.
	* tm-sparc.h (OUTPUT_JUMP): Define this.

	* print-tree.c (print_lang_identifier): New function.

Sat May 26 13:42:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sdbout.c (sdb_begin_function_line): Now -1 if not in use.
	(sdbout_end_function): Set it to -1.

Fri May 25 00:18:29 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* print-tree.c: Total rewrite.

Thu May 24 21:26:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (macarg): When popping frame, free via free_ptr, not buf.

Tue May 22 21:41:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (finish_decl): Discard any variable sizes in the decl.

	* pyr.md (mulsi3, adddi3, ...): Use symmetrical predicates in
	commutative patterns.
	(tsthi, tstqi): Set CC_NO_OVERFLOW
	* out-pyr.c (notice_update_cc): Don't do that here for
	explicit cc-setting insns.

Sat May 19 12:41:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align.
	(ASM_OUTPUT_ALIGN_CODE): Likewise.

Wed May 16 16:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-pyr.h (FIXED_REGISTERS, CALL_USED_REGISTERS): 
	Reserve register lr15 as fixed, for test instructions.
	* pyr.md (tsthi, tstqi): Use cvtXw into lr15 rather than test.

	* expr.c (expand_expr): Make sure a volatile value is referenced
	even if value is ignored.

	* c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int.
	(invert_truthvalue): Simplify COND_EXPR.

Tue May 15 16:51:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (complete_array_type): Compensate for wide string constants.

Mon May 14 15:31:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (combine_strings): Fix errors computing wide string length.

Sat May 12 15:17:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (trunc**): Use long move if source is constant.
	* out-i386.c (PRINT_REG): Handle CODE == 'k'.

	* ns32k.md (signed bitfield extract): Don't output assembler comment.

Fri May 11 14:45:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4.

Thu May 10 23:43:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-i860.c (single_insn_src_p, strict_single_insn_src_p):
	Correct conditions for needing multiple instructions.
	(output_delayed_branch): Likewise.

Tue May  8 13:54:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-ultrix.h: New file.

Mon May  7 18:47:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (test... recognizers): Output symbolic constant first.

Sat May  5 12:18:05 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* rtlanal.c (dead_or_set_p): Compare register numbers, not addresses.

Thu May  3 16:56:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expmed.c (store_bit_field): Maximum size for loading mem struct
	into reg comes from the mode of the value to be stored.
	Alignment is no restriction if it matches BIGGEST_ALIGNMENT.
	Always do the real work in SImode if couldn't use MEM.
	(extract_bit_field): Likewise.

	* tm-sparc.h (PRINT_OPERAND): Handle new codes I and U.
	* sparc.md (delay slot peepholes): Use them to handle CC_NO_OVERFLOW.
	(negated jump recognizer): Likewise.
	* sparc.md (addcc and subcc recognizers): Test for validity of
	ignoring overflow with ignore_overflow_conditional_p.
	* out-sparc.c (ignore_overflow_conditional_p): New function.

	* pyr.md (bitw recognizer): Set CC_NO_OVERFLOW.

Mon Apr 30 01:39:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (build_int): Make arg unsigned.

	* cccp.c (macarg1): `\' not special outside strings.

	* c-typeck.c (build_unary_op): In increment ops,
	typo checking for ptr to void/function.
	Check original type for this and for amount of increment.

Sat Apr 28 16:43:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (build_indirect_ref): Error if target is incomplete type.

Fri Apr 27 13:02:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (order_regs_for_reload): Count multi-word pseudos right.

	* flow.c (mark_set_1): Handle nested SUBREG, SIGN_EXTRACT,
	STRICT_LOW_PART, etc.  Also, always set subreg_p when setting
	a bit field, even if modes are same.

Thu Apr 26 17:52:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (handle_directive): Don't pass directive through if no_output.

Tue Apr 24 13:40:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* pyr.md (addsi3): Use general_operand for both inputs.

	* i860.md: Add missing = in some output constraints.

Mon Apr 23 16:37:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst): When checking reg_last_set, verify nonzero.

	* ns32k.md (ashlhi3): Avoid using %1.

Sat Apr 21 21:05:51 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (assign_parms): Don't make entry_parm and stack_parm valid.
	Leave them explicit stack slots.
	(validize_mem): Copy it, don't alter it.

Thu Apr 19 15:23:51 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-sparc.c (find_addr_reg): Avoid using frame pointer. 

Sun Apr 15 13:42:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (emit_library_call): Precompute reg and partial of all parms,
	to do it in proper order.

	* integrate.c (save_for_inline): Copy reg notes after all insns.

	* final.c (final_scan_insn): No block profiling before jump table.

Sat Apr 14 00:19:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (tstdf): Clobber reg in SImode, like cmpdf.
	(blt, ble): New define_expands.  RTL like before except,
	for floats, reverse prev compare or test and do bgt/bge.

Thu Apr 12 21:27:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): New variable argpos counts args in the
	order written.  For comparison with n_named_args.

	* c-decl.c (duplicate_decls): Preserve DECL_INITIAL from old
	function def to new one.

	* cccp.c (macroexpand): Count Newline Space as part of whitespace
	sequence when stringifying.

Tue Apr 10 21:08:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (do_line): No error if string follows number without space.

Mon Apr  9 15:37:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (install): Turn off x bit on headers and man page.

	* i860.md (cmpeqsf, etc.): Change opcode name to pfeq.ss, etc.

	* tm-m68k.h (PRINT_OPERAND_PRINT_FLOAT): Delete spurious backslash.

	* c-decl.c (store_parm_decls): Don't do storedecls in prototype case.
	That was discarding the enumerators already pushdecl'd.

	* tm-m68k.h (NOTICE_UPDATE_CC): Undo last change.

Sun Apr  8 19:00:09 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-m68k.c (output_move_double, standard_68881_constant_p):
	Do word-swap when cross-compiling from little-endian machine.

Sat Apr  7 00:45:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sparc.md (addcc and subcc patterns): Set CC_NO_OVERFLOW.

	* out-mips.c (output_load_immediate): Fix bug for values
	between -2**15 and -2**16; don't use addi.

Thu Apr  5 14:00:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stdarg.h (va_start): Round initial pointer value down
	to double boundary.  This is to eliminate big-endian adjustment.

	* c-typeck.c (build_c_cast): Reject array types for result.

	* fixincludes: Don't ignore errors when making dirs.
	But check whether dir already exists.

Wed Apr  4 01:59:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (grokdeclarator): Complain if fn defn has `typedef' etc.

Tue Apr  3 22:09:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expmed.c (store_bit_field): Don't do big-endian adjust twice.
	Do this by changing the mode whenever it is done.
	Some places must now cope with subregs.
	(extract_bit_field): Likewise.

Fri Mar 30 15:54:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (c_build_type_variant): New function.
	(grokdeclarator): Call that, for ARRAY_TYPE only, in fields and vars.
	* c-decl.c, c-typeck.c: All calls to build_type_variant use that now.

Wed May  2 16:34:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-sun3.h (CC1_SPEC): Ignore -target.
	(WORD_SWITCH_TAKES_ARG): Define it.
	* tm-sparc.h (CC1_SPEC): Ignore -target and -dalign.
	(WORD_SWITCH_TAKES_ARG): Define it.

Thu Mar 29 15:34:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* final.c (end_final): For basic block profiling, don't output
	source file name.  Instead, append ".d", and remove ".c".
	* gnulib.c (__bb_init_func): New name for __bb_init_function.
	Conditionalize on mc68000, not m68k.
	Fix other typos.
	* Makefile (LIBFUNCS): Add _bb_init_func.

	* xm-sun386i.h (LINK_SPEC): Handle -static.

Wed Mar 28 16:21:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE from definition
	past subsequent declarations.

	* c-decl.c (xref_tag): If global_binding_level, make nodes permanent.

	* expr.c (expand_call): Handle STACK_BOUNDARY when using push insns.

	* stmt.c (assign_parms): Note how PUSH_ROUNDING affects stack
	parm size.

	* tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8.

Tue Mar 27 14:24:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi):
	Avoid both clr and st on volatile mem, but only on 68000.
	(SImode store 0 recognizer): Likewise.

Mon Mar 26 15:01:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m68k.md (movqi): Don't use `st' insn on volatile memory.

	* tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's
	even if destination is an address register.

	* cccp.c (discard_comments): Handle backslash-newline.

Sun Mar 25 20:21:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (handle_directive): Discard backslash-newline within <...>.

Fri Mar 23 00:52:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (grokdeclarator): Warn if array element is incomplete.

	* xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC.

	* expr.c (emit_call_1): Pass FUNTYPE directly to RETURN_POPS_ARGS.

Thu Mar 22 22:33:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (get_parm_info): Void parm is special only if no name.

	* loop.c (may_not_optimize): Static var replaces local `may_not_move'.
	(strength_reduce): Don't accept those regs as givs.

Wed Mar 21 17:14:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent.
	* tm-sequent.h (SEQUENT_ADJUST_STACK): Define this.

	* Makefile (gnulib): Use OLDAR, not AR.
	(OLDAR): New variable.

	* expr.c (expand_call): Don't reuse pending_stack_adjust for argblock
	if inhibit_defer_pop.

Tue Mar 20 02:41:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* va-sparc.h: New file, handles changed calling convention.

	* expr.c (push_block): New argument EXTRA.  All callers changed.
	(emit_push_insn): Use that for the padding when using push_block.

	* ns32k.md (ashlsi3): `return' was missing.

	* tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG):
	Only word-aligned BLKmodes can go in registers.
	(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
	* tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise.
	* expr.c (expand_call): If encounter a stack parm before offset
	gets up to zero, make it zero.
	* stmt.c (assign_parms): Likewise.

Mon Mar 19 00:06:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify.

	* gcc.c (main): Handle SIGPIPE.

Sat Mar 17 14:13:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (general_induction_var): When adding sub-giv to ARG,
	don't produce an add_val that can't be the source of an add insn.

Fri Mar 16 15:26:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-vms.h (NO_DOLLAR_IN_LABEL): Define this.

	* sparc.md (andncc, orncc, xorncc patterns): Delete `%' in constraint.

Thu Mar 15 22:02:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expmed.c (extract_bit_field, store_bit_field):
	When changing mode of a reg to SImode, also do big-endian correction.
	Consistently use BYTES_BIG_ENDIAN to decide how bits are numbered.
	Fix stray ref to CODE_FOR_extzv in case for extv.

	* c-typeck.c (build_unary_op): Allow function type args to `!',
	since they convert to pointers.

	* stmt.c (init_function_start): Set max_structure_value_size to -1.

Sun Mar 11 18:39:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (spill_hard_reg):
	Typo: index regs_explicitly_used with regno.

	* cse.c (cse_insn): When replacing constant with reg+const,
	don't make a REG_EQUIV note unless there already is one.

	* gcc.c (fatal): Flush spurious arg to delete_temp_files.

	* Makefile (gnulib, stamp-gnulib2): Ignore error in ranlib.

Sat Mar 10 16:07:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (other_reg_use_p): New name for only_reg_use_p.
	Return 0 if IN == EXPR.
	(check_eliminate_biv, strength_reduce): Re-invert the test
	using other_reg_use_p.

Thu Mar  8 02:17:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* ns32k.md (movsi, movdi): Handle floating point registers.

	* reload.c (find_reloads_toplev): Do BYTES_BIG_ENDIAN offset
	only within a word.

	* stdarg.h: Use _VA_LIST_ as macro to indicate already loaded.

	* tm-alliant.h (FUNCTION_PROLOGUE): Use `linkl' on 68020.

Tue Mar  6 23:44:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (macroexpand): Fix bug in scanning strings for stringify.

Fri Mar  2 00:27:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-mips.c (tree_code_name): Declaration deleted.

Thu Mar  1 22:59:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* assert.h (__assert): Don't call abort; use 0 as value.
	* gnulib.c (__eprintf): Call abort here.

Wed Feb 28 13:11:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (install): When installing $${eachfile}, use basename.

Fri Feb 23 13:21:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (readescape): For x, avoid overflow when shifting in if.

Thu Feb 22 19:09:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes: Delete directories before creating them.
	When making internal symbolic directory links, chase
	chain of existing links to the end.

	* dbxout.c (dbxout_type): Always use main variant.

Wed Feb 21 00:25:39 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Version 1.37.1 released.

	* tm-mips.h (ASM_OUTPUT_ADDR_VEC_ELT and ASM_OUTPUT_ADDR_DIFF_ELT):
	Start label names with $.

Sun Feb 18 13:58:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
	Start name with $.

	* integrate.c (expand_inline_function): Round up size of parm_map.

Sat Feb 17 20:56:05 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__.

Sun Feb 11 20:11:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Version 1.37 released.

	* c-decl.c (complete_array_type): In permanent type, add perm nodes.

	* out-i386.c (print_operand_address): Handle a MULT by itself.

Sat Feb 10 14:35:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* ns32k.md (movsf): Convert double constant to float.

Fri Feb  9 00:02:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL.

	* cccp.c (handle_directive): Keep comments by copying them explicitly.

	* cccp.c (rescan): When scanning for open-paren after macro name,
	discard comments if appropriate.

Thu Feb  8 14:19:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (build_enumerator): Error if value outside range of int.

	* tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional.
	* tm-hp9k310.h: Missing file brought back.

Mon Feb  5 12:49:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (spill_hard_reg): Return 1 if reg is explicitly used.
	(reload): Cancel dummy reloads using regs subject to spill.

Sun Feb  4 12:37:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-3b1g.h: New file.
	* config.gcc (3b1g, 3b1-gas): New alternative.

	* tm-att386.h (ASM_OUTPUT_COMMON): Don't use rounded size.

Fri Feb  2 17:04:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (copy_for_inline): Use real width of rtunion in bcopy.
	* emit-rtl.c (copy_rtx_if_shared): Likewise.

	* assert.h (assert) [__STDC__]: Use comma operator to avoid warning.

	* c-decl.c (grokdeclarator): Traditionally change return type float
	to double.

	* cse.c (predecide_loop_entry): Give up unless simple jump enters loop.

Thu Feb  1 02:02:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-convex.h (FASCIST_ASSEMBLER, VTABLE_USES_MASK, VINDEX_MAX):
	New definitions to control c++ files.

	* reload1.c (inc_for_reload): Forget reg_last_reload_reg
	for the reg being inc'd.

	* limits.h (INT_MIN): Define so it has type `int', not unsigned.
	(CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value.

Wed Jan 31 12:54:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (FUNCTION_PROLOGUE): Use CONST_OK_FOR_LETTER_P to see
	if can update fp in one addiu insn.

	* reload1.c (reload): Reject fixed regs when finding groups to spill.

	* assert.h (assert) [NDEBUG]: Make value nonempty.
	(assert) [no NDEBUG]: Split into a version for __STDC__ and one not.
	(_assert) [__STDC__]: Pass expression and file separately to _eprintf.
	(_assert) [not __STDC__]: Likewise, but implemented differently.
	* gnulib.c (__eprintf): Handle 3 args plus format string.

	* tm-i386.h (STACK_BOUNDARY): Define it.

Sat Jan 27 17:58:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* hard-params.c: Use explicit file name to include self.

Fri Jan 26 01:38:29 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

 	* cccp.c (rescan): Set beg_of_line when string ends at newline.
	(skip_quoted_string): Don't swallow newline that ends a string.
	(handle_directive): No need to back up here.
	Pass LIMIT as second arg to skip_quoted_string.

 	* cccp.c (rescan): If traditional, end preproc number after expt sign.

Thu Jan 25 01:57:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (general_induction_var): Reject widening multiply.

	* i860.md (andsi3): Truncate xop2 constant to 16 bits.

Wed Jan 17 12:33:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (CC1_SPEC): Don't complain about -g.

	* c-typeck.c (build_compound_expr): Delete special case
	that ignores expressions without side effects.

	* stor-layout.c (layout_type): Struct requires BLKmode if any field
	crosses a word boundary.

	* reload1.c (choose_reload_regs): Refix Sequent problem correctly.

Tue Jan 16 12:03:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (unary_expr): If sizeof or alignof gets a comma expr
	which has array or function type, coerce it to pointer.

	* fold-const.c (combine): Propagate carry when subtracting from 0.

	* fold-const.c (fold): For x++==const, do arith in type of const.

Mon Jan 15 19:24:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cexp.y (exp): Accept unary +.

Sun Jan 14 12:18:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fold-const.c (lshift_double, rshift_double, lrotate_double):
	(rrotate_double): Don't shift more than width of operand.

Fri Jan 12 18:50:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* recog.c (next_insns_test_no_inequality): Return 1 at end of rtl.

Thu Jan 11 14:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (skip_if_group): Skip strings even if -traditional.
	(handle_directive): Likewise, when handling copy_command.

	* i860.md (movsf): Ensure F to f is reloaded via r.

Wed Jan 10 15:03:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile [3b1]: Propose redefinition of CCLIBFLAGS.

	* reload1.c (choose_reload_regs): Break down hairy if expression.

	* loop.c (loop_skip_over): Do nothing if don't find expected compare.

Sun Jan  7 00:58:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc: Add i386-mach.
	* xm-i386.h: Use built-in alloca if compiling with GCC.

	* optabs.c (emit_cmp_insn): Set CLASS after MODE.

Sat Jan  6 15:33:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-mips.c (function_arg, function_arg_advance):
	Define typedef for CUMULATIVE_ARGS, and use it here.

	* cccp.c (main): Recognize `.C' for -M.

	* c-parse.y (yylex): Put 0 at end of wide string.

	* tm-mips.h (CC1_SPEC): Don't distort meaning of -O.

Fri Jan  5 12:12:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last.

Thu Jan  4 23:58:59 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (c-parse.tab.o): Add explicit compilation cmd.

Wed Jan  3 00:27:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (install): Use nested foreach-loop to expand va*.h.

Mon Jan  1 19:36:49 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (store_one_arg): Round size up for move_block_to_reg.
	(expand_call): Round up when emitting USE insns.
	* stmt.c (assign_parms): Round size up for move_block_from_reg.

	* reload1.c (alter_reg): Undo big-endian conversion from
	assign_stack_local.

Sun Dec 31 20:10:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tree.h (struct tree_common): Declare `code' as char, not int.

Thu Dec 28 13:49:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gnulib.c (__fixunsdfsi): Turn large numbers to small for conversion.

	* Makefile (includes): Set variable LIB.  Run from `./'.

Wed Dec 27 18:54:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (CCLIBFLAGS): Add -O.
	(gnulib): Remove -O here.
	(HARD_PARAMS_FLAGS): Like CCLIBFLAGS but no -O.
	(hard-params, hard-params.o): Use that.

	* loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero,
	it must be a constant or register.

Mon Dec 25 00:02:31 1989  Torbj|rn Granlund  (tege at zevs.sics.se)

	* tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined.
	  The cvtdw instruction causes a trap for floating point values
	  that are out-of-range for a signed int.

	* out-pyr.c (has_direct_base): Don't accept 0 as a base, if there
	  is a register displacement.  This is a workaround of a bug in
	  /bin/as.  (/bin/as changes things like "cmpw 8(reg),0(reg)" into
	  "cmpw 8(reg),(reg)", which is invalid assembler.)

Sun Dec 24 11:51:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (emit_move_insn): Lossage validating mem addr of constant.

	* varasm.c (record_constant_1): Missing `return' in ADDR_EXPR case.

Sat Dec 23 10:54:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* ns32k.md (extract byte from register): Delete #if conditionals.
	Assume 32532 always.
	(adjust stack): Likewise.

Thu Dec 21 10:24:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i860.md (load DF constant to reg): Typo: extra percent sign.
	(floatsidf2): Two words of a double were backwards.

	* reload1.c (alter_reg):
	Always do big-endian correction on slot address.

	* gnulib.c (__fixunsdfsi): Don't rely on host compiler for unsigned.

	* i386.md (float push recognizers): Don't pop fpreg if not dead.

Sun Dec 17 12:13:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE.

Sat Dec 16 17:49:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (strength_reduce): When writing insn to init a biv, 
	update life range of reg used to init it.

	* combine.c (try_combine): Do combine (y = x, x = y).

	* loop.c (strength_reduce): When finding initial value of a biv,
	notice assignments to subregs of it, etc.

Fri Dec 15 00:42:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m68k.md (fpa float and float-trunc): Accept general_operand.

	* integrate.c (expand_inline_function):
	Put caller's line number after inline stuff.
	Put callee's line number before parm manipulation.

	* If local-alloc assumes a reg does not conflict,
	don't use it as dummy reload.
	* local-alloc.c (wipe_dead_reg): Add REG_UNSET note.
	* reload.c (find_dummy_reload): Check for that note.

	* vax.md (casesi): New pattern for super-trivial cse case.

	* jump.c (jump_optimize): Realize that more things can follow
	the NOTE_INSN_FUNCTION_END note.  Change in two places,
	for optimized and one for unoptimized.

Sat Dec  9 15:21:07 1989  Richard M. Stallman  (rms at ccvi)

	* expr.c (expand_expr): For conversion ops, copy CONST_INT to reg
	to avoid lossage on VOIDmode in convert_move or expand_float.
	* optabs.c (expand_float): Abort if FROM has VOIDmode.

	* final.c (final_scan_insn): Delete unused label.

Thu Dec  7 01:42:30 1989  Richard M. Stallman  (rms at ccvi)

	* sdbout.c (MAKE_LINE_SAFE): Ensure arg is > sdb_begin_function_line.
	(sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it.

	* jump.c (jump_optimize): Leave block-beg, block-end notes
	in old context when swapping two ranges of insns.
	(squeeze_block_notes): New function.

	* expr.c (expand_call): For pcc struct, return reg mode is Pmode.

	* c-typeck.c (build_conditional_expr):
	Only explicit ints allow predetermined choice.

Wed Dec  6 19:02:07 1989  Richard M. Stallman  (rms at ccvi)

	* toplev.c: Undef FFS after including param.h.

Tue Dec  5 16:01:18 1989  Richard M. Stallman  (rms at ccvi)

	* mips.md (movsf): Use mtc1 where needed.

	* reload1.c (choose_reload_regs): If run out of spill regs,
	set must_reuse and try again.

Mon Dec  4 00:18:24 1989  Richard M. Stallman  (rms at ambroise)

	* reload1.c (alter_reg):
	Don't set spill_stack_slot_width if from_reg is -1.

	* cse.c (cse_end_of_basic_block): Typos checking NOTE insns.

	* math-68881.h (pow): Add parens around `&'.

	* loop.c (can_eliminate_biv_p, eliminate_biv):
	In COMPARE, verify the biv is one of the arguments.
	(strength_reduce): When eliminating biv, check for use
	in a giv in an address, just as in check_eliminate_biv.

	* stupid.c (reg_order): Make it int, in case reg # is large.
	(stupid_reg_compare, stupid_life_analysis): Implement this.

Sun Dec  3 14:17:36 1989  Richard M. Stallman  (rms at ambroise)

	* tm-att386.h (ASM_OUTPUT_LOCAL): Don't generate .lcomm.
	Go back to putting the variable in the data section.

	* expr.c (do_jump): Cast XVECLEN to int for subtracting 1.

	* reload.c (decompose): Handle SUBREGs.

	* c-typeck.c (build_modify_expr): Prevent -Wall warning
	when we generate a COMPOUND_EXPR for (?:)=.

Mon Nov 27 15:39:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile [pyramid]: Use CLIB, not ALLOCA, to access libPW.a.
	Use -lc explicitly first.

	* pyr.md (SI test recognizer): Fix syntax error,

	* c-decl.c (grokdeclarator): Don't test size of error_mark_node
	as type of a field.

Sun Nov 26 12:36:01 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren.

Wed Nov 22 12:56:41 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW.
	* out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16.

	* Makefile: Fix directions for pyramid.

	* tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'.
	(SMALL_INT): Range is 16 bits, not 17.
	(SMALL_INT_UNSIGNED): New macro.
	* mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'.

	* mips.md (negsi2): Accept general_operand as input.

Tue Nov 21 10:57:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* mips.md (one_cmpl*): Accept general_operand as input.

Mon Nov 20 11:18:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_expr): For MINUS_EXPR, don't explicitly negate int
	constant if it is in a mode too wide for host machine int.

	* cse.c (fold_rtx): Simulate negative shift counts.

Sun Nov 19 14:36:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases.

	* cse.c (fold_rtx, fold_cc0): Handle float trap. 

Sat Nov 18 00:17:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (output_constant): Handle float trap in fprintf.
	* toplev.c (float_signal): Don't print message.
	* fold-const.c (combine): Print it here.

	* sparc.md (extend patterns): Handle CONST_INT as operand.

	* out-i386.c (singlemove_string): Fix paren error.

Fri Nov 17 12:19:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_increment): For pre-increment, copy the rtx to return.

	* c-parse.y (compstmt): There may be implicit decls, so check
	and maybe keep the level.

	* tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
	Use call_used_regs, not a private copy.

Thu Nov 16 00:28:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c: Keep track of paradoxical subregs of each pseudo,
	and make extra stack space for their sake.
	(reload): Record max size paradoxical subreg for each pseudo.
	(scan_paradoxical_subreg): New subroutine for that.
	(reload): Make stack slots big enough for that size.

	* tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it,
	so we can output a no-op before each function.

	* tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify.
	Pass function type to aggregate_value_p.

	* fold-const.c (fold):
	For foo++ > const, don't change if foo++ could overflow.

	* loop.c (eliminate_biv):
	Fix typo; check both coeffs when comparing givs.

Wed Nov 15 00:12:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (copy_for_inline): Correctly handle RTL type "u".

	* jump.c (delete_insn): Extra test for PREV != 0.

Tue Nov 14 17:31:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm.

	* tm-pyr.h (INIT_CUMULATIVE_ARGS):
	If -fpcc-struct-return, always do the scalar thing.

	* function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE.

Sat Nov 11 00:18:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-sun386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE.
	(ASM_OUTPUT_LOCAL): Likewise.  Also, generate .lcomm
	rather than a .data area symbol.
	* tm-att386.h: Likewise.

Fri Nov 10 15:04:15 1989  Richard Stallman  (rms at rice-chex)

	* caller-save.c (emit_mult_restore, emit_mult_save):
	Improve arithmetic for address to save at.

Thu Nov  9 00:14:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
	Don't use obsolete pushw and popw insns.
	(ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5.
	* pyr.md (tstdi): Pattern deleted.
	(SImode test recognizer): Output ucmpw if jump is unsigned.

	* out-sparc.c (operands_satisfy_eager_branch_peephole): 
	Check for moves between FP and non-FP regs; they take two insns.
	* sparc.md (eager branch peepholes): Likewise.
	(Ordinary delayed branch peepholes): Similar check.
	* out-sparc.c (single_insn_extra_test): New subroutine.

Wed Nov  8 18:19:51 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst): In (sign_extend:M (subreg:N (and:M .. <const>) 0))
	insist that constant be positive in mode N.

Tue Nov  7 23:25:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* rtl.h: Undefine FFS in case it was defined by the system.

Mon Nov  6 14:43:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS):
	Test aggregate_value_p, not just BLKmode.

	* gnulib2.c (__builtin_saveregs): Moved from gnulib.c.
	Code added for mips.

	* pyr.md (conditional branch recognizers): Don't simplify if not -O.

	* out-pyr.c (extend_and_branch): Handle two constant operands.

	* integrate.c (function_cannot_inline_p): Don't inline if alloca used.

Sun Nov  5 02:59:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Always make a LET_STMT and notes for the top level of a function
	if it has any subblocks.
	* c-decl.c (struct binding_level): New field keep_if_subblocks.
	(poplevel): Obey the new field.
	(keep_next_if_subblocks): New variable.
	(pushlevel): Use that variable.
	(store_parm_decls): Set that variable.
	(compstmt): Pass nonzero to expand_end_bindings
	for the new kept binding levels.
	(kept_level_p): New function.

	* xm-mips.h: Define USE_C_ALLOCA if compiling with CC.

	* tm-alliant.h (CHECK_FLOAT_VALUE): Define this.

	* expr.c (expand_call): Make valreg 0 if passing structure address.

Sat Nov  4 23:27:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* caller-save.c (emit_mult_save, emit_mult_restore):
	Test regs for suitability as address before using as temps.

	* cccp.c (make_definition, do_define): Better error checks for name.

Fri Nov  3 01:05:04 1989  Torbj|rn Granlund  (tege at echnaton)

	* pyr.md (tstdi): New pattern.  Use 64-bit shift with count zero.

	* pyr-tm.h: -mretd pops args with the retd insn.

	* pyr.md (peep-holes for loop optimizations): Use the R output
	  format in PRINT_OPERAND, don't use output_branch.
	* out-pyr.c: No need for functions output_branch, output_inv_branch.

	* tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two.

Wed Nov  1 00:38:27 1989  Torbj|rn Granlund  (tege at echnaton.sics.se)

	* out-pyr.c (output_inv_branch): When reversing test operands, ne
	  remains ne, and eq eq eq.

	* pyr.md: Cleanup output code for compare patterns.

	* pyr.md (return): Adjust frame pointer if
	  current_function_pretend_args_size != 0.

	* pyr.md (extendsidi2): Use general_operand for the input operand.

	* pyr.md, out-pyr.c: Output shift insns with output_shift.

	* tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how
	  condition codes are really set.  Define flag CC_VALID_FOR_UNSIGNED
	  with to make it possible not to reset cc after each compare or
	  test.
	* pyr.md: Don't use CC_STATUS_INIT for most patterns.

	* out-pyr.c (already_sign_extended): Cleanup, correct, optimize.

	* out-pyr.c: rename radr_diff to constant_diff.

	* out-pyr.c (movdi_possible): Don't combine moves from memory to
	  memory, because of possible address aliasing.  Don't combine moves
	  with register destination if the source operands are depending on
	  the destination of the first move, as in

	    movw (pr3),pr3
	    movw 4(pr3),pr4.

	* out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG.

	* out-pyr.c (output_move_double): movl of immediate *sign* extends.

Tue Oct 31 22:51:39 1989  Torbj|rn Granlund  (tege at echnaton.sics.se)

	* pyr.md (cmpsi): Don't expand this.  It's just slower.

	* out-pyr.c (extend_and_branch): Handle only QImode and HImode.
	  Flush code specific for SImode.

	* out-pyr.c (extend_and_branch): To make zero extensions to HImode
	  of constants not crash:
	* out-pyr.c (ensure_extended): Call extend_const if it's a
	  CONST_INT.  Don't call extend_const from extend_and_branch.
	* pyr.md, out-pyr.md: Use global variable test_mode to determine the
	  mode of tests and compares.  Set in define_expands for tests and
	  compares.  Used in extend_and_branch.
	* out-pyr.c: Pass mode between extend_and_branch and ensure_extended.

	* out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is
	  accepted.
	* out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is
	  accepted.

Thu Nov  2 13:02:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gnulib2.c (lshrdi2, and other shifts): Take second arg as long long.

	* out-i386.c (fp_pop_int): Use %L0 in fistp insn.

Wed Nov  1 00:05:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (init_function_start): Init max_parm_reg.

	* varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name.
	(record_constant_1): Likewise.

	* out-sparc.c (output_mul_by_constant): Constant zero is legitimate.

	* caller-save.c (emit_mult_restore, emit_mult_save):
	Handle stack addresses which are invalid.

	* cse.c (use_related_value): Don't abort if offset is 0.

Tue Oct 31 15:08:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc (pyramid): Set $machine to pyr.

	* Makefile: Change temp file names from tmp-insn-* to tmp-*.

	* expr.c (expand_call): OK_DEFER_POP for is_const was once too many.

Sun Oct 29 00:53:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (yylex): Prevent warning for numbers that underflow.

	* stmt.c (assign_parms): Convert stack addresses to valid addresses.
	(validize_mem): New subroutine.

	* stmt.c (check_for_full_enumeration_handling): Accept enum type
	as argument (since was finding it incorrectly).
	Delete special case for constant index.
	(expand_end_case): Pass enum type; check for constant index.

	* cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS
	for nonzeroness.

Fri Oct 27 16:25:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-next.h (__inline): define as macro for old 1.34 Next uses.

Wed Oct 25 17:59:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
	* stmt.c: Include recog.h.

Tue Oct 24 19:23:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (try_combine): Don't move a volatile asm.

Mon Oct 23 01:45:34 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (try_combine): Don't install a subreg relating two modes
	that aren't tieable.

	* gnulib2.c (__fixdfdi): Declare __fixunsdfdi.

	* combine.c: Make uid_cuid an int *.
	(combine_instructions): Allocate as such.
	* loop.c: Make uid_luid an int *.
	(loop_optimize): Allocate as such.

Sun Oct 22 16:34:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (fixup_var_refs_1): New insn before a CALL goes before
	the preceding USEs.

Sat Oct 21 00:51:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-pyr.c (extend_and_branch): Allow SUBREG like REG.
	* pyr.md (mem-reg and reg-mem HI, QI patterns):
	Don't match unless one arg is MEM.

	* out-sparc.c (output_fp_move_double): Use ldd only when safe,
	on same conditions used for std.

	* Makefile (gnulib): Fix comments for editing for hpux.

Fri Oct 20 00:27:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-i386.c (singlemove_string): Handle ordinary constants as input.

	* reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK
	was the pseudo; should be the reload reg.

	* tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, 
	host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD.
	* tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C.
	(CPP_SPEC): Remove those from here.
	Define __SYSTYPE_*__ always.  Define SYSTYPE_* only if not -ansi.
	No CPP_SPEC needed for decstation.
	Correct typos in option tests.

Thu Oct 19 18:16:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-m68k.h, tm-alliant.h (PRINT_OPERAND):
	Don't print :l for address if :w was already printed.

Wed Oct 18 13:03:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro.
	Store that value in frame_stack_difference.
	(FUNCTION_EPILOGUE): Get rid of __0__gcc macro.
	(FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference.
	* out-mips.c (frame_stack_difference): Define here.

	* gcc.c (compilers): Define __GNUG__ if g++.

Tue Oct 17 01:17:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i860.h (HAVE_PRE_INCREMENT): Undefine this.

	* mips.md (movsf): New alternatives for r registers.
	* tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames.
	* out-mips.c (function_arg): Handle mode distinction for floating args.

	* pyr.md (mtstsw pattern): Accept general_operand.

	* i860.md (movsf): New alternatives: allow loading r from F.
	Prefer f-reg as reload when moving m from F.
	* tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode.

Sun Oct 15 19:45:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i860.md (movhi, movqi): Support moves to/from fp regs.

	* sparc.md (cse'd multiply): New pattern for mult. by -1.

	* out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg.

	* expr.c (emit_library_call, expand_call): Make a SEQUENCE for
	any needed USE insns and pass them to emit_call_1.
	(emit_call_1): Place the passed SEQUENCE immediately before the
	generated CALL_INSN even if gen_call made more than one insn.

Fri Oct 13 00:12:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* recog.c (constrain_operands): Add case for `&'.

	* expmed.c (extract_bit_field): With structure reg fetched from mem,
	don't put in subreg if mode already correct.
	(store_bit_field): Typo: had extzv, wanted insv.

	* stmt.c (expand_function_start): Call init_recog.

Thu Oct 12 01:48:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (macarg1): Count newlines even after backslash.

	* c-decl.c (pushdecl): Don't warn for explicit extern
	followed by static.  That case is useful for incomplete arrays.

	* tm-sparc.h (SELECT_RTX_SECTION): Test was backwards.

Wed Oct 11 00:35:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-seq386.h (DBX_DEBUGGING_INFO): Override this.
	(HARD_REGNO_MODE_OK): Override this.

Mon Oct  9 01:09:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i860.md (movdi): accept F source in 2nd alternative.
	Accept G source in 3rd.
	(adddi3, subdi3): Typo in opcode of output.

Sun Oct  8 01:38:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (ASM_SPEC): Pass -nocpp to as.

	* c-decl.c (grokdeclarator): Ignore variant differences
	when preserving typedef types from being altered.

Sat Oct  7 00:46:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* xm-mips.h: Use __builtin_alloca.

Fri Oct  6 00:30:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (find_equiv_reg): Do let xregno be a pseudo reg,
	but don't call HARD_REGNO_NREGS in that case.

Thu Oct  5 00:30:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (find_equiv_reg): Don't let xregno be a non-hard reg.
	Don't do OVERLAPPING_REGNO_P on a pseudo reg number. 

	* i386.md (trunchiqi2, etc.): Output %1 with size of destination.
	* out-i386.c (PRINT_REG): Support 'b' as CODE.

	* combine.c (try_distrib): Make sure we don't move a reg use
	across a store into that reg.

	* reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2,
	and explicitly used regs at LARGE+1.

	* stor-layout.c (build_int): When memoizing, make permanent nodes.

Wed Oct  4 19:40:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* xm-i860.h: Missing file added.

Mon Oct  2 16:26:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (emit_reload_insns): Reject any OLDEQUIV that is
	in use in any other reload of this insn.

	* expr.c (expand_call): Don't put on notes for const functions
	if there aren't real insns to hold them.

Sun Oct  1 19:50:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs
	when setting follows_call.

	* i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg.

	* integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END.

Fri Sep 29 08:56:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-next.h (LINK_SPEC): Typo for -Z option.

Thu Sep 28 12:57:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (decompose): Handle case of pseudo with no hard reg.

Wed Sep 27 01:20:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* explow.c (round_push): Fix typo: return fast if ALIGN is 1.

	* varasm.c (in_text_section): New function.
	* tm-3b1.h (ASM_OUTPUT_SKIP): Use that.

Tue Sep 26 02:40:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (commontype): If one arg is error_mark_node, return other.

Sun Sep 24 00:21:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (poplevel): When popping a local extern decl,
	save the TREE_USED bit in the identifier.
	* toplev.c (compile_file): Check that, printing "not used" warnings.

	* tree.c (make_node): Always put PARM_DECL in saveable_obstack.

	* Version 1.36 released.

	* genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'.

	* tahoe.md (casel patterns): Use %@ for operand of .align.
	* tm-tahoe.h (PRINT_OPERAND): %@ prints `1'.
	* tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'.

	* config.gcc (decstation): New entry.

	* tm-harris.h: New file, using tm-tahoe.h.

	* tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files.

Sat Sep 23 00:28:14 1989  Alain Lichnewsky  (lich at glenlivet)

	* added -Zxxx flag in tm-mips.h. (-Z stands for systype)

	  used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose
	  that at somepoint -ZPOSIX might be required for Ultrix. 

	* changed command issued to loader to set -systype and to get
          crt1 crtn instead of crt0.

        * changed predefines for cpp to agree with RISC-OS

	* tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION)
	  so that user does not have to go in and change tm-mips.h anymore

	* cpp defines mips host_mips unix and SYSTYPE_SYSV
	  or SYSTYPE_BSD43. 

Fri Sep 22 00:31:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* pyr.md (andsi3): Flush spurious paren.

	* Makefile (hard-params): Don't use LIBS or LIBDEPS.

	* rtl.c (init_rtl):
	Use malloc to allocate the string for format of CONST_DOUBLE.
	Don't fail to store in rtx_format.

Thu Sep 21 00:33:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* print-tree.c (dump): Move decl of P in REAL_CST case.

	* fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE.

	* c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0.

	* mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN.
	For alternative 2, output just 2 store insns, not 3.

	* dbxout.c (dbxout_symbol): Optionally go to .data for
	a static file-scope variable.
	* tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this.

	* varasm.c (output_constant, force_const_mem):
	ASM_OUTPUT_DOUBLE_INT now takes rtx as argument.

	* gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h.
	Define _VARARGS_H.

	* stddef.h (size_t): Don't define it if _SIZE_T macro is defined.
	(NULL): Undef any previous defn.

	* cexp.y (NULL): Don't define if already defined.

	* emit-rtl.c (force_next_line_note): New function.
	* stmt.c (expand_function_start): Call that just before returning.

Wed Sep 20 01:22:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (asm_clobbers):
	Allow string concatenation: call combine_strings.

Mon Sep 18 00:04:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): If calling const function, don't defer
	pops for this call.

	* c-parse.y (yylex): When float constant ends in `f',
	actually truncate to a single-float.

Sun Sep 17 01:36:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (SWITCH_TAKES_ARG): -A takes an arg.
	(link_spec): Inhibit start files when -A.

	* convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS.

	* gnulib2.c (__fixunsdfdi): After removing top half, A can be neg.
	(__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW--
	use .s.high and .s.low to extract words from long_long.

	* Makefile (gnulib2): Run `./gcc'.

	* Makefile (float.h): Use `make', not `$(MAKE)'.
	(hard-params.o): Use `$(srcdir)' in deps as in commands.

	* out-tahoe.c (output_move_double): Handle constant operand 1.

Sat Sep 16 01:15:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (emit_reload_insns): Put death note for input reload reg
	even if reload was inherited.

	* out-i860.c (output_block_move): Typo loading size of block.

	* m68k.md (dbra patterns): Do CC_STATUS_INIT.

	* cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate.

Fri Sep 15 00:39:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst): Don't combine (subreg (mem))
	if subreg's mode is wider than mem's mode.

Thu Sep 14 04:33:51 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (clean): Delete temp files used in making gnulib.

	* tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options.

Tue Sep 12 01:06:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints.

	* mips.md (cmpsi + bleu peephole): Should output unsigned insn.

	* expmed.c (store_bit_field, extract_bit_field): If loading mem
	into reg for bit field insn, don't use a larger mode than insn wants.

	* Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid
	wrong order of making when parallel.

	* Makefile (float.h): Do use $(MAKE) to run recursive make.

Mon Sep 11 00:49:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (main): Test for missing arg after -o, etc.

	* tm-next.h: Nearly completely new.

	* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h.

	* cccp.c: Cast some args to strcpy and strcat.

	* genoutput.c (error): Declare arg S.

	* tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files.
	* config.gcc: New item for pyr.

	* gvarargs.h: If __pyr__, use va-pyr.h.

Sun Sep 10 00:48:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (inc_for_reload): Really return the first of the insns.

	* stor-layout.c (build_int): Memoize size nodes for sizes <= 32.

	* loop.c (check_dbra_loop): Don't reverse a biv that is used
	in between its update and the loop endtest insn.

Sat Sep  9 02:10:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (genop): Don't use `combine' for nonexplicit constants.
	Handle some identity elements, etc., directly.
	(layout_basetypes): Function deleted.
	(layout_record): Ignore any TYPE_DECLs in the fieldlist.
	Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type.
	(layout_union): Delete error check for base types.
	Ignore any TYPE_DECLs in the fieldlist.
	(layout_type): Copy layout info directly into all variants of type.
	Delete unused local `x'.

	* mips.md (movdi): Handle constant source operand.
	(movsi): Some output code moved to output_load_immediate.
	* out-mips.c (output_load_immediate): New function.

	* config.gcc (iris): Use tm-iris.h and xm-iris.h.

	* integrate.c (copy_for_inline): Copy all nonconstant MEM addresses.

	* tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit
	bytes of 0 if in text segment.

Fri Sep  8 19:15:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET.

Thu Sep  7 00:16:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (function_cannot_inline_p): Fn is "not even close"
	only if > 3 * max_insns.

	* toplev.c (fatal_insn_not_found): New fn.
	* genextract.c (main): Make insn_extract call that fn.

	* integrate.c (expand_inline_function): Don't abort about bad offset
	in a parm whose type is error_mark_node.
	Make another syntax level to hold parm destructors.

	* tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
	Increment push_loc after, not before, each reg save or restore.
	When storing reg 9 or 29, use offset tsize-4.
	Make tsize larger by 4 initially.
	(STARTING_FRAME_OFFSET): -8, not -4.

	* gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir
	if they exist.

	* toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort):
	New function which can be used to replace `abort'.

	* toplev.c (main): Save argv, argc in save_argv, save_argc.

	* jump.c (delete_insn): Always advance NEXT across deleted insns,
	in case not optimizing.  Fixes setting current_function_returns_null.

	* symout.c: Include stddef.h with <...>.

Wed Sep  6 00:39:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'.

	* combine.c (combine_instructions): Dont call record_dead_and_set_regs
	if insn has become a NOTE.

	* reload.c (combine_reloads): Update reload_when_needed.

	* jump.c (delete_insn): If delete label on ADDR_VEC, delete table too.
	(jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table.

	* gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long,
	and/or its two halves, unsigned.

	* reload1.c (reload): When setting double_reg_address_ok,
	require it to be offsettable.
	* out-sparc.c (output_fp_move_double): Now safe to use std
	for all reg+reg addresses.

	* vax.md: Add another simplified-casesi pattern for operand 0 constant.

	* cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0.
	Don't alter WIDTH for that purpose based on the operands.

	* stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect.

	* c-parse.y (ALIGNOF unary_expr): Find a larger value if possible.

	* reload.c (combine_reloads): Don't combine an output address reload.
	(find_reloads): Call combine_reloads after setting reload_when_needed.
	(find_reloads_address): Update OPERAND if copy the operand.

	* cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad.

Tue Sep  5 14:12:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (find_dummy_reload): Don't use the output reg if it is
	a fixed reg which can overlap with other regs.

	* cse.c (exp_equiv_p): Two vectors must have same length.

	* tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong.

	* optabs.c (expand_fix): Undo previous change (unsigned conversion).
	It doesn't work.

	* gcc.c: Pass -i option to cpp.  It takes an arg.

	* cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices.

	* Makefile (gnulib): Create it in tmpgnulib, then rename at the end.

	* i860.md (movdi from constant pattern): Fix `st' opcode typos.

	* Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS.

Fri Sep  1 03:43:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas.
	(ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary.

	* integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes.

	* Makefile (clean): Delete dbr and jump2 dumps.

	* Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir.
	This avoids trouble with -I options, etc.

Thu Aug 31 15:07:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (emit_reload_insns):
	Be specific moving REG_DEAD notes to an output reload.
	Sometimes move them to output-operand-address reloads.

	* out-sparc.c (output_fp_move_double): Very cautious about std.
	Use it only for something visibly aligned, or for an array element.

	* cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME.
	(pfatal_with_name) [VMS]: Return VMS system call error code as status.
	(cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE.

	* xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000).

	* expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE.

	* gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int'
	to avoid infinite recursion.

Wed Aug 30 13:28:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (skip_consec_insns): Skip NOTEs.

	* loop.c (general_induction_var): If G or V is a nonreplaceable giv,
	give up.  If G is allocated here, consider it replaceable.

	* stupid.c: Make uid_suid, reg_where_born and reg_where_dead
	vectors of ints, not short.

Tue Aug 29 00:21:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-iris.h: Fix typo in formfeed char.

	* out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'.

	* loop.c (general_induction_var): Don't set G from 2nd op. of MINUS,
	since that would negate the result.

Mon Aug 28 00:16:36 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* dbxout.c (dbxout_symbol): When we need a pointer type, don't
	record it in TYPE_POINTER_TO, lest it not live as long as its target.

	* tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE.

	* Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir.
	(hard-params.o): Copy it into current dir before compiling.
	(STAGESTUFF): Include the stamp-*.[ch] files.

Sun Aug 27 13:59:39 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31.

	* integrate.c (expand_inline_function): Ignore insns to set value reg
	if we don't want the value.

	* varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME.

	* Makefile (stamp-gnulib2): Don't explicitly delete old members,
	just replace them.

	* m68k.md, alliant.md (trunchiqi): Use movew if moving from memory
	or from a const_int.

	* integrate.c (expand_inline_function): Set first_parm_offset
	later on, after computing the args, in case those args
	contain inline function calls.

	* alliant.md (movqi): Like recent change in m68k.md.

Sat Aug 26 00:26:03 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000.
	* tm-news.h (CPP_PREDEFINES): Add mc68000.

Fri Aug 25 15:37:35 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* optabs.c (expand_fix): Can convert to unsigned int
	by subtracting 2**(N-1), converting to signed, and adding 2**(N-1).

	* reload.c (find_reloads_address): For out-of-range stack slot,
	reload the displacement into a reg.
	(find_reloads_toplev): For subreg of a reg with a reg_equiv_address,
	turn the whole thing into a memref.

Thu Aug 24 14:07:03 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* c-decl.c (grokdeclarator): If function is declared `extern inline',
	set current_extern_inline.
	(start_function): In that case, set TREE_EXTERN in function decl.
	* toplev.c (rest_of_compilation): In that case, don't really compile.
	(compile_file): Don't output such functions at the end either.

	* c-typeck.c (build_function_call): Do set NAME if we have one.

	* Prevent any variability in results of qsort.
	* stupid.c (stupid_reg_compare): Compare by regno as last resort.
	* global-alloc.c (allocno_compare): Same idea.
	* local-alloc.c (qty_compare_1): Same idea.
	* reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea.

	* cccp.c (macroexpand): If read one arg, but it's whitespace,
	consider that 0 args for checking number of args.
	Improve plurals in error messages.

	* expr.h (inhibit_defer_pop): New name for current_args_size,
	now declared here.
	(NO_DEFER_POP, OK_DEFER_POP): Moved here.
	* expr.c: Names related to current_args_size renamed.
	(clear_current_args_size): Deleted.
	* stmt.c (expand_function_start): Init inhibit_defer_pop here.

	* stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP.
	(expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops.

	* Makefile (c-parse.tab.c): Pass -o option to Bison.

Wed Aug 23 23:14:06 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* expmed.c (store_bit_field, extract_bit_field):
	Use GET_MODE_WIDER_MODE to scan possible modes for bestmode.

	* Makefile (stamp-gnulib2): Discard error messages from `ar d'.

Tue Aug 22 00:31:51 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* final.c (output_source_line): In COFF, don't output `.ln 0'.

	* Makefile (stamp-gnulib2): Depend on gnulib.  For parallel make.

	* stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0.

	* i386.md (truncdfsf2): Pay attention whether stack top is dead.

Mon Aug 21 22:02:40 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* reload1.c (choose_reload_regs): Don't use regno uninitialized,
	in the code that does find_equiv_reg.

Sun Aug 20 00:06:47 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg.

	* explow.c (memory_address): Handle a hard reg in wrong reg class.

	* stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return
	reg when returning address of structure value block.

	* integrate.c (save_for_inline): Preserve integrated bit on insns.

Sat Aug 19 14:20:07 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)

	* combine.c (subst): Don't change (subreg:M (mem:N ...)) to 
	(mem:M ...) if address is mode-dependent.

	* config.gcc: Copy and alter Makefile for any srcdir except `.'.
	In that case, make a .gdbinit as well.

	* sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative.

	* vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS.

Fri Aug 18 12:24:52 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* alliant.md (movqi): Change move to mov in assembler code.

	* integrate.c (expand_inline_function):
	Handle args passed in regs and copied to slots reached via arg ptr.

	* out-sparc.c (output_delayed_branch):
	Do alter_subreg on operands of delay insn.

	* reload1.c (choose_reload_regs): Look for a reg to share
	before one that we won't share.

	* expr.h: Define OPTAB_MUST_WIDEN.
	* optabs.c (expand_binop): Handle that case.
	* expmed.c (expand_shift): Use that when widening lshift to ashift.

	* optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars.

	* gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero.
	Otherwise tried to shift by 32.
	Also replace constant 32 by something symbolic.

	* final.c (output_source_line): Output line number in COFF
	even if wrong file.

Thu Aug 17 15:16:34 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* Makefile (version.o): Make this a target; specify source file.
	(obstack.o): Likewise.

	* config.gcc (i860): New alternative.

	* i860.md (movstrsi): Record the alignment as operand 3.
	Renumber following (internal) operands.
	* out-i860.c (output_block_move): Rewrite as in out-sparc.c.
	(output_size_for_block_move): Likewise.  And don't
	subtract alignment from the size.

Wed Aug 16 13:27:12 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* loop.c (combine_movables): Don't combine zero-extend
	registers that live outside the loop.

	* integrate.c (expand_inline_function): Use copy_to_mode_reg
	to set up this_struct_value_rtx, to handle sums right.

	* Makefile: Use $(srcdir) in bison output files used as deps.
	Supply some missing deps.
	(*.info, doc): *.info files go in srcdir.

Tue Aug 15 00:11:12 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* i860.md, tm-i860.h, out-i860.c: New files.

	* c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL
	is a definition or just a decl.
	Combine code to preserve various things from old definition
	through a declaration.

	* config.gcc: Scan all args at beginning, setting variables.
	Arg of form -srcdir=... sets srcdir explicitly.
	srcdir now doesn't contain a slash, and is used with a slash.

	* Makefile (install): Copy header files and gcc.1 from srcdir.
	But copy float.h from current dir.  (Remove that from USER_H.)
	(various): Use new variable INCLUDES to get the -I options.
	Add -I. at the beginning of these.
	(gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES.
	Also, get source file from srcdir.
	Also, depend on $(CONFIG_H).
	(alloca.o): Get alloca.c from srcdir.

	* reload1.c (emit_reload_insns): Bug in last change:
	don't fail to set this_reload_insn.

	* Makefile (Bison rules): Specify $(srcdir) for target and source.
	(Explicit C rules): Specify $(srcdir)/ for source in commands.
	Use sed to eliminate `./' in normal case.
	(insn-*.c): Use $(srcdir) to run move-if-change.

	* config.gcc: Check . and .. for the sources.
	If in .., use that when making links.
	Also, copy Makefile, alter srcdir in it, and add a VPATH.	

	* stmt.c (expand_end_case): When converting CONST_INT index
	to an INTEGER_CST, sign-extend if signed type.

Mon Aug 14 13:51:08 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* c-decl.c (duplicate_decls): Warn for qualifier mismatch
	only if pedantic; don't consider it a type mismatch.
	Merge the qualifiers of the two decls if the types match.

	* expmed.c (store_bit_field): For insv, memref displacement
	always counts in bytes, regardless of unit fetched.
	When checking predicate of op0, accept any mode.

	* optabs.c (expand_float): One call to can_float_p had args backwards.

	* loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn.
	Increment label's use count rather than storing 2.

	* Makefile: Instead of $<, which fails in certain makes,
	use $@ and then substitute in the name with sed.

	* out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests.
	Use orcc insns to store the result and set cc's for it.

	* sparc.md (scc combination patterns):
	Use operands[0] as basis for recorded cc value.

	* gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions.

	* gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted.
	(union longlong, union double_di): Deleted.
	(HIGH, LOW): Deleted.
	These were deleted because most did not handle full range of DI
	and they didn't use the right calling convention for DI.

Sun Aug 13 13:06:45 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* c-typeck.c (comptypes): Qualifiers must match.
	(Was already true for scalars.)
	Also, array elt qualifiers must match.

	* tm-apollo68.h (STRUCT_VALUE): Make it 0.
	(This was done before and lost.)
	* out-i386.c (function_epilogue): Use ret $4 to pop structure address.
	(This was done before and lost.)

	* out-i386.c (call_top_dead_p): Don't fail to check
	the rtx code of the insns themselves.
	(This was done before and lost.)

	* out-sparc.c (output_block_move): If align is 8, make it 4.

	* typeclass.h: New file.
	* expr.c: Include it.
	(expand_builtin): Use those codes in __builtin_classify_type.

	* Makefile (all, lang-c): Reinstall gnulib2.

	* Makefile (gnulib2): Don't give up if `ar d' fails.

	* expr.c (emit_library_call): New 2nd arg NO_QUEUE.
	All callers changed to pass it.
	* optabs.c (expand_binop, expand_unop): Don't call emit_queue.
	Instead, pass 1 for NO_QUEUE to emit_library_call.

Sat Aug 12 12:05:22 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* reload1.c (emit_reload_insns): Decision for where to put input
	reload insn is now common to ordinary case and auto-increment.
	Likewise, updating these positions afterward.

	* stmt.c (assign_parms): Treat last named arg as nameless.
	* expr.c (expand_call): Likewise.

	* explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT.
	(copy_addr_to_reg): Use copy_to_mode_reg.

	* expmed.c (store_bit_field): Handle case where insv rejects memrefs.

	* tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact
	that this is not called when LOG is 0.

Fri Aug 11 16:39:51 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* emit-rtl.c (get_lowpart): For multi-word, in error check,
	test the unit size of the containing mode.

	* cccp.c (macroexpand, dump_all_macros): Return void.
	(macroexpand): Cast sprintf arg to char*.
	(error, warning, error_with_line): Declare first arg char*.

Thu Aug 10 21:42:13 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* expr.c (expand_call):
	Use force_operand to copy arithmetic to register.

	* dbxout.c (dbxout_symbol): Go back to N_FUN for const variable.

	* integrate.c (expand_inline_function): Use proper machine mode
	for a structure value in memory at address passed by caller.

Wed Aug  9 15:21:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc: Delete unnecessary variable assignments in case stmt.
	(isi68-nfp): New alternative.

	* combine.c (try_combine): Don't substitute for a register
	which is being explicitly clobbered.

	* This change was requested for C++.
	* varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *.
	* toplev.c (rest_of_decl_compilation): Likewise.
	* c-decl.c (finish_decl): Change call to rest_of_decl_compilation.

	* tree.h (struct tree_decl): Pack machine_mode into 8 bits.

	* explow.c (memory_address, copy_to_reg):
	Use force_operand to copy arithmetic to register.

	* tm-isi68-nfp.h: New file.
	* tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that
	change CPP_SPEC and LINK_SPEC.
	(ASM_FILE_START): No `.globl fltused' if soft-float.

Tue Aug  8 21:50:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS
	bits and take modulo, so we don't get negative numbers.

	* varasm.c (record_constant_1, compare_constant_1):
	Record and compare the width of an integer.

	* varasm.c (assemble_function, assemble_variable, get_or_assign_label):
	(force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1.

	* c-decl.c (duplicate_decls): Consider const and volatile as part of
	type when checking for match and when installing new type into OLDDECL.

	* expr.c (do_store_flag): Make sure target fits operand predicate.
	Also, omit the AND insn when true-value is 1
	and the mode we get is wider than the one we want.

	* genrecog.c (main): Make insn-recog.c include real.h.

Mon Aug  7 16:58:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* genemit.c (main): Define `operands' as `emit_operands',
	not `recog_operands'.

	* reload1.c (emit_reload_insns): Don't copy back a dead output reg.

Sun Aug  6 13:56:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sdbout.c (plain_type_1, sdbout_one_type): Use the main variant.
	(sdbout_type_fields): No need to check TREE_ASM_WRITTEN here,
	since sdbout_one_type does that.

	* expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input.

	* fold-const.c (fold_convert): Attempt to avoid overflow
	when converting real to integer.  Use unsigned conversion for
	low part; always convert as positive and then change sign;
	subtract high part before converting low part.
	Also, check for real values out of range for chosen int type;
	warn and do not convert.

	* tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here.
	(CPP_PREDEFINES): Remove mc68k, add m68k and mc68000.
	[HPUX_ASM]: Define CPP_SPEC here as in the other case,
	but add __HPUX_ASM__ to each alternative.

	* tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE.
	* tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it.

	* Makefile: Use $< wherever appropriate.
	Also put definitions of customization vars before the comments
	saying how to override them.

Sat Aug  5 14:15:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (sne): Typo in opcode name.

	* tree.h (struct tree_identifier): Delete redundant/unused error_locus.

Fri Aug  4 00:04:10 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (const_hash, compare_constant_1, record_constant_1):
	Compare types only for record constructors, not for array constructors.

	* dbxout.c (dbxout_parms): When outputing parm from home in local slot,
	with address from the RTL, don't do big-endian correction on it.

	* c-typeck.c (build_unary_op): Do default conversion for unary +.

	* cccp.c (rescan): Accept comments between macro and its args.

	* c-decl.c (lang_decode_option): -traditional implies writable strings.

	* cccp.c (trigraph_pcp): Make warning msg more accurate.

	* c-typeck.c (c_expand_asm_operands): Delete the default promotion
	which was inserted mysteriously since 1.35.

	* global-alloc.c (global_conflicts): Allocate regs_set only once.
	Make it twice as big since clobbers are stored twice.

	* sparc.md (block move patterns): Record and use alignment operand.
	* out-sparc.c (output_block_move): Get alignment from there.
	(output_size_for_block_move): Greatly simplified.

	* tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it.

	* stor-layout.c (layout_record): Anonymous bitfields don't affect
	overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case.

	* loop.c (strength_reduce): Prevent hard reg from becoming biv or giv.

	* combine.c (subst): Simplify (eq (neg ...) (const_int 0)).

Thu Aug  3 13:08:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (fold_rtx): For (op var const) special cases, also check 
	for constant as first argument.

	* c-decl.c (pushtag): For global_binding_level, make permanent nodes.

	* expr.c (do_store_flag): Put the CLOBBER before the comparison.

	* expr.c (emit_push_insn): Conditionalize recent changes
	on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc.

	* out-sparc.c (gen_scc_insn):
	Don't be confused by CLOBBER emitted by do_store_flag.
	Skip past such insns looking for last_insn.
	Don't alter last_insn; instead, patch it to a NOTE and emit new insn.

	* varasm.c (const_hash, compare_constant_1, record_constant_1):
	For a CONSTRUCTOR, hash/compare/record type as well as elts.

	* cse.c (cse_insn): July 18 change was wrong.
	Now, invalidate at the beginning any regs explicitly clobbered
	so they will not be substituted for if they appear as inputs.
	* sparc.md (movstrsi): Copy addresses to temp regs, then use them.

	* loop.c (record_giv): When comparing life spans for setting
	->forces, use luids consistently, not uids.

	* sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32.

Wed Aug  2 17:50:30 1989  Richard Stallman  (rms at sugar-bombs)

	* mips.md (patterns to move a subreg): Deleted.

Sun Jul 30 19:23:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (process_command): Skip `-b' like `-B', in 2nd scan.

	* xm-sunos4.h: Deleted.
	* tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead.
	* tm-sun4os3.h: Undef it here.
	* tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC.
	* config.gcc: Use those new files where needed.

	* config.gcc: Delete sun3-fpa and sun3-os4-fpa.
	* tm-sun3-fpa.h: Deleted.

	* cccp.c (do_include): Mention even non-ex files for -M.

	* out-mips.c (addr_compensate): Handle HImode.
	* mips.md (Set HI from subreg of SI rule):
	Allow operand in memory.

	* mips.md (cmpqi, cmphi): Patterns deleted.
	(cmpsi, cmpsf, cmpdf): Change predicates to register_operand.

	* cexp.y (rule for ?:): Result is unsigned if either operand is.

	* expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs
	at the end, in case the rest of the push does a function call.

	* reload1.c (alter_frame_pointer_addresses):
	After altering a PLUS, re-fetch CODE before scanning subexps.

	* stmt.c (assign_parms): Don't copy the arg pointer value
	if it is also the frame pointer.  If we do copy it,
	inhibit REG_EQUIV notes for parms copied into pseudo regs

	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
	Set up filename and lineno fields of copy of ASM_OPERANDS.

Sat Jul 29 18:58:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (expand_inline_function): Handle struct-value-addr
	passed in memory just like that passed in reg:
	in either case, translate the pseudo-reg made in
	expand_function_start.
	(function_cannot_inline_p): Permit inlining in that case.
	But reject it if using pcc-style return convention.

	* stor-layout.c (layout_type): Consider STRICT_ALIGNMENT
	for ARRAY_TYPE just as for RECORD_TYPE.

Wed Jul 26 12:54:59 1989  Richard M. Stallman  (rms at mipos3)

	* cse.c (fold_rtx): If WIDTH is zero for binary operator,
	look at the modes of the original operands.

	* cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT).
	(predecide_loop_entry): Likewise.
	(fold_rtx): Look at it, for (if_then_else (cc0) ...).

	* expr.c (expand_builtin): Pass back return value from
	__builtin_saveregs.

	* stmt.c (assign_parms): Allow arg pointer reg not to be fixed.
	If it is not, copy it to a pseudo reg and use that later on.

Tue Jul 25 15:42:04 1989  Richard M. Stallman  (rms at mipos3)

	* expr.c (expand_builtin): New builtin __builtin_classify_type.
	* tree.h, c-decl.c: Additional support.

	* flow.c (mark_used_regs): Treat arg pointer like stack pointer.

	* expr.c (emit_library_call):
	Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc.

Mon Jul 24 11:18:10 1989  Richard M. Stallman  (rms at mipos3)

	* loop.c (regs_match_p): Fix braino.

	* integrate.c (copy_for_inline, copy_rtx_and_substitute):
	Make ASM_OPERANDS constraint vector be shared like operand vector.

	* xm-iris.h: New file.

	* Makefile (stage4): New target.

	* gnulib2.c (badd, bsub, bmul, bdiv): If want long value from
	arithmetic, widen the operands first.
	(__div_internal aka bdiv): Rename to __bdiv.

	* sparc.md (seq combination patterns): Fully initialize cc_status.

	* expr.c (emit_push_insn): Like July 19 change, for BLKmode.

	* stmt.c (expand_function_end): Stack-restore for alloca
	is now done after the return_label.

	* loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg.

	* integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs.
	(expand_inline_function): Always create parm_map.
	Handle structure value that way if nec. even if no parms.
	Otherwise, find the pseudo used in the function to hold the
	structure address, and map it to a new pseudo.

	* expr.c (expand_call):
	Use mark_addressable to make FNDECL addressable.
	* c-typeck.c (mark_addressable): No longer static.

	* cse.c (cse_insn): Modify last change: don't canon_reg
	for hard regs inside clobbers.

	* expr.c (expand_assignment): ALIGN arg to store_field comes from
	the structure, not from the value stored.

Fri Jul 21 16:23:45 1989  Richard M. Stallman  (rms at mipos3)

	* stmt.c (warn_if_unused_value): Don't warn for a cast
	around a MODIFY_EXPR.

	* tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it.
	(CPP_PREDEFINES): Add some.

	* combine.c (simplify_and_const_int):
	Simplify (and (ashiftrt (zero_extend FOO) N) M).

	* optabs.c (expand_binop): When widening,
	for some operations we need not actually extend.

Thu Jul 20 16:16:35 1989  Richard M. Stallman  (rms at mipos3)

	* Makefile (insn-emit.o): Depend on insn-codes.h.

	* stmt.c (check_for_full_enumeration_handling): 
	Handle all cases for TYPE_NAME of enum type.

Wed Jul 19 17:00:39 1989  Richard M. Stallman  (rms at mipos3)

	* fold-const.c (fold_convert): Don't fail to force_fit_type.

	* expr.c (emit_push_insn): When pushing only part of scalar on stack,
	adjust stack offset not to count the words not pushed.

	* stmt.c (expand_function_end): Always put return structure address
	in return register.

	* c-typeck.c (process_init_constructor): Assume 0 for nameless field.

	* recog.c (general_operand, memory_operand):
	Check validity of mem address using the mode of the MEM.

	* fixincludes: When calling egrep, use redirect, not -s.

Tue Jul 18 11:18:55 1989  Richard M. Stallman  (rms at mipos3)

	* Makefile (bootstrap*): Pass value of libdir down.

	* cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs.

	* cse.c (cse_insn): Don't use no_labels_between_p to check
	for jump to following label; find following label and compare.

	* combine.c (try_combine): Don't substitute into subreg(x)=y
	if modes of x and y are not tieable.

	* out-i386.c (call_top_dead_p): Don't fail to check
	the rtx code of the insns themselves.

	* i386.md (tstsf, tstdf): Don't discard TOS if not dead.

	* stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P
	for pseudos which live across jumps or labels.
	(stupid_life_analysis): Update last_jump_suid, last_label_suid.
	(stupid_mark_refs): Use those to set reg_crosses_blocks.
	(stupid_find_reg): Check that data, passed from stupid_life_analysis.

	* toplev.c (main): Avoid using caddr_t.

	* mips.md (inverted bgeu peephole): Typo in opcode.

Mon Jul 17 12:29:45 1989  Richard M. Stallman  (rms at mipos3)

	* i386.md (mulb patterns): Turned off due to assembler bug.

	* rtl.c (read_name): Use 0, not NULL, for character.

	* alliant.md (movqi): Typos in mov opcodes.

	* tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P):
	Use CONST_DOUBLE_LOW, etc. 

	* stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK,
	not just whether defined.

	* i386.md (seq, etc.): New patterns.
	* expr.c (do_store_flags): If result is wrong mode, 
	ensure rest of bits are cleared.
	Before storing low part of TARGET, emit a CLOBBER for it.

	* i386.md (load address): Use an immediate add if possible.

	* i386.md (ashlsi3): Don't generate leal; shift is faster.

	* Now struct_value_rtx is 0 to treat it as a parm.
	* expr.c (expand_call): Implement that.
	* integrate.c (expand_inline_function): Don't freak out.
	* tm-apollo68.h (STRUCT_VALUE): Make it 0.

	* On 386, called function must pop the structure value address.
	* tm-i386.h (STRUCT_VALUE): Don't change this.
	Address is now pushed but not counted as a parm.
	* out-i386.c (function_epilogue): Use ret $4 to pop that address.
	* output.h: Declare the current_function_... variables.
	* final.c: Include output.h.

	* varasm.c (make_decl_rtl): Insert missing `else', validating reg decl.

Fri Jul 14 14:12:17 1989  Richard M. Stallman  (rms at mipos3)

	* out-sparc.c, out-spur.c (output_move_double):
	Fixed typo, addreg0 => addreg1.

	* c-decl.c (lang_decode_option): Handle -fshort-enums.
	(finish_enum): In that case, give enum minimum number of bytes.
	* toplev.c (main): Default flag_short_enums.
	* toplev.c, flags.h (flag_short_enums, flag_signed_char): 
	Define those flags here, not in c-decl.c and c-tree.h.

	* i386.md (mulqi3, umulqi3): New patterns.

	* c-convert.c (convert_to_integer): Tighter restrictions on
	distributing truncation through max, min, and multiplication.
	If operands were extended from unsigned, make the operation
	unsigned.

	* cccp.c (main): Fix bug where #include <...>, when -I- was used,
	failed to search standard dirs and/or searched some dirs
	intended only for #include "...".

	* tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE):
	Increment push_loc after store or load, not before.

Thu Jul 13 11:24:30 1989  Richard M. Stallman  (rms at mipos3)

	* emit-rtl.c (add_insn_after): Don't update last_insn
	if insn is in a sequence.  Instead, update end of sequence.

	* stmt.c (fixup_var_refs): Update end of stacked sequence.

	* stmt.c (expand_function_start): Set result rtl before assign_parms.

	* optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries.

	* stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR.

	* stmt.c (expand_function_start): Make sure parm_birth_insn
	is a NOTE.

	* Makefile (clean): Delete tmp-insn-*.

Wed Jul 12 14:24:12 1989  Richard M. Stallman  (rms at mipos3)

	* i386.md (mulqi3): Restrict operand 2 to `q' reg.

	* reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK
	for regs to be inherited.
	Also check HARD_REGNO_MODE_OK at end for modes of both
	reload_in and reload_out as well as reload_mode.

	* Makefile (maketest): Update for config subdir.

Tue Jul 11 16:29:57 1989  Richard M. Stallman  (rms at mipos3)

	* integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT.

	* make-cc1.com: Changes by Angel Li.
	Define variables CC, CFLAGS, LDFLAGS, LIBS.
	Use LIBR library, not LIB.  Specify a /INC in CFLAGS.
	Use MCR to run the gen* files.  Add some comments.
	* make-cccp.com: Similar.
	* config-gcc.com: New file.

	* stmt.c (assign_parms): Compute parm alignment from passed type.

	* c-typeck.c (actualparameterlist): Instead of truncating
	and then promoting for PROMOTE_PROTOTYPES, go straight to int.

	* c-parse.y (setspecs): Save old current_declspecs on a stack.
	(decl, component_decl): Restore from that stack.

Wed Jul  5 15:01:00 1989  Richard Stallman  (tiemann at yahi)

	* tm-aix386.h, xm-aix386.h: New files.

	* loop.c (check_dbra_loop): Handle either test or compare
	for insn two before loop end; detect and reject anything else.

	* expr.c (expand_call, expand_builtin): If alloca is done,
	set current_function_calls_alloca.
	* stmt.c (expand_function_end): If so, generate code to save and
	restore the stack pointer, if not EXIT_IGNORE_STACK.

	* ns32k.md (movsi): Fixes for moving from fp or sp.

	* tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars.

Tue Jul  4 11:01:00 1989  Richard Stallman  (tiemann at yahi)

	* reload1.c (choose_reload_targets): Don't depend on
	reload_spill_index when cancelling invalid inheritance.
	Also, abort if trying to preserve death info
	on a spill reg used in operand addressing.

	* fold-const.c (fold): Don't fold "foo"[n] here.
	* expr.c (expand_expr): Do it here.
	Handle wide strings correctly.

	* i386.md (movsf,movdf): Disallow mem-mem moves.
	Enable mem-to-reg moves.

	* c-decl.c (finish_{struct,enum}): Warn if inside parm decls.
	(in_parm_level_p, declare_parm_level): Record when inside.
	* c-parse.y (parmlist, parmlist_or_identifiers): Call
	declare_parm_level.

	* c-decl.c (parmlist_tags_warning): Revise warning message text.

	* tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler.

	* tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars.

	* c-typeck.c (decl_constant_value): Use only literal values.

Sat Jul  1 17:29:54 1989  Richard Stallman  (tiemann at yahi)

	* integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs.

	* stmt.c (expand_function_start): Set new global
	current_function_returns_pointer.

	* stmt.c (get_frame_size): Return the size, not the offset.
	* integrate.c (expand_inline_function): When setting FP_DELTA,
	compensate for this change.
	* tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h
	(FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate.

	* out-mips.c (function_arg): Return 0 for BLKmode.

	* tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows.
	* out-mips.c (function_inarg): Delete; no longer used.

	* mips.md (addsi3): Use register_operand for operands 0,1.
	(load address): New pattern, following movsi.
	(fix_trunc*): Use trunc insn, not cvt.
	(cmpfs + bgt peephole): Operands were backwards in template.

	* gcc.c (main): Record in explicit_link_files which input files go
	straight to linker.  If linker is not run, complain about them.
	(execute): Increment execution_count, to show we were called.

	* gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc.,
	so we find all switches that could be valid.

	* varasm.c (output_constructor): Position fields according to
	DECL_OFFSET; don't try to compute alignment here.

	* tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this.

	* reload1.c (emit_reload_insns): Fix stupid error in last change.

	* c-decl.c (duplicate_decls): If redeclaring builtin, give error is
	type mismatched; otherwise warn only if -W.

	* jump.c (jump_back_p): Verify that PREV is not null.

Mon Jun 26 13:50:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (choose_reload_regs): If number of reloads needing
	spill regs exceeds n_spills, don't inherit any reloads.

	* sdbout.c (sdbout_record_type_name): Dumb error in last change.

	* reload1.c (emit_reload_insns): Extend last change: don't use
	equiv reg if reg is in use at same stage of insn, either.

Sun Jun 25 00:00:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (emit_reload_insns): Don't use an equivalent register
	to reload from, if that register was used for reloading
	earlier in this insn.

	* sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the
	type name.  Get rid of TYPE_TAG_NAME as separate macro.

	* optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks.

	* reload1.c (choose_reload_regs): Typo, clearing reload_override_in.

	* tm-i386.h: Add register classes SIREG and DIREG.
	(enum reg_class, REG_CLASS_NAMES): Define class names.
	(REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents.
	(REG_CLASS_FROM_LETTER): Define letters `S' and `D'.

Sat Jun 24 00:17:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (keep_next_level): New function.
	(struct binding): New slot `keep' says make a LET_STMT for this level.
	(pushlevel, poplevel): Implement that.
	* c-parse.y (stmt exprs): Call keep_next_level.

	* sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE.
	Correct for size less than 0.
	(plain_type): Correct for size less than 0.

	* global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber.

	* reload1.c (order_regs_for_reload): Among regs explicitly used,
	prefer those used less often.

	* reload1.c (choose_reload_regs): If we find alternate place
	to reload from, verify it after all reloads assigned.
	New variable reload_override_in used for this.

	* combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and
	STRICT_LOW_PART for place being set.
	(subst): When using reg_last_set to find what a register contains,
	verify the entire register was set.

	* toplev.c (rest_of_decl_compilation): Report invalid register name.

Fri Jun 23 13:19:41 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-hp9k3bsd.h: New file.
	* config.gcc: New target hp9k320-bsd.

	* gcc.c (record_temp_file): Don't add a name twice to one queue.

	* stmt.c (expand_expr_stmt): Call warn_if_unused_value.
	(warn_if_unused_value): Code extracted from expand_expr_stmt.
	Recurse to handle COMPOUND_EXPR.  Don't warn about COND_EXPR.

	* tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h;
	return operand unchanged.

	* reload1.c (emit_reload_insns): Don't use recog_memoized
	on an asm.

	* jump.c (delete_insn): Update last_insn.
	* emit-rtl.c (set_last_insn): New function.

	* reload1.c (reload): Put a note at end of insn chain.

	* gcc.c: Put cpp output of .S file into a .s file.

Thu Jun 22 22:14:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* optabs.c (expand_binop, expand_unop): Emit queue before library call.
	It is done within emit_library_call, and cse screws up if there is a
	queued insn in the middle of a cse-able sequence.

Wed Jun 21 11:57:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (CPP_PREDEFINES): Define -Dunix.

	* reload.c (combine_reloads): Combined reload needed for entire insn.

	* c-parse.y (yylex): Braino checking for out-of-range escape seq.

	* stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS.
	(layout_struct): Don't let a bitfield cross the storage unit
	of its type, if PCC_BITFIELD_TYPE_MATTERS.

Tue Jun 20 00:03:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify
	alignment of the constant.
	CONSTANT_ALIGNMENT is a new optional macro.

	* varasm.c (force_const_mem, get_or_assign_label):
	Make buffer bigger.

	* toplev.c (print_target_switch_defaults): New fn called for -version.

	* toplev.c (compile_file): Detect error closing output file.

	* stor-layout.c (fixup_unsigned_type): Don't shift by 32.

	* stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn.

	* stmt.c (expand_end_case): If index is narrow and cannot be
	directly compared, widen it just once.

	* c-parse.y (yylex): Support multi-character constants.
	Thorough rewrite of char constant parsing.

	* c-decl.c (pushdecl): Replace local extern function decl with
	previous global decl if latter is inline, or builtin, or has
	more arg type info.

	* hard-params.c (xmalloc): Define it, for alloca.c.

	* tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile.

	* expmed.c (store_fixed_bit_field): Avoid shift by 32.

	* stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG.
	* final.c (final_scan_insn): For SDB output, do the
	sdbout_begin_function at that note.

	* reload1.c (choose_reload_regs): If a reload reg inherits
	from a previous reload, verify safety after all reloads are assigned.

	* c-decl.c (build_enumerator): Remove no-op casts.

	* reload.c (find_reloads): If an earlyclobber operand matches
	an input operand it is constrained to match, that's not a problem.
	If an earlyclobber operand loses due to earlyclobber, its matching
	input operand also loses.

	* reload1.c (choose_reload_regs): Don't use result of find_equiv_reg
	if that reg is used for reloading in an earlier part of the insn.

	* cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1.

	* Makefile (hard-params*): Use $(OLDCC).

	* c-typeck.c (c_alignof): No warning for -pedantic.

	* c-parse.y (readescape): Don't have both error and warning
	on one hex escape.

	* c-parse.y (yylex): Treat vertical tab as white space.
	(skip_white_space): Likewise.

	* c-parse.y (datadef): If pedantic, warn for stray semicolon.

	* expr.c (expand_increment): Pass accurate unsignedp arg
	to expand_binary_op.

Mon Jun 19 13:36:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc (news, news-gas): Use xm-m68k.h.

	* final.c (output_asm_label, output_addr_const): Make buf bigger.

	* cexp.y (main): Handle EOF on input.
	(lookup, warning): Provide as a dummy.
	(is_idchar, is_idstart): Declare as unsigned char.

	* cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values.
	Support hex escapes.  Warn if octal or hex escape doesn't fit in char.

	* cexp.y (yylex): Sign-extend char constants if appropriate.

	* genemit.c: Make insn-emit.c include insn-flags.h.

	* gcc.c: Move record_temp_file past page which declares vflag.

	* integrate.c (expand_inline_function): If copying an insn with
	a REG_EQUIV note, make a similar note.

	* Allow reload regs to be reused for parts of an insn.
	* reload.c (find_reloads): Classify each reload for which part
	of the insn it is needed in.
	(find_reloads_address, etc.): Pass down the overall operand
	that this is part of, to record it on address reloads.
	(push_reload): Record that for each reload.
	* reload1.c (reload): Compute maximum needs of any part of the insn.
	(choose_reload_regs): Part of old choose_reload_targets.
	Hairier criteria for inheriting reloads and for which ones are
	available for the next insn to inherit.
	(emit_reload_insns): The rest of old choose_reload_targets.
	Emit reload insns in proper order according to where they are needed.
	* Record `reload_reg_in_use' separately for each part of the insn.
	(mark_reload_reg_in_use): New function.
	(reload_reg_free_p, reload_reg_free_before_p): New functions.
	(reload_reg_reaches_end_p): New function.

	* expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization.

	* rtlanal.c (rtx_equal_p): Check vectors have same length.

Sun Jun 18 12:16:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (expand_expr_stmt): Maybe warn if top-level operator
	makes an unused result.

	* gcc.c (delete_temp_files, delete_failure_queue):
	If -v, report failures in unlink.

	* Makefile (includes): New target to run fixincludes.
	(install): Swap arms of if-statement.

Sat Jun 17 12:41:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_union): Arg to error_with_decl was missing.

	* ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE.

	* loop.c (consec_sets_giv): Change type of force, force2.

	* combine.c (dump*): Declare arg as FILE*.

	* Makefile (clean): Delete hard-params.

	* flow.c (life_analysis): Use a special obstack for the temporary
	regsets.

	* m68k.md (clr pattern): On 68000, use moveq to clear data reg.

	* gvarargs.h: File varargs.h renamed.
	The old name conflicted with <varargs.h>, now that -I. is used.
	* tree.c, expr.c, emit-rtl.c: Change #include commands.
	* Makefile (install): Install gvarargs.h under name varargs.h.
	* gcc.c: Include gvarargs.h, not system's varargs.h.

	* Makefile: Use -I$(srcdir) before -I$(srcdir)/config.
	* config/tm.h: Deleted; didn't work if config was a symlink.

	* cse.c (cse_insn): Record location of inner_dest
	so it can be replaced properly if a new MEM rtx is made.

Fri Jun 16 14:17:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* make-cc1.com: Compile and link rtlanal.c.

	* c-typeck.c (build_array_ref): Call fold on the array ref.
	* fold-const.c (fold): Simplify array ref of string constant.

	* stmt.c (expand_asm_operands): Fix error message.

	* Makefile (gnulib2): Remove old members before compiling new.
	Fix stupid errors.
	* gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions.

	* genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete.
	Add 3 to MAX_RECOG_OPERANDS.

	* cse.c (fold_cc0): Extra arg specifies machine mode.
	Callers changed.
	(cse_insn): Record original mode of each src for this purpose.

Thu Jun 15 12:35:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c.
	Use long long for argument type.

	* rtlanal.c (may_trap_p): Moved here from loop.c.
	Return 1 for division by explicit zero.

	* reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses):
	Rerecognize insns which are changed by this.

	* i386.md (call_value): Don't return prematurely.

	* alliant.md (movqi): Handle moving Aregs to mem and vice versa.
	(bftst -> btst): Restrict to bitpos less than 8
	so operand may be non-offsettable.
	(nop): New pattern.
	(return): Was disabled; now deleted.
	* tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it.
	* out-alliant.c (output_btst): Same change as in out-m68k.c

	* alliant.md, out-alliant.c: Offsetable -> offsettable.

	* c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. 

	* c-decl.c (duplicate_decls): Don't save inline function data
	from previous definition if a new *definition* is seen.

	* integrate.c (access_parm_map): Handle subregs and constants.

	* stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0.

	* tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it.

	* tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h.

Fri Jun  9 01:39:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (float.h): Avoid using $(MAKE).

	* Don't cram two things into STMT_BODY of a LET_STMT.
	* tree.h (struct bind_stmt): New field, subblocks.
	(STMT_SUBBLOCKS): New macro to access it.
	* print-tree.c (walk): Print new field.
	* tree.c (build_let_stmt): Store the old BODY arg into subblocks field.
	* c-parse.y (stmt expr rule): Put rtl expr alone into body field.
	* dbxout.c (dbxout_block): Recurse on subblocks, not body.
	* sdbout.c, symout.c: Likewise.
	* integrate.c (copy_decl_tree): Likewise.
	* stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise.
	* expr.c (expand_expr): For LET_STMT, simply use its body.

	* machmode.def: Add sixth arg to each entry.
	* tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE.
	* rtl.h (GET_WIDER_MODE): New macro; table in rtl.c.
	* expr.c (expand_expr): Use that for widening multiply.

	* stmt.c (fixup_var_refs_1): When converting MEM to QImode for
	bit field, adjust the address if possible to make bitpos
	less than 8.
	* m68k.md (bftst -> btst): Restrict to bitpos less than 8
	so operand may be non-offsettable.

	* cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file.

	* out-m68k.c (output_btst): Handle COUNT bigger than size of unit.

	* cccp.c (CHECK_DEPTH): Macro to detect instack overflow.
	(finclude, macroexpand, expand_to_temp_buffer): Use that.

	* cccp.c (rescan): Don't check for disabled macro if traditional.
	(macroexpand): Don't disable macro if traditional.

	* sdbout.c (sdbout_one_type): Take out last change; assembler barfs.

	* c-parse.y (maybe_attribute): Eliminate #-syntaxes.
	Make ATTRIBUTE the name for __attribute.

	* c-parse.gperf: Add __attribute{,__} and __signed{,__}.
	* c-parse.y: Install results of that change.

	* Fix bug in sizeof ({...}).
	* c-decl.c (poplevel): Set TREE_USED.  Return the LET_STMT.
	* c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT,
	clear its TREE_USED, and use it as the result.
	* expr.c (expand_expr): Allow LET_STMT as an expr.
	Set its TREE_USED and expand the TREE_VALUE of its body.
	* dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set.
	* sdbout.c, symout.c: Likewise.

Thu Jun  8 00:06:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0
	to 0.0e0 as well.

	* flow.c (life_analysis): Prevent allocation of regs live at setjmp
	on certain machines.  Controlled by LONGJMP_RESTORE_FROM_STACK.
	Sets reg_live_length to -1.
	* local-alloc.c (block_alloc): Be prepared for that.
	* tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it.

	* gnulib2.c (all interfaces): Declare args and values as long long,
	and split them using unions.

	* loop.c (check_dbra_loop): Don't reverse loop if there are two
	refs to varying addresses.  Consider foo[i] = foo[i-1].
	(count_nonfixed_refs): Subroutine to count them.

	* cexp.y: Distinguish signed and unsigned.
	An integer value is now represented by a struct.
	All rules for arithmetic changed.
	(yylex): Adapt to change in yylval data type.

	* limits.h (LONG_MIN): Make sure it's a signed long.

	* sdbout.c (sdbout_one_type): Output types of fields first,
	if they are structs.  Don't go through pointers.
	(sdbout_field_types): Subroutine for that

Wed Jun  7 13:00:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes: Switch to /usr/include before doing vuid_event.h.
	Use $2 as output directory for sed.

	* tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx.
	* tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling.

	* expr.c (expand_increment): Typo testing for BImode component.

	* convex changes from csmith:
	* tm-convex.h: use EXTRA_SECTIONS to do .bss.
	out-convex.c: set_section, align_section are now unused.
	* convex.md: add pattern to pick an A-reg destination for sums
	whose source involves a dedicated A reg (frame or arg pointer)
	* convex.md: immediate and, or, xor instructions store a 32-bit
	result.  Fix instructions that assumed it was 64.

	* mips.md (probe): New pattern to create stack space.

	* Makefile (float.h): Ignore errors from hard-params.
	Specify ./ to run it.

Tue Jun  6 15:45:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* out-tahoe.c: Rename `offsetable' to `offsettable'.

	* tahoe.md (nop): New pattern.

	* i386.md (umul...): Constrain operand 1 as `0', not `a'.
	`a' sometimes wanted two a-regs for operands 0 and 1.

	* cccp.c: Forward-declare some structs.

	* c-decl.c: Rearrange fcn fwd decls and struct decls.

	* expr.c: Move some fcn fwd decls after structs their args use.
	* genpeep.c, genextract.c: Likewise.

	* loop.c: Forward-declare some structs.

	* stmt.c: Move decls of structs before those of static functions.

	* loop.c (strength_reduce): Delete extra arg to check_eliminate_biv.

	* integrate.c (expand_inline_function): Supply missing arg
	to convert_to_mode.

	* gcc.c (handle_braces): Supply missing arg to do_spec_1.

	* explow.c (lookup_static_chain): Accept a context arg.

	* expmed.c (store_split_bit_field): Pass ALIGN arg
	to extract_fixed_bit_field.

	* expr.c (expand_assignment): Convert TYPE_ALIGN to bytes.
	(store_constructor, expand_expr): Likewise.

	* m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns.
	(Fully supported only with MOTOROLA and HPUX_ASM flags.)

	* jump.c (do_cross_jump): Don't die if LABEL is 0.

	* tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro.
	* tm-iris.h: New file.  Unsplit lines accidentally split.

Mon Jun  5 15:39:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (output_inline_function): Call init_function_start,
	not expand_function_start.
	* emit-rtl.c (restore_reg_data): No need to init reg_rtx_no.

	* stmt.c (init_function_start): Set current_function_returns_struct.

	* rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p
	* loop.c (strength_reduce): Reject biv initial value which is altered
	subsequently before actual loop start.

	* rtlanal.c: New file split out from rtl.c.
	Has things not used in the gen files.

	* loop.c (strength_reduce): Reject biv initial value in a hard reg
	clobbered by an intervening function call.

	* tree.c (get_identifier): New flag needed to enable id-clash warnings.
	(start_identifier_warnings): Set that flag.
	* c-decl.c (init_decl_processing): Call that, after making built-ins.

Sat Jun  3 14:41:34 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* final.c (final_scan_insn): No basic block profiling at jump tables.

	* stmt.c (expand_decl): Probe the stack to make pages exist.
	* expr.c (expand_builtin): Likewise, for alloca.

	* move-if-change: Specify /bin/sh.

	* tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS
	with constant operands but not inside CONST.

	* integrate.c (output_inline_function, save_for_inline):
	Save stack_slot_list, and restore it for actual output.
	* emit-rtl.c (gen_inline_header_rtx): New arg for this.

	* emit-rtl.c (restore_reg_data): Initialize reg_rtx_no.
	(restore_reg_data_1): Handle reg_rtx_no jumping past
	reg_pointer_flag_length.

	* reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0.

	* integrate.c (copy_rtx_and_substitute): Typos for stack parm
	addresses in PLUS case.

	* genoutput.c (gen_insn, gen_peephole): Make output_n fns static.
	(output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined.

	* tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h.

Fri Jun  2 15:40:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (do_include): A file included via a system header file
	counts as a system header file for -M.

	* gnulib2.c: Support boolean ops and shifts.

	* loop.c (emit_iv_inc): Use emit_iv_init_code.

	* rtl.h (CONST0_RTX): Don't try to cast abort.

    	* tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'.
	Delete two garbage lines.

	* loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison
	value.  If value is constant, recognize the insn, and if that fails,
	put the value in a register.  

Thu Jun  1 16:56:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* print-tree.c (dump): Don't die if rtx components are null.

	* expmed.c (expand_mult_add): New fn to do A * X + B.
	(make_tree): New subroutine.
	* loop.c (emit_iv_init_code): Use that.  Much simpler now.

Tue May 30 17:20:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fold-const.c (fold): Use TREE_SET_CODE to store in tree codes.

	* tree.h (struct tree_common): Make `code' an unsigned int.
	(TREE_CODE, TREE_SET_CODE): Put in casts.

	* optabs.c (emit_cmp_insn): Supply all the args in recursive calls.

	* toplev.c (report_error_function): Fix typo; METHOD_TYPE missing.

	* fixincludes: Add code to make internal non-directory links.

Mon May 29 21:36:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (find_exec_file): Try both with and without machine_suffix.
	(find_file): Use machine_suffix here too.

Sat May 27 00:02:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (decompose): OFFSET wasn't initialized.

	* cse.c (cse_main): Assign monotonic cuids.
	(make_regs_eqv, CHEAPER): Use cuids, not uids.
	(cse_end_of_basic_block): Return a cuid, not a uid.

	* expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs
	moved included one extra previous insn.

	* emit-rtl.c (emit_line_note): Don't check -g here.
	(emit_note): For line number when no -g, increment cur_insn_uid anyway.
	* stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED.

	* loop.c (loop_optimize): Don't count line-number NOTEs for luids.
	Prevents -g from affecting optimization decisions.

Fri May 26 17:31:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* local-alloc.c (block_alloc): Don't count notes in insn_number.
	Prevents -g from affecting order of allocation.

Thu May 25 14:12:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* local-alloc.c (block_alloc): Clear full length of regs_live_at.

	* ns32k.md (cmpsi): Make this the first cmp pattern.

	* jump.c (do_cross_jump): Skip NOTEs while checking for existing label.

	* cse.c (cse_insn): When no-oping a jump, decrement use count of label.
	(cse_basic_block): If label use count is 0, go past it.

	* integrate.c (access_parm_map): New fn, broken out of
	copy_rtx_and_substitute, handles case of mem ref to stack arg.
	(copy_rtx_and_substitute): Call it.
	Also use it for address of a stack arg.

	* gen*.c (fatal): Declare 1st arg as string.

Wed May 24 00:13:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* optabs.c (init_optabs): Handle movdi and movdf insns.

	* final.c (end_final): Realign locn ctr after outputting string.

	* tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib.

	* tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386.

	* gcc.c (find_exec_file): Use machine_suffix.
	(process_command): Set that for -b option.

	* integrate.c (function_cannot_inline_p): No size limit
	for functions declared inline.

	* loop.c (skip_consec_insns): New fn, skip several insns or libcalls.
	(force_movables): New fn, part of scan_loop broken out.
	(ignore_some_movables): New fn, ignore a movable whose insn
	is within another movable's libcall.
	(scan_loop): Call those three.
	Don't handle m->consec for zero-extend movables, since always 0.

Tue May 23 12:58:24 1989  Joe Weening  (weening at gang-of-four.stanford.edu)

	* config/alliant.md:
	Removed operand classes 'x', 'y', 'G', 'H'.
	Added "%." to many opcodes to simplify comparison with m68k.md.
	Changed TARGET_68881 to TARGET_CE.
	Changed floating-point insns to better describe the Alliant CE.
	Most args to floating-point insns are now nonimmediate_operand.
	Removed special insns for pushing doublewords onto stack.
	Added non-CE versions of movsf and movdf to avoid using FP
	registers in this case.
	(float*i*f2): Don't allow immediate ops.
	(sne): Fix typo, fsne => fsneq.
	(call, call_value): Changed to always pop args from stack
	upon return; this gives better code than before and conforms
	to Alliant calling standard.
	Incorporated some recent changes to m68k.md.

	* config/out-alliant.c:
	(regno_reg_class): Removed FPA reg classes.
	(output_move_const_double): Function not needed, removed.

	* config/tm-alliant.h:
	Removed FPA registers and reg classes.
	Target flags: changed TARGET_68881 to TARGET_CE, removed
	TARGET_RTD, TARGET_REGPARM, TARGET_FPA.
	Removed TARGET_CE test in several places since we need to
	use FP regs even for non-CE programs.
	(TARGET_VERSION, CPP_SPEC): Define for Alliant.
	(CONDITIONAL_REGISTER_USAGE): Removed, not needed.
	(FRAME_POINTER_REQUIRED): Defined.
	(RETURN_POPS_ARGS): Defined.
	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P):
	Use fp0 to return floating-point values.
	(FUNCTION_ARG): Remove TARGET_REGPARM code.
	(FUNCTION_ARG_PARTIAL_NREGS): Always 0.
	(FUNCTION_PROFILER): Define for Alliant.
	(FUNCTION_EPILOGUE): Remove use of rtd instruction.
	Renamed CC_IN_68881 to CC_IN_FP.
	(NOTICE_UPDATE_CC): Incorporate changes that were made
	in tm-m68k.h.

	* config/xm-alliant.h (LINK_SPEC): Pass -X to linker.

Tue May 23 12:58:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sdbout.c: Don't include c-tree.h.

	* tree.c (build_index_type): Use sizetype for min and max values.
	Convert maxval rather than clobbering it.

	* tm-hp9k320.h: Finish unterminated comment.

	* sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm.

Sun May 21 12:58:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (aggregate_value_p): New fn says whether expression is a type
	that functions cannot return as a scalar.
	(assign_parms, expand_function_start): Use that.
	* expr.c (expand_call): Likewise.

	* gcc.c (delete_failure_queue): New subroutine.
	(delete_temp_files): No longer delete the failure queue.
	(main): Delete failure queue after each failing compilation.

Sat May 20 13:16:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION.

	* mips.md: Change %u0 to %:.
	(movsi): Add constraint alternative accepting address arg.

	* fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8.
	(combine): Special case shortcuts for plus, minus, mult, div.

	* stmt.c (expand_function_start): Simplify hairy statement for 3B1.
	* expr.c (expand_call): Likewise.

	* math-68881.h: New file.

	* m68k.md (movqi): Handle moving aregs to mem and vice versa.

	* dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions
	in cases that occur in C.

	* stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0
	when function returns no value.

	* tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME.

	* c-decl.c (store_parm_decls): Call init_function_start.

Thu May 18 00:41:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (expand_null_return_1): New arg USE_GOTO says jump to
	return_label even if could otherwise use a return insn.
	Make a return_label if we need one and don't have one already.
	If have parm cleanups, always jump to cleanup_label.
	(expand_null_return): Pass 1 for USE_GOTO if cleanups pending.
	(expand_return): Set LAST_INSN if have local cleanups or parm cleanups.
	Use that if jumping to tail-recursion label.
	Optimization for returning a comparison is safe for local cleanups
	but don't do it if there are parm cleanups.
	Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups.
	(this_contour_has_cleanups_p): New function.

	* stmt.c (init_function_start): New function, beginning of
	expand_function_start broken out.
	Use DECL_PRINT_NAME to get function's name.
	(expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS
	Compute RETURN_LABEL sooner; make one if parm cleanups.
	If parms have cleanups, put scalar return value in pseudo-reg.
	Don't mark that pseudo with REG_FUNCTION_VALUE_P.
	(expand_function_end): Simplify decisions about output of return_label
	and return insn.
	If DECL_RESULT is pseudo-reg, copy it to real return reg.

	* stmt.c (expand_function_end): Handle ordinary struct values
	like pcc, but only if unoptimized.
	(expand_function_start): Make a return_label for ordinary struct value.

	* stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE.
	(layout_decl): Allow TYPE_DECL.

	* stor-layout.c (layout_basetypes): Code for basetypes broken
	out of layout_record.  Sets the type size tentatively.
	(layout_record): Start with that tentative size.
	Also, don't do anything with CONST_DECL members.

	* stor-layout.c (layout_union): Simpler error report for static memb.

	* reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING
	conditional to apply only to push instructions.

	* expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY.
	* stmt.c (assign_parms): Likewise.

	* toplev.c (announce_function, report_error_function):
	(error_with_decl, warning_with_decl): Use DECL_PRINT_NAME.

	* toplev.c (compile_file): Subtract integration_time from parse_time.

	* toplev.c (compile_file): Don't output read-only static variables
	at end of compilation if address was not used.

	* toplev.c (rest_of_compilation): Handle flag_syntax_only.

	* toplev.c (main): Handle -g0 and -G0 options.
	For -g and -G, set use_gdb_dbx_extensions.

	* toplev.c (main): Set `progname'.
	(pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line):
	(sorry): Print value of `progname', not "cc1".

	* tree.def: Delete FRIEND_DECL.  Add PUSH_EXPR and POP_EXPR.

	* tree.c (simple_cst_equal): Handle INDIRECT_REF.

	* tree.c (lvalue_p): Handle METHOD_TYPE.  Handle NEW_EXPR.

	* tree.c (copy_list): New function.

	* tree.h (struct tree_decl): New fields print_name and assembler_name.
	(DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors.

	* c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter.

Wed May 17 22:07:17 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)

	* dbranch.c (emit_delay_sequence): Reset insn code to -1 when
	turning insn into a sequence so that it won't think that it matches
	something in the md file.

	* dbranch.c (insn_eligible_p): Call refers_to_regno_p with a
	non-zero range.

	* dbranch.c (pnote): Modified to make sure instruction clobbered
	register is a set, rather than, say, a clobber.

Wed May 17 14:01:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sdbout.c (sdbout_parms): Handle parm with no name.

	* loop.c (combine_movables): Test for overlap of zero-extend regs
	was screwed up.

	* c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars,
	since c defines sizeof (char) as 1.
	(pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. 

Tue May 16 16:27:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (choose_reload_targets): Don't reuse regs
	mentioned in reload_reg_rtx.

	* tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files.

Mon May 15 16:25:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes: Exit with explicit status 0 at end.
	cd to /usr/include before cd to subtree root in case of relative link.
	Create dir $LIB earlier.
	When checking for a link, treat .. like an absolute target.

	* symout.c (symout_block_symbols): Give every local decl a typespec.
	* cexp.y (parse_number):
	* flow.c (life_analysis, dump_flow_info):

	* loop.c (consec_sets_invariant_p): Logic error accepted consec sets
	of which only one was invariant.

	* expr.c (expand_expr): Use no subtargets inside loops.
	* stmt.c (inside_loop): New function.

Sun May 14 00:11:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tree.h: Declare long long types.

	* c-parse.y (combine_strings): Make string contents saveable.

	* tree.c (savealloc): New function.

	* m68k.md (movdi): % missing in fmove%.d.

	* c-parse.y (yylex): Detect overflow past 64-bits.
	Detect specially numbers not fitting in signed long long.

Sat May 13 13:16:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (alter_frame_pointer_addresses): Preserve volatility.

	* varasm.c (output_constructor): Die if BITS_PER_UNIT is too big
	for this function to work.

	* genpeep.c (match_rtx): For match_operator, match the operands, too.

	* varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode.

	* stor-layout.c (make_signed_type, make_unsigned_type):
	(fixup_unsigned_type): Use HOST_BITS_PER_INT.

	* stor-layout.c (layout_type): Use TFmode if appro.

	* optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi.

	* c-typeck.c (get_floating_type): Compare MODE against modes of types.
	(signed_type, unsigned_type, signed_or_unsigned_type, type_for_size):
	Handle long long types.
	(digest_init): Don't assume width of `char' is BITS_PER_UNIT.

	* c-parse.y (yylex): For truncating chars, use width of `char' type.
	Allow `ll' in int constants and make long long.
	Also make long long if constant won't fit in an int.

	* c-decl.c (SHORT_TYPE_SIZE): Round up when dividing.

Fri May 12 22:36:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* real.h: Allow multiple inclusion.

	* tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering.

Thu May 11 00:36:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h

	* c-parse.y (stmt from expr): Do default conversion if useful
	for sake of ({...}).

	* sparc.md (andcc recognizer): Operand missing in subreg.

Wed May 10 17:20:38 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* rtl.c (read_name): Error if name is missing.
	(dump_and_abort): Don't print char args if -1.

	* i386.md (umulqihi3): Operand numbers were missing.

	* reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg
	if it's free and correct class. 

	* cse.c (canon_hash): Handle empty strings.

	* cccp.c (macroexpand): Newline newline treated like real white space
	when stringifying.

	* Rename *offsetable* to *offsettable*.

Tue May  9 22:54:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (finish_type): Layout any variants of the type.

Tue May  9 12:30:28 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)

	* final.c (final_scan_insn, final): Added an argument to
	final_scan_insn to disallow peephole processing (to turn it off
	during delayed branch scheduling).

	* final.c (final_scan_insn): Made insn not matching any MD rtl a
	criteria for delayed branch case.  Moved delayed branch case to just
	before real insn recognition to reduce the number of insns on which
	recog_memoized is called.

Mon May  8 15:02:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes (LIB): Allow overriding.

	* cccp.c: Don't search /usr/include/CC by default.

Mon May  8 13:09:21 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)

	* print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE.

Sun May  7 12:44:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL.

Sat May  6 00:13:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0.
	* fold-const.c (combine, fold, div_and_round_double): Handle new code.
	* expr.c (expand_expr): Likewise.
	* c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR.

	* integrate.c (expand_inline_function): Use size of passed type
	for allocating stack slot with that type.

	* c-parse.y (maybe_attribute, attribute*): New syntax for Apollos.
	These tokens currently not generated.

Fri May  5 18:43:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux.

	* optabs.c (expand_binop): If backtracking, don't delete insns made
	for -fforce-mem.

Thu May  4 01:57:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (find_reloads): Don't compare an earlyclobber operand
	with itself.

	* reload.c (immune_p): Constants and stack slots don't overlap.

	* Put no-ops in front of loops and labels,
	to prevent confusion in the debugger.
	* c-parse.y (loops and labels): Call emit_nop.
	* stmt.c (emit_nop): New function--sometimes emit a no-op.
	* *.md (nop): New insn.

	* expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET.

Wed May  3 01:34:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (scan_loop): Scanning around end of loop
	should not set maybe_never.

	* Rename SELECT_VARIABLE_SECTION to SELECT_SECTION.
	* varasm.c (get_or_assign_label): Use SELECT_SECTION if defined.
	* varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro).

	* mips.md: Change %u to %u0 to avoid error check.

	* tm-mips.h (TARGET_VERSNUM): Inc. to 1 08.
	(TARGET_VERSION): Change strings.
	(AL_DEBUG): Don't define it.
	(HARD_REGNO_MODE_OK): Add some casts to int.
	(STACK_ARGS_ADJUST): Name was misspelled.
	(PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc.
	(EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS,
	SELECT_VARIABLE_CONST_SECTION): New macros.
	(ASM_FILE_END): Change function name.
	* out-mips.c (function_arg_advance): Delete debugging printfs.
	(function_inarg, function_arg): Likewise.
	(compare_collect, compare_restore): Add some.

	* reload1.c (reload): Fix handling of caller_save_needed.

	* stmt.c (expand_function_start): Clear caller_save_needed.

	* stmt.c (emit_case_nodes): Some compiler has trouble with calling
	a function pointer.
	* gnulib.c: likewise.

Tue May  2 15:32:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (combine_movables): For zero extend,
	do each from-mode separately.

Mon May  1 00:18:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-apollo68.h: New file.

	* c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc.
	* c-parse.gperf: Corresponding changes.

	* c-parse.y (check_newline): Set main_input_filename before
	considering optional arguments.

	* final.c (final_scan_function): Return next insn to process.
	Usually that's the following insn; occasionally, previous compare.

	* c-decl.c (DOUBLE_TYPE_SIZE): Wrong value.

	* reload.c (decompose): Failed to return value.

	* Support local specified-register variables.
	* varasm.c (decode_reg_name): New function, cvt asmspec to regnum.
	(make_decl_rtl): Call that.
	* toplev.c (rest_of_decl_compilation): Handle local specified-register
	declarations.

	* i386.md (tstqi, trunc*qi): Constrain to `q' regs.

	* loop.c (scan_loop, move_movables): ->global for zero-extend register
	now means register is used outside range from where it is set
	to the following label.  Non-global zero-extend regs
	may be entirely cleared.

	* loop.c (combine_movables): Loop that combines matching movables
	broken out from scan_loop.
	Now also combine non-global zero-extend registers with each other
	if their lifespans don't overlap.

	* c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF):
	Always convert to desired result type.

Sun Apr 30 12:58:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (init_decl_processing): New macros parameterize int types.
	CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE,
	FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE.

	* fixincludes: Use sed instead of ex.  No problem with split lines.

	* print-tree.c (dump): Print type's name, if any.

	* c-parse.y: Use __inline, not plain inline.

	* toplev.c: New option -fdelayed-branch.
	(compile_file): Open and close dbranch dump file.
	Collect and print dbranch time.
	(rest_of_compilation): Optionally do dbranch scheduling, 
	only if HAVE_DELAYED_BRANCH.
	(main): Handle -dd.

	* rtl.c (copy_rtx): Handle null pointers as code `e'.

	* final.c (dbr_sequence_length): New function.
	(final_scan_insn): Most of `final' broken out.
	Add support for SEQUENCE insns.
	last_ignored_compare and new_block now top-level static.

	* c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile.

Sat Apr 29 13:03:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (asm statements): Output line numbers.

	* loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy
	additive term rtx's to prevent sharing between insns.

	* c-parse.y (check_newline): Increment input_file_stack_tick.
	* toplev.c (report_error_function): Describe input stack only if
	changed.

	* c-decl.c (finish_struct): Reject zero width for named field.

	* tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'.
	* tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'.

	* Makefile (cleanconfig): cleanlinks renamed; also delete gnulib.
	(gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after.

Fri Apr 28 00:38:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc (genix): Correct xm file name.

	* tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h.

	* Makefile: Make float.h using hard-params.
	(clean): Delete float.h.

	* hard-params.c: New program.

	* varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined.
	(in_section): Use EXTRA_SECTIONS if defined.

	* toplev.c (compile_file): Call ASM_FILE_END if defined.

	* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override.

	* loop.c (emit_iv_init_code): Force A to a reg if it isn't.

Thu Apr 27 12:51:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-mips.h (ASM_START_FILES): Don't call print_options.
	Don't call the funny abort-functions.
	* out-mips.c: Delete funny debugging functions and aborts.
	(print_options): #if 0.
	(compare_restore): Test for COMPARE, not MINUS.
	(mips_section_get, mips_output_external, mips_asm_final): New fns.

	* input.h: New file with *input_filename, lineno and input_file_stack.
	Included in toplev.c and c-parse.y.
	* c-decl.c (finish_function): LINENO is now arg.
	* c-parse.y: Calls changed.

	* c-parse.y (check_newline): Handle `1' or `2' from cpp
	by pushing or popping input_file_stack.
	* toplev.c (compile_file): Push main input file on input_file_stack.
	(report_error_function): If in include file, print the chain
	of include-locations.

	* cccp.c (output_line_command): New arg says whether entering or
	leaving a file.  Output `1' or `2' on #-line if so.  Callers changed.

	* gnulib2.c: Little-endian fixes from csmith@convex.com.

	* fixincludes: Wrong quoting in `echo' command.

	* tm-mips.h (REG_P): Duplicate defn deleted.
	(PRINT_OPERAND): `\' was missing.

Wed Apr 26 02:44:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (handle_directive): Preprocess even #pragma, but copy 
	to output file afterward.
	(do_pragma): Use standard calling convention.
	(install_builtins, special_symbol): Define __INCLUDE_LEVEL__.

	* cccp.c (do_include): Don't forget to close file.

	* final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P
	to validate punctuation after percent.
	* tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h:
	Define PRINT_OPERAND_PUNCT_VALID_P.

	* Version 1.35 released.

	* c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants.

Tue Apr 25 15:47:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload.c (find_reloads_address_1): Always return a value.

	* flow.c (mark_set_1): Look inside zero_extract, sign_extract.

	* expr.c (emit_library_call) [STACK_ARGS_ADJUST]:
	Fix typo for `struct args_size'.

Mon Apr 24 00:12:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* flow.c (mark_set_1): Look inside strict_low_part.

	* c-typeck.c (decl_constant_value): Don't use var's init if volatile.

	* print-tree.c (dump): Don't call walk on rtx's.

	* integrate.c (expand_inline_function): Convert expanded arg from
	passed mode to nominal mode.

Sun Apr 23 13:14:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fixincludes: fix _IO macros if split across two lines.
	Fix typo: EOF was indented.

	* gnulib2.c: New file with DImode library routines.
	* Makefile (gnulib2): Put them into gnulib.
	Must be explicitly requested.

Fri Apr 21 13:45:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall;
	use -trigraphs for that.

	* cccp.c (main): Use -trigraphs to enable trigraphs.
	* gcc.c: Pass -trigraphs to cpp; don't pass -T.

	* Makefile: Variable srcdir relates location of sources
	to current directory.  Default is `.'.

	* integrate.c (expand_inline_function): When copying expanded arg,
	use mode it's passed in, not arg's nominal mode.

	* dbxout.c (dbxout_block): Print generated name with assemble_name.

Thu Apr 20 12:36:09 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stdarg.h: check __sparc__ instead of sparc.

Tue Apr 18 18:58:03 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-next.h (STARTFILE_SPEC): Define it.

Mon Apr 17 19:56:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format
	the labels LBB... and LBE...

Sun Apr 16 23:57:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* mips.md: Change MINUS to COMPARE where appropriate.

Sat Apr 15 16:11:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (finish_struct, redeclaration_error_message):
	Rename variables named OLD and NEW.

	* sparc.md (cse'd mult pattern): Handle memory operands.
	Optimize small integer operands.

	* stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles
	are properly aligned, despite unaligned STACK_POINTER_OFFSET.

Fri Apr 14 10:59:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_call): Bugs treating struct value address as param:
	do so only if it's supposed to be pushed;
	decode value of FUNCTION_ARG properly.

	* tm-altos3068.h (CPP_SPEC): Some braces were dropped.

	* gcc.c (pexecute): Print message when exec fails.
	(perror_exec): New fn.
	(perror_with_name,pfatal_with_name): Change message syntax.

	* tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op.

Wed Apr 12 00:20:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (cse_insn): Can record constant value being stored in
	a bit field, if we can tell that truncation won't change it.

	* m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT
	since the cc's are set from the old contents.

	* gcc.c (compilers): Running `as', put -o option before input file.

	* gcc.c: Delete output file only if that file's compilation fails.
	* gcc.c (record_temp_file): Changed args: always_delete, fail_delete.
	(store_arg): Likewise.  Callers changed.
	(clear_failure_queue): Called after each compilation.

Tue Apr 11 01:18:53 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const))
	optimization was sometimes invalid.

	* tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns
	does not set the cc's usefully.

	* Makefile (cleanlinks): Just do `clean', not `realclean'.
	(realclean): Delete config links also.

	* expr.c (expand_call): Handle case where return value is in memory
	but TARGET is a register.

	* c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE
	is passed to binary_op_error instead of CODE.
	All callers changed.
	(binary_op_error): CODE = NOP_EXPR is new special case.
	(truthvalue_conversion): Call build_binary_op_nodefault directly
	and specify NOP_EXPR for the error code.

	* c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum.

Mon Apr 10 19:44:48 1989  Chris Smith  (csmith at mozart)

	* tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't,
	but set it anyway.  It makes for better code on this
	word machine.

	* convex.md (one_compl*): add not:QI and not:HI, which
	do get used after all.

	* tm-convex.h (A_REG_P, S_REG_P): define new macros
	convex.md: use them

	* convex.md (addsi3): tidy up constraints.

	* tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok.

	* convex.md: add a pattern to push REG+CONST so we can
	prefer an A reg.

	* tm-convex.h (tstqi): should sign extend, not zero extend.

	* expr.c (convert_move): Extending narrow to DI via SI,
	operand of extendsidi2 was wrong.

	* emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE.

Mon Apr 10 05:19:39 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* recog.c (nonmemory_operand): Test constant operands
	as general_operand does.

	* tm-m68k.h (PRINT_OPERAND): Limit effect of code `d'
	to constant addresses.

	* loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with
	nonconstant coefficients, since the coeffs could be zero.

	* loop.c (can_eliminate_biv_p): Check each giv for ! ignore
	before assuming it can be used.
	(check_eliminate_biv): New fn, a piece of strength_reduce broken out.

	* cccp.c (error_from_errno): New fn, like error and perror_with_name.
	(do_include): Call that if open fails.
	(finclude): Print I/O error msg before closing desc.

	* c-decl.c (shadow_tag): If more than one tag or structure,
	or anything other than a tag, warning.

	* c-parse.y (components): Just warn if memb decl has no member,
	and only if pedantic.

	* loop.c (strength_reduce): Print uids, not luids, for dump.
	(record_giv): giv_count field counts only DEST_REG givs.
	(check_dbra_loop): src_two_before_end was set wrong.

	* loop.c (record_giv): New arg LOOP_END; all callers changed.
	Don't mark giv replaceable if used past LOOP_END.
	(find_mem_givs): New arg LOOP_END; all callers changed.

	* out-i386.c (FP_CALL): Make this a `return' stmt.

Fri Apr  7 11:56:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_expr, case ..._DECL): Preserve mode thru
	calling change_address.

	* expr.c (emit_library_call): Typo: ARGNUM => COUNT.

	* expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY.
	* stmt.c (assign_parms): Likewise.
	* integrate.c (function_cannot_inline_p): Likewise.

	* STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should
	be updated in place.
	* tm-mips.h: Define it.
	* expr.c (expand_call): Adapt to this.  Assume padding comes after args
	so turn off the feature of changing the args' offsets.
	(emit_library_call): Adapt to this.

	* tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}.
	Truncate SFmode constants to single precision.

	* c-typeck.c (mark_addressable): Fix test for local vs global reg var.

	* config.gcc: Change `:-' to `-' in var refs.
	Shell on convex doesn't handle `:-'.

Thu Apr  6 00:09:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (expand_inline_function): Compare actual's mode
	against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode.

	* c-decl.c (implicitly_declare): Make the decl permanent if
	in global binding level.  (Can happen for certain invalid input.)

	* c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR
	containing an ERROR_MARK.

	* config/tm.h: New file.

	* loop.c (only_reg_use_p): Fix bugs in recursion, add some fast
	special cases.  Comment on return value was backwards.
	(strength_reduce): Negate the value of only_reg_use_p.

	* genoutput.c (output_prologue): Output `#include hard-reg-set.h'.
	* Makefile: insn-output.o depends on that.

	* toplev.c (main): Typo recognizing -Wswitch.

	* config.gcc (mips): New alternative.
	* tm-mips.h, out-mips.c, mips.md, va-mips.h: New files.
	* varargs.h: Include va-mips.h if on mips.

Wed Apr  5 16:58:04 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL.

	* stmt.c (expand_function_start): Ref subr instead of
	current_function_decl; should make no difference.

	* stmt.c (assign_parms): Do extra padding for some parms,
	controlled by MAX_PARM_BOUNDARY.
	* expr.c (expand_call): Same thing for caller side.
	Note this is implemented only for machines that lack push insns.
	Also, in both cases, it doesn't handle variable-size args.

Tue Apr  4 12:22:06 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too.

	* varasm.c (make_decl_rtl): Delete never-executed clause.

	* spur.md (movqi, loadhi, extend*, zero_extendhisi):
	Make subregs with C code, not RTL patterns, so we can
	avoid generating subreg of subreg.

	* optabs.c (emit_cmp_insn): Not all clauses always succeed,
	so stop using `else' structure.

	* stmt.c (expand_return): Avoid moving void to void, in cleanups case.

Mon Apr  3 18:04:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends.
	If there is one a-reg, make sure it is not last.

Sun Apr  2 13:02:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (agg_mode): Use highest mode that has desired size.
	Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE.
	(That defaults to the size of DImode.)

	* machmode.def: Add PSI, PDI and XF, CXF modes.

Sat Apr  1 00:50:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* ns32k.md (ashd, lshd): Delete patterns that logand the count with 31.
	The shift count is not truncated on this machine.

	* combine.c (subst): Simplify nested or's, nested xor's.
	(try_distrib): XOR doesn't distribute through anything.

	* rtl.c (rtx_equal_p): Don't die on null pointers.

	* loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare.

	* loop.c (invariant_p): Mem refs in constant pool are invariant.

	* c-decl.c (redeclaration_error_message): If -traditional, allow
	redeclarations of typedef provided they agree.

	* c-decl.c (start_decl): Do expand_decl on the decl that pushdecl
	returns.  If there was a prev. decl with a different type,
	we have changed its type and cleared its old rtl, so it need new rtl.

Sat Apr  1 00:50:11 1989  Matthew Self  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (convert_move): Modified to use mode classes
	instead of refering to specific machine modes.

	* expr.c (do_jump): Converted to use CONST0_RTX macro.
	do_jmp no longer refers to any machine modes directly except
	for VOIDmode!

	* expr.c (compare, compare1): Modified to use CONST0_RTX
	macro.  No longer refers to any machine modes directly
	except VOIDmode and BLKmode!

	* machmode.def: Documented assumptions made about the order
	of machine modes during mode widening.

	* optabs.c (expand_binop, expand_twoval_binop, expand_unop,
	emit_cmp_insn): Added mode widening which is independent of
	specific machine modes.  It assumes that we may widen to any
	higher numbered mode of the same mode class.
	  NOTE: the checks for VOIDmode ops which were present in
	QI and HI to SI widening are now present in all widening.
	I assume this is correct.  Also, widening is now possible
	from QI to HI.  This may or may not be a good thing....

	* rtl.h (CONST0_RTX): Added definition of new macro
	CONST0_RTX (mode).

	* rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros.
	* rtl.c (note_insn_name, reg_note_name): New tables.
	* rtl.def (NOTE): Change last field from `i' to `n'.
	* rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note.
	Print operand code `n' as name of kind of note.
	(read_rtx): treat `n' like `i'.

	* loop.c (struct induction): Add `mode' field.
	(strength_reduce, record_giv): Set the `mode' field in V.
	(can_eliminate_biv_p, eliminate_biv): Use that field.

	* loop.c (struct iv_class): `init_insn' records what inits the biv.
	Replaces `init_val_set' flag.
	(strength_reduce): Update and test `init_insn' instead.
	Use of a biv between its init and the start of the loop
	does not preclude its elimination from the loop.
	Setting a giv is ok for eliminating a biv, even if giv is "ignore",
	since that just means giv will be combined with another.
	Handle some DEST_ADDR givs for that purpose.
	Test for giv-setting before check can_eliminate_biv_p.
	New error check for replaceable giv whose value needed after loop.
	(only_reg_use_p): New fn.

	* expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM:
	Associate even harder.

	* loop.c (strength_reduce): Treat all constant biv init vals like ints.

	* loop.c (strength_reduce): Clear all_reduced when v->ignore is set;
	the code to check this later didn't always do the job.

	* loop.c (verify_loop): Set loop_continue.
	(scan_loop): mention its value.
	* rtl.h: Define NOTE_INSN_LOOP_CONT.
	* stmt.c (expand_loop_continue_here): Output one.

Fri Mar 31 10:08:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like
	void *.

	* rtl.c (rtx_addr_varies_p): Don't die on null exp.
	* cse.c (refers_to_mem_p, refers_to_p): Likewise.

	* gcc.c (validate_switches, validate_all_switches): New fns.
	Mark a switch as valid if any compiler spec or the linker spec
	matches it, even for languages not being used.

Thu Mar 30 00:22:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* loop.c (loop_optimize, move_movables): when moving a `clr' insn used
	in zero-extension, sometimes change it to an `and' so that the
	significant low bits are not clobbered.

	* cccp.c: Implement __BASE_FILE__ and #once.
	(savestring): New fn.
	(struct file_name_list): new name for struct directory_stack.
	(enum node_type): Add T_ONCE, T_BASE_FILE.
	(directive_table): Add #pragma once.
	(initialize_builtins): Add __BASE_FILE__.
	(special_symbol): Handle __BASE_FILE__, together with __FILE__.
	(do_include): Ignore the file if it's on the #pragma once list.
	(do_once): New fn; add current file to #pragma once list.

	* cccp.c (do_include): Don't add non-ex files to list of deps.

	* config.gcc: Use {...:-...}, not {...=...}.

	* c-parse.y: Add precedence for IF/ELSE, and for parens;
	avoids some conflicts.

	* tm-newsgas.h: Include tm-news.h and define USE_GAS.

	* tm-news.h: New name for tm-news800.h.
	If not USE_GAS, define SONY_ASM.
	Don't define USE_GAS by default.
	(CPP_PREDEFINES): Various alternatives depending on processor type.
	(ASM_FORMAT_PRIVATE_NAME): Override this.
	(ASM_IDENTIFY_GCC): Override; output nothing.
	(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4.
	Max for halfword link insn is 32k, not 64k.
	(FUNCTION_EPILOGUE): Don't output move.l if no regs to restore.
	(PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses.
	* m68k.md (movhi): Add SONY_ASM conditional.

	* cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT

	* gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF.

Wed Mar 29 09:54:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that
	-Tdata can be handled right.

	* stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch
	(expand_end_case): Call it, if orig index was enum.
	* toplev.c (main): Handle -Wswitch.
	* c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case.

	* tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't
	define any duplicates.
	* final.c: Delete reg_name.

	* c-parse.y (is_reserved_word): Add keywords __asm and __inline;
	also __const and __volatile.
	(yylex): Keywords that start with `__' are recognized regardless of
	-traditional or -ansi.

	* c-parse.y (check_newline): Always recognize #ident.
	Macro IDENT_DIRECTIVE is no more.
	If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident.
	* tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT.
	* tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h:
	Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in
	default way.

	* expr.h (RETURN_IN_MEMORY): New macro, default defn here.
	* expr.c (expand_call): Use it to control where to return value.
	* stmt.c (expand_function_start): Likewise.

	* out-sparc.c (find_addr_reg): Abort if none found.
	Eliminate confusion; do only one change between tests for PLUSness.
	(output_move_double): Arg to find_addr_reg is address, not mem ref.
	* out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise.

	* jump.c (find_cross_jump): Don't let either E1 or E2 be included
	in the range of matching insns preceding the other (E2 or E1).

	* c-parse.y (check_newline): No error for `#pragma\n'.

	* Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here.

	* stmt.c (walk_fixup_memory_subreg): handle null.

	* tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn,
	to avoid conflict with final.c.

Tue Mar 28 15:23:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (do_include): If fail, print system error message.
	(perror_with_name): Use more standard error format.  Inc. `errors'.

	* dbxout.c (dbxout_function): Output any temporary types
	that were made by dbxout itself.

	* stmt.c: always use an epilogue if pcc-struct-return.
	(expand_function_start): Compute return_label after testing that.
	(expand_function_end): Output a return insn after pcc-struct-return
	processing, if there is a return insn.
	(expand_null_return): Don't output a return insn, in that case.
	Simplify the conditions--depends entirely on HAVE_return.

	* tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call.

	* reload.c (find_reloads): Certain mem addresses will be offsetable
	after reloading; in particular, those where reg_equiv_address applies.

	* loop.c (check_dbra_loop): Change MINUS to COMPARE.

	* c-typeck.c (convert_for_assignment): Return THE standard error_mark.

Thu Mar 23 09:39:02 1989  Richard M. Stallman  (rms at watson)

	* c-parse.y (components): Error if empty.

	* dbxout.c (dbxout_symbol): Output const variables as N_STSYM.

	* varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd.

	* c-decl.c (grokdeclarator): Warn about `long long long'.

	* reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P.
	* final.c (alter_subreg): Preserve volatile bit of MEM.

	* m68k.md (cmpsi, cmphi): Permit cmpm.

	* gcc.c (find_file): Use standard_startfile_prefix_2.
	Now search /usr/local/lib/, /lib/ and /usr/lib/.

	* tm-m68k.h (PRINT_OPERAND): Support code `d'.
	* m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses.

	* final.c (output_asm_insn): Don't allow %LETTER without an
	operand number.
	* tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s.
	* tm-alliant.h, alliant.md: Likewise.
	* i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R.

	* stmt.c (expand_end_stmt_expr): Pop pending stack args.

	* varasm.c (assemble_variable): For 0-size common variable,
	allocate at least 1 byte.

	* tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l,
	for doubles.

Mon Mar 13 10:24:56 1989  Richard M. Stallman  (rms at ccvi)

	* out-i386.h (function_prologue, function_epilogue):
	Use call_used_regs, not a copy, so -f options work.
	Save regs in the opposite order.
	Save regs even starting from 0 if they happen to be call-saved.

	* Bug fixes from Rob McMahon.

	* loop.c (strength_reduce): When inserting insn to set
	nonreplaceable giv, put it after all the consecutive insns
	that compute it.

	* reload.c (find_reloads): When forcing const to mem,
	use the insn's operand mode, not the const's mode.

	* reload1.c (choose_reload_targets): Use wider of inmode and outmode
	when determining have_groups.

	* reload1.c (choose_reload_targets): typo checked wrong insn with
	constraint_accepts_reg_p.

	* reload1.c (choose_reload_targets): Enable #if-0'd code for
	forgetting old reloads in case of output reload from a non-spill-reg.

Sun Mar 12 00:04:49 1989  Richard M. Stallman  (rms at ccvi)

	* c-parse.y (yyerror): Add forward-decl here.
	* c-tree.h: Delete decl here.

	* New macro USE_C_ALLOCA.
	* cse.c (cse_main): Do alloca (0) to clear out C alloca.
	* flow.c (life_analysis):
	* local-alloc.c (local_alloc):
	* reload1.c (reload_as_needed): likewise.

	* loop.c (emit_iv_init_code, eliminate_biv):
	Always put constant in a PLUS last.

	* gcc.c (make_switch): Unused function deleted.

	*gcc.c (switches): Each switch has a `used' field.
	(process_command): Init it to 0 when making `switches'.
	(do_spec_1, handle_braces, give_switch): Set to 1 when switch is used.
	(main): If it remains 0 at the end, print error message.

	* expr.c (convert_move, convert_to_mode): Don't truncate a MEM in
	place if it is volatile.

	* loop.c (strength_reduce): When reducing a giv, if the biv is
	incremented between the giv's creation and its use, increment
	the reduced giv var *after* its use.

	* c-decl.c (duplicate_decls): Warn about proto vs nonproto
	only if no other errors apply.

	* jump.c (invert_exp): Don't crash if arg is null.

	* alliant.md (float*i*f2): Don't allow immediate ops.
	(sne): Fix typo, fsne => fsneq.

	* expr.c (store_one_arg, expand_call): When size doesn't matter,
	pass const0_rtx, not (rtx) 0.

	* expr.c (do_jump): Args to invert_exp were missing.

	* gcc.c (store_arg): Now 2 separate args for delete-on-success
	and delete-on-failure.  All calls changed.
	(do_spec_1): DELETE_THIS_FILE is meaningful for output files.

	* config/xm-alliant.h (LINK_SPEC): Pass -X to linker.

Sat Mar 11 10:30:41 1989  Richard M. Stallman  (rms at ccvi)

	* tm-*.h, xm-*.h, *.md: Moved to subdir `config'.
	* output-*.c: Moved to `config/out-*.c'.
	* Makefile (.c.o): Define rule to use -Iconfig when compiling.
	(various): Delete the commands from some compilation rules.
	Put -Iconfig in other compilation commands.
	Also some reordering of variable defs and comments for cleanliness.
	(realclean): Change a shell comment to a Make comment.

	* fold-const.c (fold): Simplify and extend TRUTH_... operators
	knowing that args must be ints and values will be 0 or 1.

	* gcc.hlp: New file (for VMS).

	* reload1.c (reload): Don't let two 2-groups overlap.

	* reload.c (push_reloads): When a plain reg matches a reload
	for an increment, don't change the reload_in to a plain reg.
	Leave the increment there.

	* integrate.c (expand_inline_function): Don't try to inline
	unless the parm machine modes really match what's expected.

	* stmt.c (emit_case_nodes): default_label is an rtx, not tree.

	* tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1.

	* output-sparc.c (output_move_double): Don't trust random structs
	to be double-word aligned.

	* gcc.c: Pass -Wcomments to cpp.

	* rtl.def (ASM_OPERANDS): New operands, source file and line.
	* rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS.
	* stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes.
	* toplev.c (error_for_asm): likewise.
	* rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE.

	* combine.c (try_combine): Check explicitly for volatility in I2, I1.

Fri Mar 10 19:30:10 1989  Richard M. Stallman  (rms at ccvi)

	* c-parse.y (GOTO stmt): Set TREE_USED for the label.
	* c-decl.c (poplevel): Warn about unused label.

	* c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars.
	(lang_decode_options): Options to set them.
	* c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target.
	* c-decl.c (grokparms): Maybe warn if nonprototype fn decl.

	* flags.h, toplev.c (warn_shadow): New flag.
	* toplev.c (main): Decode it.
	* c-decl.c (pushdecl): Maybe warn about any shadowing.
	Existing parm-shadowing warning now disabled if shadowing decl
	is also a parm.

	* flags.h, toplev.c (warn_id_clash, id_clash_len): New flags.
	* toplev.c (main): Decode -Wid-clash-LEN.
	* tree.c (get_identifier): Implement warning if two idents match.

	* toplev.c (compile_file): Warn about statics defined and unused.

	* rtl.h (CONST0_RTX): New macro.

	* recog.c (offsetable_address_p): New 1st arg says whether to demand
	a strictly valid address.
	(offsetable_memref_p): Pass nonzero.
	* stmt.c (optimize_bit_field): Pass zero.

	* cccp.c (main): Allow -Wcomment like -Wcomments.
	* c-decl.c (lang_decode_options): Likewise.

Sun Mar  5 15:02:59 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)

	* m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3,
	sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure
	that the test function's in the match_operands of the define_expand
	and define_insn's matched, and made that test function
	"register_operand" when both define_insn's really needed registers
	in that spot.

Sat Mar  4 00:25:37 1989  Richard M. Stallman  (rms at c2v)

	* expr.c (emit_push_insn): Don't ever bypass the big-endian
	padding at the end.

	* cccp.c (deps_output): Break line if would otherwise exceed 75 chars.
	Make a name for that value 75.

	* combine.c (subst): Handle general case of (subreg (sign_extend X)).

	* tm-sun386i.h (CPP_PREDEFINES): Define `sun'.

	* fixincludes: change `find' calls to find dirs thru symlinks.

	* flow.c (mark_set_1): (set (subreg (reg N))...)
	does make reg N significant for this basic block.

Fri Mar  3 13:55:25 1989  Richard M. Stallman  (rms at c2v)

	* c-decl.c (parmlist_tags_warning): Print an explanation
	for the first such warning.

	* i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg.

	* expr.c (expand_call): Fix stupid errors copying pcc struct value.

	* varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast.

Thu Feb 23 05:55:57 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Version 1.34 released.

	* c-typeck.c (build_c_cast): If EXPR is an error mark, return that.

	* fold-const.c (div_and_round_double): Abort if divisor is 0.
	(combine): Likewise, for real constants.
	(real_zerop): New subroutine.
	(fold): Don't try to fold division if divisor is 0.
	Don't try to fold reals if can't do arithmetic on them.
	Don't try to compare reals for TRUTH_..._EXPR if can't do arith.
	Use real_zerop to test reals for zeroness.
	For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on
	first operand alone.

	* c-typeck.c (store_init_value): Fix error msg text.

	* tm-sparc.h (FUNCTION_PROFILER): Use `mcount'.
	* tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'.

Wed Feb 22 04:33:22 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of
	-Dmc68000 depend on TARGET_DEFAULT.

	* tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf.

	* integrate.c (expand_inline_function): Don't map struct-value-address
	in memory if fn does not use it.

	* c-parse.y (check_newline): At skipline, detect eof.

	* stmt.c (uninitialized_vars_warning): Change text of warning.

Tue Feb 21 03:58:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-sparc.c (output_mul_insn): Handle case of both args
	in reg 8, or both in reg 9.

	* tm-sparc.h (ASM_SPEC): Define, to handle -pipe.

	* tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args.
	(BLOCK_PROFILER): Likewise.  Use tempvar.

	* m68k.md (QImode btst): Allow nonoffsetable mem refs.

Mon Feb 20 00:32:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* flow.c (mark_used_regs): Don't record about global reg vars.

	* config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h.

	* tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN.

	* gcc.c (compilers): Pass `-a' to cc1.
	* tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'.

	* expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy;
	old method of preadjustment is broken by changes in emit_library_call.

	* c-decl.c (finish_decl): New temp `temporary'; don't get confused
	about whether allocation was temporary.

Sun Feb 19 17:03:35 1989  Chris Smith  (csmith at mozart)

	* tm-convex.h: define PCC_STATIC_STRUCT_RETURN

	* convex.md:
	remove pshea patterns, movsi does it better.
	add ashift:DI abs:DF abs:SF
	(tstdi): use a clobbered register instead of a bogus DImode zero.
	(trunchiqi2): delete noninstruction cvth.b
	(udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now.
	(call, call_value): delete stupid call/ret -> jump optimization.
	(call, call_value): flush call_ap_check, use reg_mentioned_p instead.

	* convex.md: (movxx): swap constraint alternatives so that the
	leftmost alternative is (set =g r).  This makes (set mem const)
	get combinable input reloads of const instead of uncombinable
	output reloads to mem.  They still do not combine, but wtf,
	I'll inch up on it.

	* output-convex.c: (const_double_{high,low}_int): new routines
	to pick apart const_doubles for assembler.

Sun Feb 19 01:40:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sparc.md (shift memory right 24 bits): Another `a1' typo.

	* config.gcc (convex-*): Delete troublesome whitespace.

	* c-decl.c (grokparms): Delete redundant `parm != 0' tests.

	* stmt.c (fixup_memory_subreg): Slight simplification.

	* tm-sparc.h (FUNCTION_PROFILER): Fill delay slot.
	(FUNCTION_BLOCK_PROFILER): Use sethi.
	(BLOCK_PROFILER): Use %g2, not %g0.  Use sethi.

Sat Feb 18 02:11:25 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_expr): Ignore const array's initial value
	if it's an error_mark.
	* c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark
	if the decl is a permanent node.

	* cccp.c (rescan): If traditional, if macro ends inside string,
	keep scanning for the end of the string.
	(handle_directive): A line of just `#' becomes blank.
	(collect_expansion): \ in strings traditionally doesn't hide macro arg.

	* m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition
	to old a=a+r, needed since reload-insns are not commuted.

Fri Feb 17 03:15:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it.
	* toplev.c, flags.h: New var flag_pcc_struct_return.
	* stmt.c (expand_function_start): Obey new flag and new variable.
	* expr.c (expand_call): Obey new flag and new variable.
	* varasm.c (assemble_static_space): New function.

	* stmt.c (expand_return): If we need cleanups, compute retval first
	into pseudo reg, then do the cleanups, then copy it to return reg.

Thu Feb 16 02:59:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined.

	* expr.c (expand_call): Handle conflict between two precomputed
	args that are both function calls returning structures.

	* loop.c (move_movables): Bkwds test of m->partial, for a matching reg.

	* expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST.

Wed Feb 15 01:59:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* toplev.c (flag_caller_saves): New var, for -fcaller-saves.
	DEFAULT_CALLER_SAVES controls initial value.
	* global-alloc.c (find_reg): Do caller saves only if flag set.
	* local-alloc.c (find_free_reg): Do caller saves only if flag set.
	* tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES.

Wed Feb 15 01:59:15 1989  Chris Smith  (rms at sugar-bombs.ai.mit.edu)

	* caller-save.c: New file.
	* regs.h (CALLER_SAVE_PROFITABLE): New macro.
	(reg_n_calls_crossed): new int-vector replaces reg_crosses_calls.
	* flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info):
	Use reg_n_calls_crossed.
	* stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise.
	* global-alloc.c (find_reg): Sometimes allocate call-clobbered regs
	for call-crossing pseudos.
	New arg ACCEPT_CALL_CLOBBERED; callers changed.
	* local-alloc.c (find_free_reg): Similar changes.
	(qty_n_calls_crossed): New int-vector replaces qty_crosses_calls.
	(alloc_qty, local_alloc, combine_regs, find_free_reg): change that var.
	* regclass.c (call_fixed_regs, call_fixed_reg_set): new vars.
	(init_reg_sets_1): Initialize them.
	* reload1.c (reload): Call caller-saves processing if needed.

Wed Feb 15 01:59:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (expand_expr): INTEGER_CST for DImode: don't handle
	endianness here.  So CONST_DOUBLE_LOW is always the low word.
	* varasm.c (force_const_mem): Handle it here. 

	* expr.c (convert_move): widening followed by extendsidi2 had braino.

	* integrate.c: Don't include ctype.h; not needed and kills Sun cpp.

	* m68k.md (cmpsf, cmpdf and their recognizers):
	Replace MINUS with COMPARE.
	Also, use VOIDmode for COMPAREs, not SF or DF.

	* optabs.c (sign_expand_binop): Handle ops such as division where
	an unsigned char could be widened and handled with signed int insns.
	* expmed.c (expand_divmod): Use that.

	* c-typeck.c (digest_init): Allow for type variants in validating
	initialization from a string constant.

	* c-typeck.c (decl_constant_value): Disable opt. if pedantic or
	outside functions, so that validity of program is never affected.

	* fold-const.c (fold): Signedness-test for ABS_EXPR was backwards.

Tue Feb 14 01:30:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (main): Don't omit normal output, if we want deps on
	a separate stream.

	* c-decl.c (grokdeclarator): Don't record any arg types for functions
	if -traditional.

	* print-tree.c (prtypeinfo): Mention permanent attribute.

	* tm-next.h: New file.

	* c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK.

	* c-decl.c (duplicate_decls): For fns, new static decl overrides
	old non-static one.

	* emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we
	preserve volatility, etc.

	* stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno
	as file and line for any warning.
	* emit-rtl.c (emit_line_note): Set those vars.

	* c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl.

	* recog.c (offsetable_address_p): Use strict_memory_address_p,	
	since called from reload.c.

Mon Feb 13 03:11:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sparc.md (compare-to-reg patterns): Some still had MINUS.

	* toplev.c (main): Warn if `-a' on system that can't handle it.

	* stmt.c (expand_asm_operands): Delete unused local `val'.
	(pushcase_range): Likewise for `value'.
	(fixup_var_refs): Likewise for `insn'.
	* emit-rtl.c (start_sequence): Likewise for `save'.
	* loop.c (scan_loop): Likewise for `before_start'.
	* expr.c (expand_expr): Delete label `binop1'.

	* reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs.

Sun Feb 12 05:37:46 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* gnulib.c (__bb_init_func): New function

	* tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined.

Sat Feb 11 00:05:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-sparc.h (FUNCTION_PROFILER): Make it really work.
	(BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.

	* final.c (final): Use BLOCK_PROFILER at start of each basic block.
	(final_start_function): Use FUNCTION_BLOCK_PROFILER if -a.
	(end_final): New fn to output the block-profiling tables.
	* toplev.c (profile_block_flag): Set if -a.
	(compile_file): Call end_final.

	* combine.c (try_combine): Avoid combining in most cases if I3
	has an inc or dec and I1 or I2 uses the same register.

	* tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant.

	* c-typeck.c (actualparameterlist): Error if parm type is incomplete.

	* expr.c (expand_call): Ignore args that have incomplete type.

Fri Feb 10 02:26:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-parse.y (case stmts): strip dummy NOP_EXPRs.

	* reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here,
	(choose_reload_targets): not here.

Thu Feb  9 01:35:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-sparc.c (output_mul_by_constant): Forget cc status.

	* stmt.c (assign_parms): Don't put volatile parms in regs.

	* vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers.

	* cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)).

	* c-typeck.c (default_conversion, digest_init): For static const
	nonvolatile scalar variable, use its initial value if known.

	* expr.c (expand_expr: case COMPONENT_REF): If containing structure
	comes out volatile, leave the component MEM volatile too.

	* hard-reg-set.h: Fix multi-word case macros to swallow semicolon.

	* c-typeck.c (default_conversion): In array=>ptr, volatility
	of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE.

	* reload1.c (forget_old_reload_1, choose_reload_targets):
	New array reg_is_output_reload is converse of reg_has_output_reload.
	forget_old_reload_1 needs both.

Wed Feb  8 01:26:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads.
	Do process a spill reg if it isn't used for reloading in this insn.
	(forget_old_reloads): Deleted, replaced with note_stores.
	(reload_as_needed): Undo Feb 1 change.
	Call forget_old_reloads_1 on pseudos autoincremented and not reloaded.

	* c-typeck.c (convert_for_assignment): Handle variant types.

	* c-decl.c (lang_decode_option): -Wall implies -Wunused.

Tue Feb  7 01:32:28 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* combine.c (try_combine): Don't try adding outputs to an asm_operands.

	* cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo.

	* stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0.

	* c-decl.c (parmlist_tags_warning): New fn.
	* c-parse.y (parmlist, parmlist_or_identifiers): Call it,
	to warn about any tags defined inside the parmlist.
	* c-decl.c (grokparms): Don't warn about ptr to incomplete type.
	The new warning is better.

Mon Feb  6 01:11:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (store_constructor): Incorrect ALIGN arg in store_field calls.

	* c-parse.y (%union): Delete unused alternative.

	* c-decl.c (grokparms): Use main variant to test for ptr to incomplete.

	* c-decl.c (finish_enum): Delete superfluous init for `pair'.

	* cse.c (fold_rtx): Optimize X+0, X-0 in floating point.
	Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against.
	(equiv_constant): Allow CONST_DOUBLE.

	* cse.c: Optimize past if-statements that are known to fail.
	(cse_insn): If condjump becomes uncond to end of this block,
	set cse_skip_to_next_block.
	(cse_basic_block): If that happens, ignore rest of block, and maybe
	treat next block as part of this one (if tables have room).
	Resume insn that starts next basic block to be scanned.
	(cse_main): Make room for at least 500 qtys.
	(cse_end_of_basic_block): Subroutine broken out of cse_main.

	* c-parse.y (hash, is_reserved_word): Rewrite: new hash technique.

	* c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch
	involving a function definition.

Sun Feb  5 17:31:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* alliant.md (movdi): Typo in `fmoved'.
	(ftruncsf2): Handle moving into fp reg.

	* jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P.

	* reload1.c (choose_reload_targets): Move all death notes to the
	output reload insn.

	* m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern.

	* loop.c (delete_insn_forces): Use presence of REG_RETVAL to check
	for value-of-library-call insn.

Sat Feb  4 18:17:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (expand_inline_function): Make addresses of stack
	slots valid somehow.

	* tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib.

	* expmed.c (store_bit_field): Avoid (subreg (mem)) when converting
	VALUE1 to SImode.

	* jump.c (jump_optimize): Do delete USE and CLOBBER insns.
	This is needed for proper jump optimization.

	* rtl.def (COMPARE): New code.
	* *.md (compare and related patterns): Use COMPARE, not MINUS:VOID.
	* loop.c (eliminate_biv, can_eliminate_biv_p): Likewise.
	* cse.c (fold_rtx, fold_cc0, cse_insn):
	* output-m88k.c (output_{f,}compare, output_store):
	* output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p):
	* combine.c (subst):
	* jump.c (jump_back_p):

Fri Feb  3 18:34:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-i386.c (notice_update_cc): If arith insn sets the cc's,
	discard all remnants of previous cc value and flags.

	* sparc.md (ashiftrt mem by 24): Fix typo `a1'.

Thu Feb  2 14:55:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-sparc.c (output_mul_insn): Clear the CC status.

Wed Feb  1 20:01:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Version 1.33 released.

	* reload1.c (reload_as_needed): On entering new basic block,
	if it didn't need reload regs, forget all inherited contents of those.

	* tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's.
	Also delete the clauses and tests for FPA regs. 

Tue Jan 31 21:51:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* config.gcc: Handle convex-c1, convex-c2.
	* tm-convex1.h, tm-convex2.h: New files that include tm-convex.h.
	* tm-convex.h: Define switches -mnoc1, -mnoc2.

	* config.gcc: rename `nofp' to `nfp', to match the file names.

Mon Jan 30 22:12:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-sparc.c (output_delay_insn): Extract the operands,
	call alter_subreg, constrain_operands and NOTICE_UPDATE_CC.
	So callers other than output_eager_then_insn don't lose.
	(output_eager_then_insn): No need to do that stuff.

	* symout.c (symout_block_symbols): Handle (MEM (REG)) for
	variable-sized arrays.

	* tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage.

Sun Jan 29 17:06:26 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}.

	* combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt.
	now limited to within the context of (set (cc0) ...).

Sat Jan 28 14:26:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs.
	(fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)).

	* output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant.

	* tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case.

	* Makefile (bootstrap2): Don't use bootstrap3 as subroutine.

	* varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain
	if its MEM is stored in it; so it can be cleared at end of function.

	* stmt.c (emit_case_nodes): Put a compare before each cond-jump.
	Two cond-jumps after one cond is invalid and makes cse produce garbage.

Fri Jan 27 01:05:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881.

	* c-decl.c (start_decl): Don't expand_decl if DECL already has rtl.
	(grokparms): If just declaring fcn, incomplete parm type is just
	a warning, and don't discard the specified type.

	* expmed.c (expand_divmod): Be smarter about not clobbering args
	with intermediate results; one mem can clobber another, and a reg
	can clobber a mem.

	* tm-i386.h (FUNCTION_PROFILER): Use LPREFIX.  May actually work now.
	* tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h.
	This means changing asm syntax.
	#undef DBX_NO_XREFS and DBX_CONTIN_LENGTH.

	* sparc.md (eager branch peepholes): Don't forget 2nd arg to
	safe_insn_src_p.
	Don't print warnings.
	* output-sparc.c: (strict_single_insn_op_p): Return 0 for floating
	REG or MEM, since copying that may take 2 insns.
	(operands_satisfy_eager_branch_peephole): require delay insn to
	be strict_single_insn_op_p as well as safe_insn_src_p.
	(operand_clobbered_before_used_after): Don't print warnings.

	* varasm.c (decode_rtx_const): Clear entire structure incl. gaps.
	Avoids spurious hash mismatches.
	(force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field.
	Also look in that field rather than hashing, to save time.

	* c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so.
	(store_init_value): Change error msg.

	* c-decl.c (duplicate_decls): Classify prototype vs nonprototype
	mismatches better.

	* tm-3b1.h: Fix comment.

Wed Jan 25 12:46:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (cleanlinks): Use -f.

Tue Jan 24 17:54:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (canon_hash): Fix paren error in last change.

	* varasm.c (immed_real_const_1): Missing arg to bcmp.

Mon Jan 23 02:43:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_type): BLKmode elts force array to be BLKmode.

	* genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output.

	* stmt.c (expand_expr_stmt): No "no effect" warning for error-mark.

	* varargs.h: Rename implicit arg name to __builtin_va_alist
	which triggers code in assign_parms.  Does this really matter?

	* sparc.md (sne): New define_expand.
	(seq recognizers): Handle sne as well.
	* output-sparc.c ({strict_,}single_insn_src_p):
	Some NEG and MINUS insns are actually 2 asm insns.
	(safe_insn_src_p): No floating arith is safe; they can trap.
	(eq_or_neq): New fn, for seq/sne recognizers.

	* c-decl.c (grokdeclarator, size of array type):
	Strip from SIZE any NOP_EXPRs that don't change anything.

	* reload.c, recog.c: Include real.h so constraint macros can examine
	CONST_DOUBLEs.

Sun Jan 22 04:12:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-decl.c (init_decl_processing): Define __builtin_saveregs.
	* tree.h: likewise.
	* expr.c (expand_builtin): Handle it.

	* tm-sparc.h: Define TARGET_EAGER and -meager.
	* sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER.
	Change fb insns to use %F.  Delete `,a' from some of them.
	* jump.c (jump_optimize): Don't delete USE and CLOBBER insns.

	* xm-vms.h (const): Define it as empty.

	* make-cccp.com: Move the rename of cexp_tab.c.
	Compile cccp.c with no macro definitions.

	* cccp.c (main): VMS conditional for setting max_include_len.

Sat Jan 21 12:53:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varargs.h (va_start): On sparc, call __builtin_saveregs.
	Delete the old conditional that used va-sparc.h.
	Rename macros and locals to start with two underscores.
	* va-sparc.h: File deleted.

	* c-decl.c (store_parm_decls): Initialize OTHERS.

	* stmt.c (assign_parms): Obey layout_decl.

Fri Jan 20 02:19:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address
	to 16 bits.

	* tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed.

Thu Jan 19 13:53:24 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (mark_addressable): For global reg var, report error.
	Now returns an int; value of 0 means caller should fail.
	All calls (in this file) changed.

	* stor-layout.c (layout_decl): Don't let an more than 1 word
	of any aggregate go in any 1 register.  (Needed for machines whose
	integer regs are 64 bits).

	* tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files.

	* expr.c (convert_move): Use extendqidi2, etc. for converting
	small ints to double ints.  Use zero_extendsidi2 rather than
	clearing the high half.

Wed Jan 18 01:20:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (make_decl_rtl): If global `register' decl is invalid,
	make ordinary non-register rtl.

	* output-sparc.c (operand_clobbered_before_used_after): new fn.
	(reg_clobbered_p, safe_insn_src_p): New fns.
	(single_insn_src_p): Treat constants all as ok, even though not
	always literally so.  Also accept some SIGN_EXTENDs and ZERO_EXTENDs.
	(strict_single_insn_src_p): New fn, like above but is strict
	about constants and constant memory addresses.
	(relop): New fn.
	(output_move_double): Don't make a MEM, and don't use %m.
	(output_delayed_branch): New name for output_delay_insn.
	Now handle non-small constant operands.
	Avoid duplicate loads of g1 for constant addresses.
	Use recog_operand directly for output of the delay insn.
	(output_delay_insn): Now a completely new fn.
	(output_eager_then_insn, next_real_insn_no_labels): New fns.
	(operands_satisfy_eager_branch_peephole): New fn.

	* sparc.md: New peepholes for testing a recently used operand.
	New peepholes for delayed branches, incl. conditional ones.
	** Some of them commented out because they seem not to work.
	(andcc recognizer): Fix typo, missing %.
	(bgt): Change bgt to bg in output.
	(reversed jumps): Replace with one pattern using match_operand.
	It uses %F to output the condition.
	(movsi): For round-valued immed const, use just a sethi.
	For other immed, use explicit sethi and or.
	(movhi, movqi): use `move' for reg source or small int source.
	For other immed, use explicit sethi and or.
	(movsi, etc.):	Handle all constant addresses like SYMBOL_REFs.
	(movsf): Delete never-used duplicate code for constant addresses.
	(addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set.
	(andsi3, iorsi3, xorsi3): Likewise.
	(jump): Make an annulled branch.

	* tm-sparc.h (PROMOTE_PROTOTYPES): Define this.
	(GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses;
	also cleaned up.
	(NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory.
	Assume all PARALLEL insns are peepholes.
	(PRINT_OPERAND): New codes C and N for outputting conditions,
	either forward or reversed.  Also F for reversed floating.

	* jump.c (delete_for_peephole): New function to delete range of insns.
	* genpeep.c (gen_peephole): Output code to use this.

	* Makefile (install): Fix typo, had $${name} for $${file}.

Tue Jan 17 00:00:12 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* i386.md (ashlsi3): Use addl or leal for special cases.

	* c-decl.c (grokdeclarator): Make a non-global VAR_DECL public
	if it is external.

	* masm386.c: Clean up formatting.

	* cse.c (fold_rtx): Typo simplifying x|0 or x^0
	when the 0 comes second.

	* expmed.c (store_fixed_bit_field): For halfwords, verify that
	the field fits in an *aligned* halfword.
	(extract_fixed_bit_field): likewise.

	* expmed.c (store_split_bit_field): New arg align, passed in from
	store_fixed_bit_field and passed back to it.
	(extract_split_bit_field): likewise.

	* expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3.
	Also changes from Dec 23, Dec 28 and Dec 29.

	* tm-i386.h: Likewise for changes from Dec 30.

	* c-typeck.c (build_component_ref): If field's type is error-mark,
	return an error-mark.

Mon Jan 16 14:16:54 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* genpeep.c (main): Output code to exit early if insn is followed
	by a barrier.
	(gen_peephole): Reject barriers just like labels.

	* stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn.
	Caller changed.  Now static.

	* final.c (final): Set INSN_DELETED_P in insns when output.

	* final.c (final): Re-set BODY if peephole does anything.

	* c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list.
	(store_parm_decls): If we had a prototype, separate out anything other
	than a PARM_DECL declared in it, and pushdecl those at the end,
	after DECL_ARGUMENTS is set.

	* stmt.c (expand_end_case): Do stack adjusts after computing index.

	* expr.c (store_one_arg): Handle padding for case of BLKmode
	for which space was preallocated.

	* integrate.c (copy_rtx_and_substitute): When copying asm insn,
	preserve sharing of the input-operand vectors.
	(expand_inline_function): Clear {orig,copy}_asm_operands_vector
	to make that mechanism work.
	(save_for_inline, copy_for_inline): Likewise.

	* stmt.c (expand_asm_operands): Reject `+' in constraints.
	Every output constraint requires `='; inputs reject it.

	* stmt.c (expand_function_end): Arg to fixup_gotos was missing.

Sun Jan 15 00:28:23 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c, gcc.c (main): Handle SIGPIPE.
	(pipe_closed): New fn; report suitable fatal error.

	* loop.c (loop_optimize): Initialize moved_once.

	* gcc.c (do_spec): Don't call `execute' if value != 0.
	Delete redundant second call to do_spec_1.

	* toplev.c (compile_file): Make declared-but-not-defined warnings
	only if -Wunused.

	* stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat.

	* tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong.

	* gcc.c (env_exec_prefix refs): Don't try to open via it if it's null.

	* output-sparc.c (output_store, output_load_{fixed,floating}):
	Fixed confusions between the mem ref and its address.

	* cse.c (canon_hash): global_regs has entries only for hard regs.
	* flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise.

	* cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR
	DIV and shifts with one arg 0 or 1.

Sat Jan 14 11:41:11 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays.

	* fixincludes: Make all subdirs in advance, so no need for `dirname'.

	* genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES;
	instead, clear JUMP_LABEL for any jumps being deleted.
	No need to test INSN1 for being a label, since not called then.
	[If any of the matched insns is a JUMP_INSN, set want_jump,
	and in that case make the matched peephole a JUMP_INSN itself.]
	That's in an #if 0 now; it's good in jump, but not in final.

	* jump.c (jump_optimize): Don't do peepholes here.
	* final.c (final): Do them here.

	* jump.c (jump_optimize): In optimizing `if (foo) bar; else break;',
	don't try to invert anything but a standard-looking conditional jump.

	* jump.c (jump_optimize): Do peepholes on ALL BUT the first pass.

	* gcc.c (env_exec_prefix): New var used like user_exec_prefix
	but set from envvar GCC_EXEC_PREFIX.

Fri Jan 13 13:21:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* genpeep.c (gen_peephole): Test INSN1 for a label at the very start,
	then test following insns at the end of the loop.

	* sparc.md (call recognizers): do CC_STATUS_INIT, for %g1.

Thu Jan 12 02:13:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (make_decl_rtl): Recognize more error cases for reg vars:
	BLKmode, or initializer given.
	Distinguisn missing asm from invalid name.

	* expr.c (expand_call): Never return 0; return const0_rtx instead.
	This makes expand_expr more uniform.

	* c-decl.c (grokparms): For ptr to incomplete type, just warn;
	don't change the parm's type.

	* stmt.c (expand_return): Set RETVAL_RHS so as to recognize
	tail-recursive fcn returning void.
	Unconditionally test value of expand_expr for being a REG.

	* reload.c (find_reloads): Don't process insns that have
	no constraint alternatives.  No more need for have_constraints.

	* recog.c (constrain_operands): New local var nalternatives.
	Don't bother checking the insn if nalternatives is 0.

Wed Jan 11 01:27:48 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Implement global register decls.

	* varasm.c (make_decl_rtl): Handle global register vars.
	(make_function_rtl): Set function_defined: after 1st function dfn.
	(assemble_variable): Ignore global register vars.

	* c-decl.c (grokdeclarator): Don't reject global register decls.
	(builtin_function): Use make_decl_rtl, not make_function_rtl,
	to avoid setting function_defined.

	* regclass.c (init_reg_class{,_1}): Init and process global_regs.
	They are fixed, and call-clobbered.

	* flow.c (insn_dead_p): Storing one of global_regs is never dead.
	(mark_used_regs, mark_set_1): A global reg is never dead.

	* cse.c (canon_hash): Consider global regs volatile.


	* expr.c (do_jump): Know how to invert jumps which are sequences.

	* dbxout.c, symout.c, final.c: On USG, use our own stab.h.

	* tm-i386gas.h: New file for GAS on sysV (with DBX debugging info).

	* m68k.md (bfchg and bfins patterns): Make # alternatives uniform.
	* alliant.md: Likewise; also in movdf patterns.

	* genoutput.c (output_epilogue): Spurious `break' disabled
	error check for mismatched # of alternatives.
	(output_epilogue, scan_operands): Errors in input are not fatal.

	* flow.c (regno_uninitialized): Avoid crash if no basic blocks.

	* sparc.md (move insns): Delete special patterns that handled
	symbolic constant addresses.  The main move patterns now do this.
	* output-sparc.c (output_store, output_load_{fixed,floating}):
	Subroutines to do the work for this; has the code from those
	special patterns.  Also fixed bugs in testing against cc_status.mdep.

	* output-sparc.c (output_delay_insn): Clear the CC status.
	This is necessary for %g1 in the case of a call insn.

	* tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP.
	(REGNO_REG_CLASS): Corresponding change.
	(REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used.

	* optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode.
	All callers changed.
	Pass alignment (as rtx) as 4th arg to cmpstr gen functions.
	Use cmpstrhi if available.
	* expr.c (compare): Only this call passes a nonzero ALIGN.

	* expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx)
	as 4th arg to movstr gen functions.

Tue Jan 10 23:43:05 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stor-layout.c (layout_type): Use BLKmode, if a struct isn't
	aligned well enough for a scalar mode.

	* expr.c (expand_expr): For static CONSTRUCTOR, ensure memory
	address is made valid.

	* genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands.

Mon Jan  9 17:07:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* varasm.c (output_constant): Split strings every 2000 chars.

	* stmt.c (expand_end_case): Test bkwds, handling constant switch arg.

Fri Jan  6 09:11:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* output-sparc.c (output_delay_insn): Add parens to first if test.
	(output_move_double): Turn addr for `sethi' into MEM for %m.

	* c-typeck.c (convert_for_assignment): move test for ERROR_MARK.

	* c-parse.y (unary_expr): Allow cast_expr as arg of unary op.

	* stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl;
	assemble_variable is called after this.

	* c-parse.y (primary -> identifier): Separate case for undeclared
	identifier outside of functions; avoids confusing error msgs.

Thu Jan  5 01:24:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Makefile (install): Ignore errors in all `if' commands.
	Create $(libdir) if nec.

	* Makefile (insn-*.[ch]): Put in empty commands.  May help Ultrix Make.

	* stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps.
	Arg INDEX is an rtx, not a tree.
	(expand_end_case): Pass that arg.
	(node_has_{low,high}_bound): check for overflow, avoid confusion.

Wed Jan  4 02:24:21 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sparc.md (movdi, movdf): Use `&' constraint when loading reg from;
	otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))).

	* expr.c (emit_push_insn): For memory scalar partially going in regs,
	copy each word to reg before pushing.  Avoids memory-to-memory move.
	Make the displaced address valid.
	Also delete unfinished STACK_OFFSET variable.

	* c-parse.y (check_newline): Read just one #-directive and return.
	This prevents lossage when toplev.c calls it to get the main input file
	name, and it gets a following #ident as well.

	* c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual.
	* c-typeck.c (build_c_cast): Issue some warnings if set.

	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'.

Tue Jan  3 18:07:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (emit_library_call): Do force_operand on each operand
	if it isn't a REG, MEM or constant.
	Do this, or mode conversions, earlier, before loading any hard regs.

	* m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'.

	* c-typeck.c (default_conversion): Don't lose `const' or `volatile'
	when converting array type to pointer.

Mon Jan  2 01:18:01 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expmed.c (store_bit_field, store_fixed_bit_field): New arg,
	alignment in bytes the structure is known to have.
	(store_fixed_bit_field): Handle working in halfwords,
	in case the pointer isn't known to have fullword alignment.
	* expmed.c (extract_bit_field, extract_fixed_bit_field): likewise.
	(extract_bit_field): fix unsignedp arg to extract_fixed_bit_field.
	* expr.c (store_field): New arg, passed to {store,extract}_bit_field
	(expand_assignment, store_constructor): Pass that arg.
	(expand_expr): Pass new arg to extract_bit_field.

	* m68k.md (casesi_2 recognizer): Offset always 6 for 3b1.

	* c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs
	put on by build_c_cast (to make the result not an lvalue).
	(build_modify_expr, build_compound_expr): likewise.
	(build_conditional_expr): likewise.
	(actualparameterlist, build_function_call): likewise.
	(default_conversion, truthvalue_conversion): likewise.

	* loop.c (move_movables): If reg has moved out of one loop,
	divide `savings' by 2.

Sun Jan  1 03:00:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* c-typeck.c (truthvalue_conversion): Distribute the conversion
	into the arms of a COND_EXPR.

	* cse.c (fold_rtx): Don't fold a MINUS with VOIDmode
	into a symbolic constant--it's incorrect.

	* cse.c (cse_insn): If SRC is a subreg with known value, simplify it.

	* integrate.c (copy_rtx_and_substitute): Allow a ref to a part of
	MEM parm whose actual parm is a reg, provided it refs
	the low part of the MEM.
	(function_cannot_inline_p): Don't inline functions which have
	aggregate parameters and take their addresses.  This could produce
	refs to non-low-parts, which copy_rtx_and_substitute can't handle.

	* c-typeck.c (build_modify_expr): If lhs is COND_EXPR,
	make a COMPOUND_EXPR to ensure the rhs is computed before the branch.

	* Implement -pipe.
	* gcc.c (do_spec_1): `|' is now a special delimiter
	which goes in the argbuf.
	When a newline is preceded by a `|', delete it if no -pipe.
	Otherwise, don't execute yet, and keep scanning.
	(do_spec): At end, if we have stuff with no newline, execute it.
	(handle_braces): Implement %{|foo:...}.
	(execute): If argbuf contains some `|'s, run several processes
	and pipe them together.
	(pexecute): new subroutine to make one of the processes.
	(find_exec_file): new fn to search for program to execute.
	(record_temp_file): new arg FAIL_ONLY.
	(store_arg): 2nd arg == 3 means delete file on failure.
	This is used for output files.
	(delete_temp_files): delete certain files only if fail.

	* cccp.c (include_defaults): /usr/include before /usr/local/include.

	* recog.c (asm_noperands): 1-off in loop checking CLOBBERS
	when no output operands and PARALLEL.

	* expmed.c (negate_rtx): Sign-extend the high bits rather than clear.

	* cse.c (fold_rtx): fold negation of real values.
	(fold_cc0): fold comparisons on real values.

	* Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H.

	* Handle floating-point problems for cross-compilation.

	* real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE.
	* varasm.c (immed_double_const, decode_rtx_const): Use these.
	({force,clear}_const_double_mem): Likewise.
	* output-*.c (output_move_double): Use these.
	* output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise.
	* tm-*.h (PRINT_OPERAND): Use these.
	* output-i386.c (print_operand): Use these.
	* final.c (output_addr_const): Likewise.
	* emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE.

	* real.h (union real_extract): Portable type for storing real as ints.
	* varasm.c (immed_double_const, decode_rtx_const): Use these.

	* varasm.c (immed_real_const_1, decode_rtx_const):
	Don't assume REAL_VALUE_TYPE is 2 ints long.
	* emit-rtl.c (init_emit_once): Likewise.

	* real.h (REAL_VALUE_TYPE): Define as `double' if not defined.
	(REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used.
	(REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined.
	(REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise.
	* tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value.

	* rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE
	needs more space.  Change the rtx_format element to match.
	* varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE.
	(force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE.
	* emit-rtl.c (init_emit_once): Likewise.
	And use REAL_VALUE_ATOF to get a floating zero.
	* optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP.
	* c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF.
	* fold-const.c (split_tree): Don't accept REAL_CSTs.
	(combine, fold_convert, fold): Use REAL_ARITHMETIC if defined;
	else don't fold reals if they are not doubles.
	* tree.c (build_real_from_int_cst): Likewise.
	* print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value
	in hex, since we don't know how to do it right.

Sat Dec 31 14:15:13 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL,
	DIVSI3_LIBCALL, MODSI3_LIBCALL.
	* tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct.

	* tm-sun3-nfp.h, tm-sun3-fpa.h: New files.

Fri Dec 30 00:14:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* cccp.c (main): Certain envvars specify a file to write deps info to.

	* toplev.c (compile_file): Warn about undefined fns declared static.

	* m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards.
	* tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise.  Also missing `\'.

	* reload1.c (count_occurrences): New function.
	(choose_reload_targets): Don't delete a reload if the same reg
	is used elsewhere in the current insn.
	(delete_output_reload): code split out from choose_reload_targets.

	* c-typeck.c (build_c_cast): Always put on some operator,
	so the cast is never an lvalue for strict ANSI.

	* c-typeck.c (initializer_constant_valid_p): Don't depend on
	distinction between NOP_EXPR and CONVERT_EXPR.

	* c-convert.c: Fns reordered; new comments.

	* fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR,
	return a NOP_EXPR.
	New var TYPE holds type of expr.

	* c-parse.y (expr_no_commas): Split off cast_expr and unary_expr,
	to reject `sizeof (int) foo'.

	* toplev.c (main): Treat plain `-' as input filename.

	* final.c (final): If an insn's output routine returns 0,
	it means to output the deleted compare insn immediately preceding.

	* m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP
	rather than explicitly clearing the overflow flag.

	* tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort.
	* i386.md (branch insns): Put real data (sometimes 0) in 3rd arg
	of OUTPUT_JUMP.  0 means preceding test may not be deleted.
	(lea pattern): Clear the cc's.
	* output-i386.c (notice_update_cc): various arith insns set the cc's.

Thu Dec 29 13:22:01 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* stmt.c (expand_decl_init): Do nothing for static decls.

	* reload.c (find_reloads_address{,_1}): Return 1 iff entire arg
	was reloaded as a whole, else 0.
	(find_reload): If find_reloads_address returns 1, don't let that MEM
	satisfy a `>' or `<' constraint.

	* m68k.md (cmpmb): Delete special pattern, make cmpqi handle it.
	The special pattern couldn't handle reloading the incremented register.

	* integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN,
	not BITS...

	* combine.c (subst): Consider big-endian correction
	when simplifying (subreg (mem ...) ...).

	* reload.c (find_reloads): Don't crash if matching operands in `asm'
	are both read or both write.

	* expr.c (emit_push_insn): Address for movstr must be XINNER, not X.

	* toplev.c (main): Typo parsing `-fno...'.

Wed Dec 28 13:07:21 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* toplev.c (rest_of_compilation): `volatile' fns need jump_optimize
	for warnings, as if -Wreturn-type.
	* c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn.
	* c-decl.c (finish_function): Warn if `volatile' fn can drop thru end.

	* cse.c (canon_reg): Handle nulls as subexpressions.
	(fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise.
	* loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p,
	{basic,general}_induction_var): Likewise.

	* expr.c (expand_call): Handle `const' functions:
	Local IS_CONST is 1 if function is const.
	Attach REG_RETVAL and REG_LIBCALL notes around the call.
	Copy fn address to register outside of those notes.
	Likewise precompute all parms outside them.

	* expr.c (expand_call): If fn is volatile, emit barrier after the call.

	* c-decl.c (grokdeclarator): Allow function declared const or volatile.

Sat Dec 24 18:40:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING
	or STRUCT_VALUE	is defined, can't inline functions returning BLKmode.

Fri Dec 23 13:26:26 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* expr.c (store_constructor): Compute array's size
	with int_size_in_bytes.

	* varasm.c (assemble_variable): If shared data, go to data section
	before outputting an uninitialized symbol.

	* tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash.
	(SHARED_SECTION_ASM_OP): Macro defined.
	* tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined.

	* c-typeck.c (c_expand_asm_operands): Warn if output op is `const'.

	* Fix problem where a stmt expr in an initialization
	refers to the variable it is initializing.
	* stmt.c (expand_decl_init): New fn split out from `expand_decl'.
	* c-decl.c (finish_decl): Call that.
	Don't call expand_decl if already done.
	(start_decl): Call expand_decl if type is complete already.

	* Makefile (install): Typo in ranlib command.

Thu Dec 22 15:57:12 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* tree.h (tree_identifier): New field.
	(IDENTIFIER_ERROR_LOCUS): Accessor for it.
	* c-parse.y (primary => IDENTIFIER):
	Undeclared variable gets one err msg per function it appears in.

	* ns32k.md (andsi3): Delete extra brace.

	* alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files.

	* combine.c (SUBST, SUBST_INT): Store new field `is_int'.
	(copy_substitutions): Don't copy an int as an rtx.

	* Makefile (INSTALL): Install gcc.1 properly.

	* tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE):
	Add missing backslashes.

See file OChangeLog.

Local Variables:
mode: indented-text
left-margin: 8
fill-column: 76
version-control: never
End: