Sat Jan  9 08:19:14 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* toplev.c (rest_of_compilation): Set cse_not_expected earlier.

	* optabs.c (emit_conditional_move): Undo canonicalization previously
	done by get_condition.

	* jump.c (jump_optimize): Move simple optimizations in front
	of complex ones.
	Reset NEXT whenever deleting an insn in case NEXT was deleted.
	Disable some conditional move optimizations if have 
	conditional arithmetic or if CSE not run yet.
	Add new optimization to conditionalize code if have conditional
	arithmetic.
	(can_reverse_comparison_p): Check REVERSIBLE_CC_MODE.
	(condjump{,_in_parallel}_p): Simplify.

Thu Jan  7 09:25:51 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* jump.c (delete_computation): Don't trust location of REG_DEAD
	note within a basic block.

Sat Dec 26 06:31:43 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* cse.c (cse_insn): Always make SET a nop if dest is hard regster and
	src is equivalent.

	* flow.c (print_rtl_with_bb): Write insns in epilogue delay list.

	* combine.c (simplify_set): Update SET_SRC after force_to_mode call.
	If HAVE_conditional_arithmetic, make conditional if comparison
	operator is arg of arithmetic.

	* genconfig.c (have_cond_arith_flag): New variable.
	(walk_insn_part, case IF_THEN_ELSE): Set it.
	(main): Define HAVE_conditional_arithmetic if have_cond_arith_flag.

	* reorg.c (optimize_skip): Count insns in delay slots for epilogue
	as being after a conditional return.

Wed Dec 23 07:30:22 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* mips.md (movdf [mips4]): Remove '=' in constraint when not output.

	* toplev.c (fatal_function): New static variable.
	(set_fatal_function): New function.
	(vfatal): If fatal_function nonzero, call it.

Thu Dec 10 07:21:44 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (move_by_pieces_1): Give inner arg types of function passed
	as first operand.

	* aclocal.m4 (GCC_HEADER_INTTYPES, GCC_CHECK_STRINGIFY): New macros.
	* configure.in: Use them instead of inline text.
	(malloc.h): Check for presence.
	(free, malloc, calloc, realloc): Include malloc.h to see if need decl.
	* system.h (malloc.h): Conditionally include.
	(free, malloc, calloc, realloc): Conditionally declare.
	* xm-mn10200.h (free, malloc, realloc, calloc): Remove redundant decls.
	* xm-mn10300.h, rs6000/xm-sysv4.h, xm-v850.h: Likewise.
	* xm-alpha.h: Likewise.
	(string.h): Remove reundant #include.
	* rtl.h (free): Remove declaration.
	* tree.h (free): Likewise.

	* gcov.c (fatal): New function.

Wed Dec  9 06:25:12 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* protoize.c: Remove extraneous #endif.
	Remove redundant declarations and includes.
	(fatal): New function, from gen*.c.

Wed Dec  9 06:16:26 1998  Craig Burley  (burley@gnu.ai.mit.edu)

	* fold-const.c (multiple_of_p): New function.
	(fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR.

Wed Dec  9 04:42:23 1998  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* expr.h, real.h: Add more prototypes.

Tue Dec  8 06:04:19 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* c-typeck.c (c_expand_asm_operands): Fix text of error message
	and handle conversion as lvalue.

Mon Dec  7 21:35:31 1998  Paul Eggert  <eggert@twinsun.com>

	* dwarf2out.c (dyn-string.h): Fix patching error.
	* toplev.c (<sys/times.h>): Include if HAVE_SYS_TIMES_H is defined.

Sun Dec  6 01:14:46 1998  Paul Eggert  <eggert@twinsun.com>

	* collect2.c (mktemp): Remove unused decl.

Sat Dec  5 21:02:13 1998  Paul Eggert  <eggert@twinsun.com>

	* cccp.c (fwrite): New VMS macro.
	(VMS_fwrite): New VMS function.
	(strerror): Declare only if NEED_DECLARATION_STRERROR.
	(warn_white_space): New var.
	(do_warning): Remove.
	(directive_table): Use do_error to print warnings.
	(eprint_string): Remove.  All callers now use fwrite instead.
	(check_white_space): New function.
	(fatal): Now extern.
	(main): Add new option --White-space, implied by -Wall.
	If DEPENDENCIES_OUTPUT has the form `FILE TARGET', have TARGET depend
	on source file as well as files it includes.
	(newline_fix, name_newline_fix): Assume that *BP == '\\',
	but don't assume that BP[1] == '\n'; all callers changed.
	(rescan): Warn about white space at end of line in string.
	Fix bug with counting newlines in strings as result of macro-expanding.
	(expand_to_temp_buffer): Do not stomp on the output buffer length;
	all callers changed.
	(handle_directive): No need to check bp < limit if *bp == '\n'.
	Allocate a larger directive buffer; expand newline to
	backslash-'n' in string literals.
	(timestamp): Don't assume that localtime succeeds.
	(finclude): Add call to check_white_space in included file.
	(collect_expansion): No need to check for p < limit at backslash.
	(do_line): Allow nulls in file name.
	(do_error): Also do warnings.
	(do_pragma): Handle escapes in strings correctly.
	(skip_quoted_string): Don't say ``Unterminated string or character''
	if it's known to be a character.
	Warn about white space at end of line in string.
	(struct argdata): New member expand_size.
	Rename member stringified_length to stringified_length_bound.
	All uses changed.
	(macroexpand): Record expand_size separately from expand_length.
	Generate nothing for backslash-newline in a string.
	Escape newlines in strings.
	(macarg): Have macarg1 count newlines.  Escape newlines in strings.
	(macarg1): Skip backslash-newline in strings.
	(change_newlines): Now takes struct argdata * (not U_CHAR * and int)
	returns void, not int.  Modify the arg in-place.
	(change_newlines, make_definition): In strings, replace
	backslash-newline with nothing, and non-backslashed newline
	with backslash-'n'.

	* cexp.y (fatal): New decl (exported by cccp.c).
	(yylex): Allow multiple-char constants like 'abcde' that are longer
	than long; draft C9x requires this.  Don't treat (char)-1 like EOF.
	(parse_escape): Return -2 if backslash-newline is seen.
	Parse backslash-newline in numeric escapes.
	Parse \x using unsigned, not signed, for proper overflow detection.

Fri Dec  4 16:24:36 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* Defer some __builtin_constant_p elaborations until after cse;
	original idea from rth@cygnus.com
	* rtl.def (CONSTANT_P_RTX): New RTL code.
	* expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
	consider constant CONSTRUCTOR constant and to defer some cases to cse.
	* cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
	* regclass.c (reg_scan_mark_refs, case CONST): Likewise.
	
Tue Dec  1 09:35:45 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* Makefile.in (C_AND_OBJC_OBJS): Add mbchar.o.
	(c-lex.o, cexp.o, cccp.o): Depend on mbchar.h.
	(mbchar.o): New rule.
	(CCCP_OBJS, CPPMAIN_OBJS): Include mbchar.o.
	* po/POTFILES.in (mbchar.[ch]): Add.

Tue Dec  1 09:32:27 1998  Dave Brolley  <brolley@cygnus.com>

	* mbchar.[ch]: New files for multibyte character handling.
	* configure.in (enable_c_mbchar): New configure option.
	* cexp.y (mbchar.h): #include it.
	(yylex): Handle Multibyte characters in character literals.
	* cccp.c (mbchar.h): #include it.
	(main): Set character set based on LANG environment variable.
	(rescan): Handle multibyte characters in comments.
	(skip_if_group, validate_else, skip_to_end_of_comment): Likewise.
	(macarg1, discard_comments): Likewise.
	(rescan): Handle multibyte characters in string and character literals.
	(collect_expansion, skip_quoted_string, macroexpand): Likewise.
	(macarg1, discard_comments, change_newlines): Likewise.
	* c-lex.c (mbchar.h): #include it.
	(GET_ENVIRONMENT): New macro.
	(init_lex): Set character set based on LANG environment variable.
	(yylex): Handle multibyte characters in character and string literals.

Mon Nov 30 08:25:35 1998  Mark Mitchell  <mark@markmitchell.com>

	* dyn-string.h: New file.
	* dyn-string.c: Likewise.
	* Makefile.in (OBJS): Add dyn-string.o.
	(dwarf2out.o): Add dyn-string.h dependency.
	(dyn-string.o): New rule.
	* dwarf2out.c (dyn-string.h): Include.
	(ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
	(addr_const_to_string): Take a dyn_string_t, not a char * as a
	prototype.  Use dyn_string_append rather than strcat, throughout.
	(addr_to_string): Use dyn_string_t.

Mon Nov 30 06:57:49 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* po/POTFILES.in (dyn-string.[ch]): New files.

	* sched.c (swap_sort): Fix typo in last change.

Sun Nov 29 21:02:34 1998  Paul Eggert  <eggert@twinsun.com>

	* po/POTFILES.in: Add gengenrtl.c, system.h.

Sun Nov 29 16:36:59 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expmed.c (emit_store_flag): Don't try to negate STORE_FLAG_VALUE.

	* configure.in: Remove inadvertently added duplicate tests.

	* reload1.c (emit_reload_insns): Fix typos in preserve death note code.

	* Makefile.in (c-lex.o): Depends on $(RTL_H).

	* genattr.c (fatal): No longer static.
	* genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
	* genextract.c, genflags.c, gengenrtl.c, genopinit.c: Likewise.
	* genoutput.c, genpeep.c, genrecog.c: Likewise.

	* 1750a.c: Use gen_rtx_FOO and GEN_INT, not gen_rtx; include system.h.
	* a29k.c, alpha.c, arc.c, arm.c, clipper.c, convex.c: Likewise.
	* dsp16xx.c, fx80.c, gmicro.c, h8300.c, i386.c, i860.c: Likewise.
	* i960.c, m32r.c, m68k.c, m88k.c, mips.c, mn10200.c: Likewise.
	* mn10300.c, ns32k.c, pa.c, pdp11.c, pyr.c, romp.c: Likewise.
	* rs6000.c, sh.c, sparc.c, spur.c, tahoe.c, v850.c: Likewise.
	* vax.c, we32k.c: Likewise.
	* elxsi.c, i370.c: Include system.h
	* gofast.h: Use gen_rtx_FOO and GEN_INT instead of gen_rtx.
	* 1750a.{md,h}, a29k{md,h}, alpha.{md,h}, alpha/vms.h: Likewise.
	* arc.{md,h}, arm.{md,h}, clipper.{md,h}, convex.{md,h}: Likewise.
	* dsp16xx.{md,h}, elxsi.h, fx80.{md,h}, gmicro.{md,h}: Likewise.
	* h8300.h, i370.{md,h}, i386.{md,h}, i386/cygwin32.h: Likewise.
	* i386/osfrose.h, i386/win-nt.h, i860.{md,h}, i960.{md,h}: Likewise.
	* m32r.{md,h}, m68k.{md,h}, m68k/a-ux.h, m68k/crds.h: Likewise.
	* m68k/isi.h, m68k/linux.h, m68k/lynx.h, m68k/m68kemb.h: Likewise.
	* m68k/m68kv4.h, m68k/mot3300.h, m68k/news.h, m68k/sun3.h: Likewise.
	* m88k.{md,h}, mips.{md,h}, mips/abi64.h, mn10200.{md,h}: Likewise.
	* mn10300.{md,h}, ns32k.{md,h}, pa.{md,h}, pyr.{md,h}: Likewise.
	* romp.{md,h}, rs6000.{md,h}, sh.{md,h}, sparc.{md.h}: Likewise.
	* spur{md,h}, tahoe.{md,h}, v850.{md,h}, vax.{md,h}: Likewise.
	* we32k.{md,h}: Likewise.

Sat Nov 28 19:32:33 1998  Jeffrey A Law  (law@cygnus.com)

	* rtl.def (INLINE_HEADER): Fix type error found by gen_rtx_FOO changes.

        * configure.in: If host != build, run autoconf to generate auto
	build.h for the build machine and include it in build_xm_files.
	
Sat Nov 28 19:20:06 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* bc-emit.c, caller-save.c, calls.c, combine.c: Call gen_rtx_FOO.
	* cse.c, dwarf2out.c, emit-rtl.c, except.c, explow.c: Likewise.
	* expmed.c expr.c, final.c, function.c, genpeep.c, halfpic.c: Likewise.
	* integrate.c, jump.c, local-alloc.c, loop.c, optabs.c: Likewise.
	* profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise.
	* reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise.
	* unroll.c, varasm.c: Likewise.

	* Makefile.in (*.o): Depend on system.h.
	* system.h (ANSI_PROTOTYPES): Add definition.
	* *.c, c-parse.in, cexp.y: Include system.h and delete any
	non-redundant includes, macro definitions, or declarations.
	* gen*.c, bc-emit.c, calls.c, cccp.c, combine.c, emit-rtl.c:
	Use ANSI_PROTOTYPES, not __STDC__ to select varargs vs. stdargs.
	* gcc.c, mips-tfile.c, prefix.c, toplev.c, tree.c: Likewise.
	* gen*.c (fatal): Fix error in varargs case.
	* genattrtab.c (fatal): Make same as other gen programs.
	* genattrtab.c: Write #include for system.h in output.
	* genemit.c, genextract.c, genoutput.c, genpeep.c: Likewise.
	* genrecog.c: Likewise.

Sat Nov 28 06:01:525 1998  John F. Carr  <jfc@mit.edu>

	* emit-rtl.c (const_int_rtx): Now array of rtx_def, not rtx.

Sat Nov 28 05:53:45 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* rtl.h (obstack_alloc_rtx): New declaration.
	* rtl.c (rtx_alloc): Try to clear as integer or HOST_WIDE_INT indirect.
	(obstack_alloc_rtx): New function.

Sat Nov 28 05:46:41 1998  Richard Henderson  <rth@cygnus.com>

	* gengenrtl.c: New file.
	* Makefile.in (OBJS): Add genrtl.c.
	(GEN): Add gengenrtl.
	(STAGESTUFF): Add s-genrtl and gengenrtl$(exeext);
	(RTL_BASE_H): New, from RTL_H.
	(RTL_H): Contains RTL_BASE_H and genrtl.h
	(genrtl.o, genrtl.c, s-genrtl, gengenrtl): New rules.
	* emit-rtl.c (gen_rtx_{CONST_INT,REG,MEM}): New functions.
	(gen_rtx): Call them.
	* genemit.c (gen_exp, gen_insn): Call gen_rtx_FOO for constant FOO.
	* rtl.h (genrtl.h): Include ifndef NO_GENRTL_H.
	(gen_rtx_{CONST_INT,REG,MEM}): New declarations.
	(GEN_INT): Call gen_rtx_CONST_INT.

Fri Nov 27 20:16:12 1998  Michael Meissner  <meissner@cygnus.com>

	* configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr.

Fri Nov 27 20:13:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h: New file.

	* configure.in (AC_CHECK_FUNCS): Remove check for vprintf.
	Add check for isascii and strsignal.
	Collapse multiple calls.
	(GCC_NEED_DECLARATIONS): Likewise, from GCC_NEED_DECLARATION.
	Check for bcopy, bcmp, bzero, strerror, atof, getcwd,
	strsignal and getwd.
	Add checks for getrlimit and setrlimit; search in sys/resource.h.
	(GCC_FUNC_PRINTF_PTR, GCC_C_VOLATILE, GCC_FUNC_VFPRINTF_DOPRNT): Call.
	(GCC_HEADER_STRING, AC_FUNC_VFORK, AC_HEADER_SYS_WAIT): Likewise.

	* acconfig.h (NEED_DECLARATION_{STRERROR,GETCWD,GETWD,BZERO}: Add.
	(NEED_DECLARATION_{{G,S}ETRLIMIT,STRSIGNAL,BCOPY,BCMP}): Likewise.
	(STRING_WITH_STRINGS, HAVE_VOLATILE, HOST_PTR_PRINTF): Likewise.

	* aclocal.m4 (GCC_NEED_DECLARATION): Accept optional second arg.
	Test STRING_WITH_STRINGS when deciding which headers to search for
	function declarations.
	(GCC_NEED_DECLARATIONS, GCC_HEADER_STRING): New autoconf test.
	(GCC_FUNC_{VFPRINTF_DOPRNT,PRINTF_PTR}, GCC_C_VOLATILE): Likewise.

Fri Nov 27 20:10:42 1998  Richard Henderson  <rth@cygnus.com>

        * configure.in: Add cpp stringify test.
	(AC_CHECK_FUNCS): Check for sbrk.
	* acconfig.h (HAVE_CPP_STRINGIFY): New tag.

Fri Nov 27 20:09:27 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure.in (AC_CHECK_FUNCS): Check for getrlimit and setrlimit.

Fri Nov 27 19:48:27 1998  Jeffrey A Law  <law@cygnus.com>

	* configure.in (AC_CHECK_FUNCS): Add gettimeofday, atoq, atoll,
	strerror, stroul, abort and bsearch.
	* acconfig.h (NEED_DECLARATION_{ATOL,ABORT}): New tags.

Fri Nov 27 19:46:09 1998  Jim Wilson  <wilson@cygnus.com>

	* acconfig.h (HAVE_INTTYPES_H): New tag.
	* configure.in (inttypes.h): Check for conflicts between sys/types.h
	and inttypes.h and verify that intmax_t is defined.
	
Fri Nov 27 08:07:53 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alpha.c (sext_add_operand): Use reg_not_elim_operand.
	(reg_not_elim_or_8bit_operand): New function.
	* alpha.h (PREDICATE_CODE): Add new entry and alphabetize.
	* alpha.md (mult patterns): Ensure eliminable reg not any input.

	* Makefile.in (STAGESTUFF): Remove s-ver.
	(s-ver): Remove rule and revert back to version.c as target.

Fri Nov 27 02:39:36 1998  Paul Eggert  <eggert@twinsun.com>

	* cccp.c (main): Make `-I -' equivalent to `-I-'.

Fri Nov 27 02:39:36 1998  Sam Kendall  <kendall@init.com>

	* cccp.c (main): Avoid `++i' and `i' in same expression.

Thu Nov 26 19:42:02 1998  Stephen L Moshier  <moshier@mediaone.net>

	* real.c (ereal_atof): New function for hexadecimal floating constants.
	* real.h (REAL_VALUE_HTOF): New macro for hex float conversion.
	* c-lex.c (yylex): Use it and check syntax of hex floats.
	* fold-const.c (real_hex_to_f): New function reads hex float
	if no REAL_ARITHMETIC.

Thu Nov 26 18:51:51 1998  Richard Henderson <rth@cygnus.com>

	* alpha.c (reg_not_elim_operand): New function.
	* alpha.h (PREDICATE_CODES): Add it.
	* alpha.md: Remove reload-only patterns for (plus (plus (mult ...))).
	(s[48]{add,sub}q): Use new function as predicate for multiplicand.

Thu Nov 26 09:13:35 1998  Hans Cappelle  <cappelle@imec.be>

	* reorg.c (fill_simple_delay_slots): Fix typo in sets_cc0_p call.

Thu Nov 26 06:15:46 1998  Paul Edwards  <avon@matra.com.au>
 
	* genattr.c (fatal): Use vprintf if available.
	* genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
	* genextract.c, genflags.c, genopinit.c, genoutput.c: Likewise.
	* genpeep.c: Likewise.

Wed Nov 25 08:02:23 1998  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (version.c): Truncate tmp-version.c when writing to
	it, instead of appending.  Use timestamp file s-ver to prevent
	repeated rebuilding of file with unchanged contents.
	(STAGESTUFF): Add s-ver.

Wed Nov 25 07:53:24 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload.h (form_sum): Add new parm, DIFF_P.
	* reload.c (form_sum): Likewise.
	(subst_indexed_address): Call it with new parm.
	* reload1.c (eliminate_regs, case MINUS): Make common with PLUS.
	(eliminate_regs_in_insn): Re-recognize if was MINUS.
	* alpha.md: Add patterns for (plus (minus (mult ..) ...) ...).

	* libgcc2.c (__bb_init_prg): Avoid use of bzero.

	* combine.c (make_extraction): Make extraction even if may
	span if INNER is not MEM.

Wed Nov 25 07:30:28 1998  David Addison <addy@quadrics.com>

	* sparc.h (SPARC_INCOMING_INT_ARG_FIRST): Respect TARGET_FLAT.

Mon Nov 23 07:00:57 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* function.c (purge_addressof_1): If validate_change fails, try
	validate_replace_rtx.

	* expr.c (expand_expr, case ADDR_EXPR): Non-constant can be ADDRESSOF.

	* expr.c (store_constructor_{,field}): New parameter ALIGN and
	use it when making recursive calls and clearing memory.
	(expand_expr, case CONSTRUCTOR): Call with new parameter.

	* mips/abi64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove ABI_EABI test.
	* mips.c (function_arg_pass_by_reference): Return 1 if would
	ot