Mon Apr 19 13:28:03 1999  Fred Fish  <fnf@be.com>

	* aclocal.m4 (rindex, index): If already defined, don't attempt
	to redefine with #define.
	* gen-protos.c (add_hash): Cast first hashf arg to "U_CHAR *".
	* cpphash.c (cpp_lookup): Cast first strncmp arg to "char *", from
	"U_CHAR *".

	* cpplib.c: Fix lots of implied conversions between "char *" and
	"U_CHAR *" by casting as needed.
	* fix-header.c: Ditto.
	* scan-decls.c: Ditto.

1999-04-17  Fred Fish  <fnf@be.com>

	* expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
	proper type of "HOST_WIDE_INT *", rather than their natural type of
	"unsigned HOST_WIDE_INT *".
	* config/rs6000/xm-beos.h (HAVE_VPRINTF, HAVE_PUTENV): Only define
	if not already defined, the same as i386/xm-beos.h.

1999-04-07  Fred Fish  <fnf@be.com>

	* cross-make (SYSTEM_HEADER_DIR): Define using
	CROSS_SYSTEM_HEADER_DIR.
	* config/i386/t-beos (CROSS_SYSTEM_HEADER_DIR): Define as
	$(tooldir)/include/posix.

1999-04-06  Fred Fish  <fnf@be.com>

	* config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add
	/boot/develop/headers/be/devel and
	/boot/develop/headers/be/opengl.  Expand definition
	to include entries for cross compilers, where the Be
	specific headers are found relative to TOOL_INCLUDE_DIR.

Sun Feb 28 22:00:36 1999  Fred Fish  <fnf@be.com>

	* configure.in (x86-*-beoself*): No longer need USE_C_ALLOCA.
	* configure: Ditto.
	* config/i386/beos-elf.h (SMALL_STACK): No longer need to define.

1999-02-19  Jason Merrill  <jason@yorick.cygnus.com>

	* dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
	rather than asserting it.

Tue Jan 19 11:49:12 1999  Pavel Cisler  <pavel@be.com>

	* config/i386/beos-elf.h (FULL_PATHS_IN_ERRORS): Define.
	* toplev.c (__convert_to_full_path): New function.
	(CONVERT_PATH): Macro to use __convert_to_full_path.
	* cccp.c (getpwd): New function.
	(__convert_to_full_path): Ditto
	(__print_converted_path): Ditto
	(CONVERT_PATH): Macro to use _covert_to_full_path.
	(PRINT_CONVERTED_PATH): New macro.

	* cccp.c (verror): Use PRINT_CONVERTED_PATH.
	(error_from_errno): Ditto.
	(vwarning): Ditto.
	(verror_with_line): Ditto.
	(vwarning_with_line): Ditto.
	(pedwarn_with_file_and_line): Ditto.
	(print_containing_files): Ditto.

	* toplev.c (default_print_error_function): Use CONVERT_PATH.
	(report_error_function): Ditto.
	(v_message_with_file_and_line): Ditto. 
	(v_message_with_decl): Ditto.

Mon Jan 18 11:21:51 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* explow.c (plus_constant_wide): Don't immediately return with
	result of recursive call.

Wed Dec  9 12:01:35 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
	instead of TREE_CODE_CLASS == 't'.
	(gen_type_die): Likewise.
	(scope_die_for): Ignore FUNCTION_TYPE "scopes".

1998-12-02  Fred Fish  <fnf@be.com>
  
	* config/i386/beos-elf.h (LINK_SPEC): For entry point to be
	zero when using -nostart option.
	(STARTFILE_SPEC): Rename option "addon" to be "nostart".

1998-12-02  Fred Fish  <fnf@be.com>

	* config/i386/beos-elf.h (CPP_SPEC): Define __PIC__ and __pic__
	unless user supplies -no-fPIC or -no-fpic options.
	(CC1_SPEC): Supply -fpic arg to compiler main passes unless
	user supplies -no-fpic or -fPIC.

Thu Nov  5 13:46:22 1998  Richard Henderson  <rth@cygnus.com>

	* flow.c (merge_blocks): Disable until the lexical block issue
	can be delt with.
	* final.c (final_scan_insn): Abort if lexical block nesting has
	been corrupted.

Tue Nov  3 21:22:41 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* config/i386/beos-elf.h (MULTIPLE_SYMBOL_SPACES): Define.

Tue Nov  3 16:29:19 1998  Richard Henderson  <rth@cygnus.com>

	* dwarf2out.c (gen_type_die): Mark type variants as having been
	dealt with as well.

Tue Nov  3 08:09:08 1998  Fred Fish  <fnf@be.com>

	* config/i386/beos-elf.h (PREFERRED_DEBUGGING_TYPE): Change default
	to be DWARF2_DEBUG.

Fri Oct 30 13:08:41 1998  Richard Henderson  <rth@cygnus.com>

	* i386.c (fix_trunc*): Early clobber the output register, so as 
	not to interfere with the input memory addresses.

Fri Oct 30 10:46:02 1998  Richard Henderson  <rth@cygnus.com>

	* dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
	if defined.
	* dwarfout.c (output_mem_loc_descriptor): Likewise.
	* i386.c (i386_simplify_dwarf_addr): New.
	* i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.

Wed Oct 28 16:01:00 1998  Richard Henderson  <rth@cygnus.com>

	* dwarf2out.c (ASM_OUTPUT_DWARF2_ADDR_CONST): Renamed from 
	ASM_OUTPUT_DWARF_ADDR_CONST.  Update all callers.
	(dwarf2out_addr_const_to_string): Rename from addr_const_to_string.
	Make public.  Look for ASM_DWARF2_ADDR_CONST_TO_STRING and exit
	if it handles the rtx.
	* dwarf2out.h (dwarf2out_addr_const_to_string): Prototype.

	* i386.c (i386_dwarf1_output_addr_const): New.
	(i386_dwarf2_addr_to_string): New.
	* i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
	(ASM_DWARF2_ADDR_CONST_TO_STRING): New.

Tue Oct 27 19:49:09 1998  Richard Henderson  <rth@cygnus.com>

	* i386.md (movqi+1): Force word-mode on non-qi-capable inc's.

1998-10-27  Brendan Kehoe  <brendan@cygnus.com>

	* integrate.c (copy_decl_list): Fix typo---pass LIST, not HEAD.

Mon Oct 26 16:36:57 1998  Fred Fish  <fnf@be.com>
 
	* config/i386/beos-elf.h (CC1_SPEC): Add -Wno-ctor-dtor-privacy as
	part of default flags to pass.

Mon Oct 26 16:30:40 1998  Fred Fish  <fnf@be.com>
			  Richard Henderson  <rth@cygnus.com>

        * system.h: Undef alloca after including glibc's <stdlib.h>,
        if USE_C_ALLOCA is defined.
        * alloca.c: Ditto.
        (alloca): Use size_t for type of passed arg.
	* configure.in: Detect size_t.

Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>

	* tree.h (DECL_ORIGIN): New macro.
	* integrate.c (copy_and_set_decl_abstract_origin): New function.
	(copy_decl_list): Use it.
	(integrate_parm_decls): Likewise.
	(integrate_decl_tree): Likewise.
	* dwarf2out.c (decl_ultimate_origin): Simplify.
	* dwarfout.c (decl_ultimate_origin): Likewise.
	* c-decl.c (duplicate_decls): Use DECL_ORIGIN.
	(pushdecl): Likewise.

Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)

        * i386.c (output_to_reg): Add code to emulate non-popping DImode
        case.

Mon Oct 12 13:04:04 1998  Richard Henderson  <rth@cygnus.com>

	* gcc.c (main): After all input files are compiled, reset the
	input file info to the first, for use with the linker output.
	* i386/beos-elf.h (LINK_SPEC): Don't default to a.out.

Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>

        * function.c (purge_addressof_1): Use bitfield manipulation
        routines to handle mem mode < reg mode.

Wed Sep 30 01:26:13 1998  Richard Henderson  <rth@cygnus.com>

	* i386.md (addsi3): Allow any kind of constant to use leal.

Mon Sep 28 16:24:56 1998  Fred Fish  <fnf@be.com>

	* config/i386/beos-elf.h (LIB_SPEC): Add -lnet.
	(CC1_SPEC): Add -Wno-multichar.

Mon Sep 28 16:08:34 1998  Richard Henderson  <rth@cygnus.com>

	* i386/beos-elf.h (INCLUDE_DEFAULTS): Don't define if cross-compiling.
	* i386/beos-pe.h (INCLUDE_DEFAULTS): Likewise.

Mon Sep 28 15:52:03 1998  Richard Henderson  <rth@cygnus.com>

        * i386.c (legitimate_pic_operand_p): New function.
        (legitimize_pic_address): Recognize (const (plus)) patterns we
        already generated.  Streamline.
        * i386.h (LEGITIMATE_PIC_OPERAND_P): Call legitimate_pic_operand_p.

Fri Sep 18 15:09:34 1998  Fred Fish  <fnf@be.com>

        * config/i386/beos-elf.h (STARTFILE_SPEC): Only use
        start_dyn.o if "-addon" option is not given.
        * tm.texi (NEED_MATH_LIBRARY): Remove docs, no longer used.
        * config/i386/t-beos (INSTALL_ASSERT_H): Define to empty.
        We will use the assert.h that comes with BeOS.

Fri Sep 18 15:06:44 1998  Jeffrey A Law  (law@cygnus.com)

	* regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.

Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>

        * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
        narrower than FLOAT_REGS.

Tue Sep 15 18:58:17 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>

        * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
        return FLOAT_REGS.

Tue Sep 15 18:24:45 1998  Richard Henderson  <rth@cygnus.com>

	* combine.c (distribute_notes): If an insn is a cc0 user, only
	delete it if we can also delete the cc0 setter.

	* combine.c (combine_dump_stream): New.
	(combine_instructions): Initialize it.  Call dump_combine_stats.
	(try_combine): Dump which combinations succeed.
	(dump_combine_stats): Make static.
	* rtl.h (combine_instructions): Take a dump file argument.
	(dump_combine_stats): Remove declaration.
	* toplev.c (rest_of_compilation): Open the dump file for the 
	call to combine_instructions.

Fri Sep 11 16:58:23 1998  Richard Henderson  <rth@cygnus.com>

	* i386/beos-elf.h (LINK_SPEC): Default is shared, symbolic, 
	with no undefined symbols allowed.

        * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
        * i386.md (movsf, movdf, movxf): Validate memory address returned
        from force_const_mem.  Kill useless REG_EQUAL setting code.

Fri Sep 11 16:54:22 1998  Richard Henderson  <rth@cygnus.com>

	* gcse.c (insert_insn_end_bb): When a call ends a bb, insert
	instructions before the arguments are loaded.

1998-09-09  Jason Merrill  <jason@yorick.cygnus.com>

	* i386/beos-elf.h (MATH_LIBRARY): Define to "".
	(NO_IMPLICIT_EXTERN_C): Define.

	* tree.c (valid_machine_attribute): Don't apply attributes to both
	decl and type.

Fri Sep  4 19:02:53 1998  Brendan Kehoe <brendan@cygnus.com>

        * configure.in, configure: For i[34567]86-*-beoself*, set
        fixincludes to Makefile.in to prevent them from being run.

Fri Sep  4 12:44:52 1998  Fred Fish  <fnf@ninemoons.com>

	* i386/beos-elf.h (LIB_SPEC, LIBGCC_SPEC): New.
	(STARTFILE_SPEC): Update to use start_dyn.o.

Tue Aug 25 11:37:18 1998  Richard Henderson  <rth@cygnus.com>

	* reload.c (operands_match_p): Handle rtvecs.

	* i386.c (legitimate_pic_address_disp_p): New.
	(legitimate_address_p): Use it.
	(legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
	Handle constant pool symbols just like statics.
	(emit_pic_move): Use Pmode not SImode for clarity.
	(output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
	[UNSPEC]: New, handling what we killed above.
	[PLUS]: Detect and abort on invalid symbol arithmetic.
	* i386.h (CONSTANT_ADDRESS_P): Remove HIGH.

Tue Aug 18 12:49:28 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in (ix86-*-beoself): Use t-crtpic instead.
	* i386/t-beoself: Remove.

1998-08-18  Jason Merrill  <jason@yorick.cygnus.com>

	* i386/t-beoself (CRTSTUFF_T_CFLAGS): Define.
	(CRTSTUFF_T_CFLAGS): Move here.
	* i386/beos-elf.h (STARTFILE_SPEC): Lose crtbeginS.o.
	(ENDFILE_SPEC): Lose crtendS.o.
	* configure.in (ix86-*-beoself): Use t-beoself.

Fri Aug 14 12:55:14 1998  Richard Henderson  <rth@cygnus.com>

	* gcc.c (LIBRARY_PATH_ENV): Provide default.
	(process_command): Use it.
	(main): Likewise.  Kill trailing = from env vars.
	(build_search_list): Put it back.
	* collect2.c (main): Use LIBRARY_PATH_ENV.

	* config/i386/beos-elf.h (LIBRARY_PATH_ENV): New.
	* config/i386/beos-pe.h (LIBRARY_PATH_ENV): New.

Thu Aug 13 17:35:02 1998  Jeff Holcomb  <jeffh@cygnus.com>

	* ginclude/stddef.h (__WCHAR_TYPE__): Use int for __WCHAR_TYPE__
	instead of unsigned char.

Wed Aug 12 17:56:17 1998  Richard Henderson  <rth@cygnus.com>

	* config/i386/beos-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Output
	.local.
	
	* config/i386/i386.c (output_pic_addr_const) [PLUS]: Don't use
	INTVAL on things that aren't CONST_INT.

Tue Jul 28 14:24:15 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in (ix86-*-beoself): Build crtbegin/end.
	* config/i386/beos-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): New.

Mon Jul 27 17:57:17 1998  Jeff Holcomb  <jeffh@cygnus.com>

	* config/i386/xm-beos.h: Include sys/wait.h so we get correct
	definitions for WIFSIGNALED et al.

Mon Jul 27 11:52:26 1998  Richard Henderson  <rth@cygnus.com>

	* acconfig.h (NEED_DECLARATION_ENVIRON): New.

1998-07-10  Jason Merrill  <jason@yorick.cygnus.com>

	* i386/beos-elf.h (SIZE_TYPE): Fix.
	(PTRDIFF_TYPE): Fix.

	* i386/beos-elf.h (SMALL_STACK): Define.
	* tm.texi (Frame Layout): Document it.
	* c-decl.c (init_decl_processing): Check it.

1998-07-23  Jason Merrill  <jason@yorick.cygnus.com>

	* config/i386/winnt.c (associated_type): Don't return anything
	for synthesized methods.
	(i386_pe_dllexport_p): Let associated_type handle all the logic.
	(i386_pe_dllimport_p): Likewise.

1998-07-22  Jason Merrill  <jason@yorick.cygnus.com>

	* config/i386/winnt.c (associated_type): New fn.
	(i386_pe_valid_type_attribute_p): New fn.
	(i386_pe_check_vtable_importexport): Remove.
	(i386_pe_dllexport_p): Use associated_type.
	(i386_pe_dllimport_p): Likewise.

	* config/i386/beos-elf.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.

Fri Jul 17 03:26:12 1998  Richard Earnshaw (rearnsha@arm.com)

	* tree.c (valid_machine_attribute): Only create a new type variant if
	there is a decl to use it.

Thu Jul 16 20:09:37 1998  Jeff Holcomb  <jeffh@cygnus.com>

	* ginclude/varargs.h: (__gnuc_va_list): Use if defined(__BEOS__).
	(__va_list__): Define ifndef.
	* ginclude/stdarg.h (__gnuc_va_list): Also check for defined(__BEOS__).
	(va_list): Only define ifndef __va_list__.
	(__va_list__): If not defined, define it (to nothing) for BeOS.

	* config/i386/beos-elf.h: Duplicate beos-pe include file
	madness.

Wed Jul 15 16:17:49 1998  Richard Henderson  <rth@cygnus.com>

	* alloca.c: Respect USE_C_ALLOCA.
	* configure.in (*-*-beos*): Define USE_C_ALLOCA.
	(GCC_NEED_DECLARATIONS): Add environ.
	* toplev.c: Use NEED_DECLARATION_ENVIRON.
	* gencheck.c (xmalloc): Only check USE_C_ALLOCA.
	* gengenrtl.c (xmalloc): Likewise.

Tue Jul 14 16:15:13 1998  Richard Henderson  <rth@cygnus.com>

        * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
        * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
        * i386/beos-elf.h, i386/beos-pe.h: New files.

Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>

	* gcc.c: Remove ANSI-C ism from --help code.

	* toplev.c: Support --help with USE_CPPLIB.

Mon Jul 13 21:45:17 1998  Jeffrey A Law  (law@cygnus.com)

	* expr.c (expand_builtin): Do not warn for targets which do not
	support CONSTANT_P_RTX.  Temporary patch until next merge
	
Mon Jul 13 11:10:15 1998  Nick Clifton  <nickc@cygnus.com>

	
	* config/v850/v850.h (TARGET_OPTIONS, TARGET_SWITCHES,
	EXTRA_SWITCHES): Document these switches.

	* cccp.c (main): Add support for parsing --help.
	(display_help): New function: display command line switches.

	* cpplib.c (cpp_handle_option): Add support for parsing --help.
	(display_help): New function: display command line switches.

	* gcc.c (main): Add support for parsing --help, and passing it on
	to the sub-processes invoked by gcc.
	(display_help): New function: display comman line switches.	

	* tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document
	'description' field added to structure.  

	* toplev.c: Add support for parsing --help.
	Add documentation strings to command line option tables.
	(display_help): New function: display comman line switches.

Mon Jul 13 11:10:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/semi.h (USER_LABEL_PREFIX): Change to "" to match
	FSF sources.

	* config/arm/tcoff.h (USER_LABEL_PREFIX): Change to "" to match
	change to semi.h

Sun Jul 12 13:34:23 1998  Michael Meissner  <meissner@cygnus.com>

	* jump.c (duplicate_loop_exit_test): Fix typo in last change.

Sat Jul 11 01:18:33 1998  Jeffrey A Law  (law@cygnus.com)

	* jump.c (duplicate_loop_exit_test): Avoid out of bounds access
	to the reg info virtual array.

Thu Jul  9 10:49:08 1998  Jeffrey A Law  (law@cygnus.com)

	* arm/tpe.h (JUMP_TABLES_IN_TEXT_SECTION): Define with a value.
	* i386/i386elf.h: Likewise.
	* i386/rtemself.h: Likewise.
	* sh/sh.h: Likewise.
	* z8k/z8k.h: Likewise.

	* Makefile.in: Fix minor merge lossage which caused incorrect
	dependencies.

Wed Jul  8 16:53:37 1998  Jim Wilson  <wilson@cygnus.com>

	* range.c (range_print_flags): Add static to definition.

1998-07-08  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function
	stubs.

	* toplev.c (lang_options): Add -Wlong-long, -Wno-long-long
	options.
	* c-decl.c (warn_long_long): Define.
	(c_decode_option): Parse -Wlong-long, -Wno-long-long options.
	(grokdeclarator): Add flag `warn_long_long' as guard for
	warning "ANSI C does not support `long long'".
	* invoke.texi: Add description of options -Wlong-long,
	-Wno-long-long.
	* gcc.1: The same as above.
	
Wed Jul  8 09:45:22 1998  Nick Clifton  <nickc@cygnus.com>

	* haifa-sched.c (debug_ready_list): Remove static qualifier, so
	that it can be called from machine back ends.

	* libgcc1-test.c: Remove duplicate prototype for memcpy().

	* config/arm/arm.c (arm_override_options): Reference 'flags'
	rather than 'tune_flags'.

Wed Jul  8 03:22:22 1998  Jeffrey A Law  (law@cygnus.com)

	* Merge from egcs snapshot 19980707.

Mon Jul  6 09:32:14 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/tpe.h (REDO_SECTION_INFO_P): Define.

	* config/arm/thumb.c (thumb_override_options): Warn about and
	ignore '-fpic'.

	* config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default
	version. 

Fri Jul  3 18:23:30 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.c (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE
	into account.

Fri Jul  3 18:19:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (CPP_SPEC): No __sh1__ for m4-single nor for -m4-single-only.

Fri Jul  3 18:11:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (mulsi3_call): Function address is a fourth operand now.
	(mulsi3): Set address for mulsi3_call outside of libcall.

Fri Jul  3 18:07:11 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* ginclude/va-sh.h (__VA_REEF): Define.
	(__va_arg_sh1): Use it.

Fri Jul  3 18:05:02 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* ginclude/va-sh.h (__va_arg_sh1): Use __asm instead of asm.

Fri Jul  3 16:10:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (reload_outdf+4): When modifying the stack pointer, store
	back what is exposed to interrupts.

Thu Jul  2 08:11:00 1998  Catherine Moore  <clm@cygnus.com>

        * haifa-sched.c (alloc_EXPR_LIST):  Change to use
        unused_expr_list.

Wed Jul  1 03:09:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.c (sfunc_uses_reg): A CLOBBER cannot be the address register use.

Mon Jun 29 12:15:00 Catherine Moore  <clm@cygnus.com>

        * config/sparc/lb1spc.asm (.udiv, .div) Replace routines.

1998-06-26  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (LOOP_TEST_THRESHOLD): If loop unrolling and saving
	space, don't suppress moving the loop test from top to the bottom.

Thu Jun 25 12:03:24 1998  Bob Manson  <manson@charmed.cygnus.com>

	* config/i386/xm-beos.h: Include sys/wait.h so we get correct
	definitions for WIFSIGNALED et al.

Thu Jun 25 09:53:24 1998  Nick Clifton  <nickc@cygnus.com>

	* depragmaize.c (usage): Fix typo confusing -p and -c options.

	* config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM,
	noticed by grahams@rcp.co.uk.

Wed Jun 24 10:39:32 1998  Stan Cox  <scox@cygnus.com>

	* sparc.md (sethi_di_sp32): Swap registers if we are
	compiling in little endian mode.
	
	* sparc.h (CPP_ENDIAN_SPEC, LIBGCC2_WORDS_BIG_ENDIAN): Check for
	mlittle-endian-data in addition to mlittle-endian.
	
	* sp86x-aout.h (ASM_SPEC, SUBTARGET_SWITCHES): -mlittle-endian-data
	
        * ginclude/va-d30v.h (va_arg): struct args < 4 bytes must be offset.

Tue Jun 23 21:27:27 1998  Ken Raeburn  <raeburn@cygnus.com>

	* reload.c (find_reloads): Fix check for failure to match any
	alternative, to account for Mar 26 change in initial "best" cost.

Tue Jun 23 14:20:57 1998  Nick Clifton  <nickc@cygnus.com>

	* config/d30v/d30v.h (FIXED_REGISTERS): Remove reference to return
	address register.
	(CALL_USED_REGISTERS): Ditto.

Tue Jun 23 16:42:29 1998  Dave Brolley  <brolley@cygnus.com>

	* cpplib.c (open_include_file_name): Mark as local change.

Mon Jun 22 10:30:00 1998  Catherine Moore  <clm@cygnus.com>

        * varasm.c (assemble_variable): Emit alignment warning.

Sat Jun 20 04:10:50 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (MD_SCHED_{VARIABLE_ISSUE,INIT,REORDER}): Define.
	(m32r_sched_{variable_issue,init,reorder}): Add declarations.

	* m32r.c (m32r_sched_odd_word_p): New global to keep track of
	whether we are on an odd word or even word.
	(m32r_adjust_priority): Optimize slightly.
	(m32r_sched_init): New function to zero m32r_sched_odd_word_p.
	(m32r_sched_reorder): New function to reorder the ready list based
	the instruction sizes.  Move long instructions before short ones,
	except if we are on an odd word boundary.
	(m32r_sched_variable_issue): New function to keep track of whether
	we are on an odd byte boundary.

Fri Jun 19 21:33:21 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (whole file): Align \'s to column 72.
	(*_SPEC): Use EXTRA_SPECS to move cpu dependent stuff down into
	{ASM,CPP,CC1,LINK,STARTFILE,ENDFILE}_CPU_SPEC.
	(TARGET_SWITCHES): Add support for new debug switches
	-missue-rate={1,2} and -mbranch-cost={1,2}.  Add
	SUBTARGET_SWITCHES for cpu dependent switches.
	(TARGET_OPTIONS): Add support cpu dependent switches.
	(MULTILIB_DEFAULTS): Ditto.
	(OVERRIDE_OPTIONS): Ditto.
	(OPTIMIZATION_OPTIONS): Ditto.
	({FIXED,CALL_USED}_REGISTERS): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(CONDITIONAL_REGISTER_USAGE): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(GPR_P): Ditto.
	({,ADDITIONAL_}REGISTER_NAMES): Ditto.
	(M32R_MODEL_DEFAULT): Wrap inside #ifndef/#endif.
	(SDATA_DEFAULT_SIZE): Ditto.
	(IN_RANGE_P): New macro to test if something is in a range of
	values.
	(INT8_P): Recode to use IN_RANGE_P.
	({,CMP_,U}INT16_P): Ditto.
	(UPPER16_P): Ditto.
	(UINT{24,5}_P): Ditto.
	(INT32_P): Ditto.
	(INVERTED_SIGNED_8BIT): Ditto.
	({ACCUM,CARRY}_P): New macros for accumulator and carry.
	(BRANCH_COST): Set to 1/2 depending on -mbranch-cost={1,2}.
	(ENABLE_REGMOVE_PASS): Delete, no longer used.
	(ASM_OUTPUT_ALIGNED_LOCAL): Ditto.
	(ISSUE_RATE): Set to 1/2 depending on -missue-rate={1,2}.
	(DWARF2_DEBUGGING_INFO): Define.

Thu Jun 18 09:03:31 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c ({internal_,}reg_or_eq_int16_operand): New functions to
	return whether an operand is suitable for == operations.
	(gen_compare): Remove support for handling S<op> operations, just
	handle branches.

	* m32r.h (PREDICATE_CODES): Add new predicate functions.
	({internal_,}reg_or_eq_int16_operand ): Add declarations.
	(gen_compare): Remove argument saying to produce S<op> operations
	instead of a branch.

	* m32r.md (b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Update
	gen_compare calls.
	(s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Recode to present the
	operation as a distinct RTL until splitting so that the
	optimization passes generate better code.
	(abs{df,sf}2): Define, so that we can make fabs(-0.0) return 0.0.
	
1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>

	* configure.in: Turn on collect2 for r5900.

Thu Jun 18 02:01:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* (gen_far_branch): Only emit barrier when optimizing.

Thu Jun 18 00:42:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.c (gen_far_branch): Emit a barrier after the new jump.

Wed Jun 17 15:12:00 1998  Catherine Moore  <clm@cygnus.com>

        * reload1.c (spill_hard_reg):  Check mode of register when
        spilling from scratch_list.

Wed Jun 17 14:55:50 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG 
	addressing when one register is the frame pointer or stack
	pointer.  Disallow REG+CONST addressing in HI mode.

	* config/arm/arm.h (CANONICALIZE_COMPARISON): Preserve OP1.
	
Tue Jun 16 20:50:37 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (m32r_adjust_{cost,priority}): New functions to adjust
	scheduler cost and priority information.
	(direct_return): Don't test -mdebug any more.

	* m32r.h (m32r_adjust_{cost,priority}): Declare.
	(m32r_address_cost): Correctly spell function in prototype.
	(ADJUST_{COST,PRIORITY}): Define to call the appropriate function.

Tue Jun 16 17:36:35 1998  Dave Brolley  <brolley@cygnus.com>

	* cpplib.h (__GCC_CPPLIB__): Add header guard.
	* cpplib.c (open_include_file_name): New function.
	(open_include_file): Call open_include_file_name instead of open.
Fri Jun 12 00:03:23 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (OPTIMIZATION_OPTIONS): Turn on -fregmove if -O1.  If
	-Os, turn on -fomit-frame-pointer and -fno-strength-reduce.
	(CAN_DEBUG_WITHOUT_FP): No longer define, so we don't confuse the
	debugger.
	(TARGET_FLAGS): Remove -mold-compare support.
	
	* m32r.c (gen_compare): Rewrite to be more general.  Take an
	extra argument to give the output register for scc operations or
	the label to jump to for bcc operations.  Fix typo for LEU & GTU
	of constants.
	(internal_reg_or_{cmp_int16,uint16}_operand): Same as the function
	without the internal_ prefix, except mode argument is an enum.
	
	* m32r.h (gen_compare): Add new argument to prototype.
	(PRESERVE_DEATH_INFO_REGNO_P):  Delete, no longer needed after
	June 11 regmove.c change.

	* m32r.md (cmp_eqsi_insn): Make a define_expand instead of a
	define_insn.
	(cmp_ne_small_const_insn): Delete, no longer used.
	(b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Rework for gen_compare
	changes.
	(s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Define patterns.
	(movsicc): Delete, no longer used.
	(peephole): Delete, no longer needed after June 11 regmove.c
	change.

Tue Jun  9 21:05:45 1998  Jeffrey A Law  (law@cygnus.com)

	* pa.c (override_options): Handle -mschedule=8000.
	(pa_reorg): Do not try to combine independent instructions into
	a single instruction for the PA8000.
	* pa.h (processor_type): Add PROCESSOR_8000.
	* pa.md: Add "8000" cpu attribute.  Treat the PA8000 like the 
	PA7100 temporarily.
	
Tue Jun  9 14:13:37 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/t-v850 (TCFLAGS): Add assembler options to catch
	signed and unsigned overflows.

	* config/v850/lib1funcs.asm (__callt_save_interrupt): Use 'addi
	16,sp,sp' instead of 'add 16,sp'.  Patch cpurtesy of: Biomedin
	<glctr@abc.it> 

Tue May 19 23:34:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add another pair of
	brackets to make -Wall happy.

Thu Jun  4 15:14:04 1998  Michael Meissner  <meissner@cygnus.com>

	* jump.c (duplicate_loop_exit_test): Remove May 19th code not
	duplicating the loop exit test at the bottom, but keep the part
	about testing LOOP_TEST_THRESHOLD.

	* m32r.h (LOOP_TEST_THRESHOLD): If -Os, use 2 instead of 30.
	(PREDICATE_CODES): Add extend_operand.
	(extend_operand): Declare.
	
	* m32r.c (extend_operand): New function to return true if an
	operand can be used in a sign/zero_extend operation.

	* m32r.md (zero_extend*): Use extend_operand.
	(sign_extend{qisi,qihi,hisi}2): Rewrite so sign_extend is
	available until after reload is done.
	
Tue Jun  2 00:54:38 1998  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (rest_of_compilation): Only perform block merging for
	-O2 and above.

Mon Jun  1 03:44:03 1998  Catherine Moore <clm@cygnus.com>

        * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define.

        * varasm.c (assemble_variable): Augment alignment warning.

Sun May 31 01:02:05 1998  Jeffrey A Law  (law@cygnus.com)

	* gcc.c (process_command): Use concat instead of effectively
	open-coding it.

Sun May 31 10:37:49 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Fix last change to swap GT/GTU/LE/LEU
	arguments if both are registers.  Don't convert GTU/LEU of a
	negative value into GEU/LTU.

Fri May 29 13:36:17 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Cmpui takes a signed 16 bit value, not
	unsigned.
	* m32r.md (cmp_ltusi_insn): Ditto.

	* m32r.c (gen_compare): If the first compare value is not a
	register, force it into a register.  If the second compare value
	is not a register or a constant integer, force it into a
	register.

	* m32r.md (cmpsi): Only allow registers or signed 16 bit values
	for the second argument.
	
Thu May 28 13:20:25 1998  Jeffrey A Law  (law@cygnus.com)

        * gcse.c (pre_delete): Fix code to determine the mode of
        the reaching pseudo register.
	(hoist_code): Likewise.

	* Simple block merging optimization pass.
	* flow.c (merge_blocks): New function.
	* toplev.c (rest_of_compilation): Call merge_blocks after each
	jump optimization pass, except for the last one.

Thu May 28 13:47:18 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Convert LE/LEU/GT/GTU of a constant into
	LT/LTU/GE/GEU with the constant+1.

Wed May 27 09:04:36 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon.

Tue May 26 20:38:27 1998  Stan Cox  <scox@equinox.cygnus.com>

	* config/sparc/sp86x-elf.h (TARGET_LITTLE_ENDIAN_DATA): New.
	(INIT_SECTION_ASM_OP): Undef so __main constructor invocation is used.

Tue May 26 14:48:50 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (v850_output_aligned_bss): use
	ASM_DECALRE_OBJECT_NAME if it is available.

Tue May 26 09:28:07 1998  Catherine Moore <clm@cygnus.com>

       * config/sparc/lb1spc.asm (.urem, .rem) Replace routines.

Fri May 22 23:46:37 1998  Jim Wilson  <wilson@cygnus.com>

	* gcc.c (make_relative_prefix): Call obstack_1grow with '\0'.

Thu May 21 14:37:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/README-interworking:  Add note about ignoring linker
	warning message when --support-old-code is used. 

Tue May 19 18:28:47 1998  Jim Wilson  <wilson@cygnus.com>

	* config/generic/xm-generic (NO_STAB_H): Delete reference.

Tue May 19 23:34:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (HARD_REGNO_MODE_OK, BASE_RETURN_VALUE_REG):
	Also use FP registers for SCmode on SH3E.

Tue May 19 22:49:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (LEGITIMIZE_RELOAD_ADDRESS): Handle SFmode specially for SH3E.

Tue May 19 15:38:48 1998  Michael Meissner  <meissner@cygnus.com>

	* stmt.c (expand_end_loop): Instead of using a hard-coded 30 for
	the number of insns, use LOOP_TEST_THRESHOLD.

	* jump.c (duplicate_loop_exit_test): Use LOOP_TEST_THRESHOLD for
	decided how many instructions to duplicate.  If optimizing for
	space, don't duplicate the loop exit test at the top.

	* expr.h (LOOP_TEST_THRESHOLD): Define if not defined.

	* tm.texi (LOOP_TEST_THRESHOLD): Document.

Tue May 19 10:27:15 1998  Jeffrey A Law  (law@cygnus.com)

        * flow.c (compute_preds_succs): Do not split more than one edge
        into any basic block.

Mon May 18 15:28:26 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/lib1funcs.asm: Add .text pseudo op to start of
	___udivsi3. 
	
	* config/v850/lib1funcs.asm: Fix .size pseudo ops to use three
	underscores for the prefixes to the names of the maths functions. 

	* dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE for
	parameters passed in memory.  Add a comment explaining why.

Mon May 18 00:21:53 1998  Jeffrey A Law  (law@cygnus.com)

	* c-lex.c (check_newline): Remove old CYGNUS LOCAL code that
	is no longer needed.

Sun May 17 20:57:01 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (PREDICATE_CODES): Add seth_add3_operand, int8_operand,
	and uint16_operand.
	(int8_operand): Add declaration.

	* m32r.c (int8_operand): Return true if value is a signed 8 bit
	constant int.
	(m32r_expand_prologue): Remove duplicate setting of gmask.
	(direct_return): Return true if we have no stack to allow jmp lr
	to be used as a return.

	* m32r.md ({and,ior,xor}si3): If -Os and we have a 8 bit immediate
	constant and different registers, emit two short instructions
	instead of a long instruction.  Also don't accept integer
	arguments greater than 16 bits initially, to give those values a
	chance at CSE.
	(return): Add return pattern.

Fri May 15 19:30:29 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.md (mov{si,sf}_insn): Correct attributes for load/store
	with inc/dec.

Fri May 15 14:55:45 1998  Nick Clifton  <nickc@cygnus.com>

	* dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a
	function parameter passed in memory.

Thu May 14 14:37:26 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/README-interworking: Document dlltool support for
	interworking.
	
	* config/arm/lib1thumb.asm: Add labels to help disassembler
	distinguish between ARM and Thumb code.
	Fix _interwork_call_via_ip.
	* config/arm/lib1funcs.asm: Ditto.

Thu May 14 13:27:07 1998  Jim Wilson  <wilson@cygnus.com>

	* global.c (undo_live_range): Use PUT_REG_NOTE_KIND instead of
	REG_NOTE_KIND.

Thu May 14 07:37:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (HARD_REGNO_MODE_OK): Fix bracketing.

Wed May 13 22:45:53 1998  Michael Meissner  <meissner@cygnus.com>
			  Jeff Law <law@cygnus.com.

	* Makefile.in (OBJS): Add range.o
	(clean rules): Delete *.range.
	(toplev.o): Depend on range.h.
	(dbxout.o, global.o): Likewise.
	(final.o): Depend on bitmap.h, range.h, except.h, and function.h.
	(range.o): Add dependencies.
	* range.c, range.h: New files.
	* dbxout.c: Include "range.h".
	(range_current, range_max_number_for_parms): New static variables.
	(range_max_number): New global variable.
	(dbxout_symbol_name): New argument "live_range_p".  All callers
	changed.
	(dbxout_live_range_alias): New function.
	(dbxout_live_range_parms): Likewise.
	(dbxout_symbol_location): Call dbxout_live_range_alias.
	(dbxout_symbol_name): If live_range_p, then output LRS
	debug symbol extensions.
	(dbxout_parms): Handle LRS optimizations.
	(dbxout_really_begin_function): Keep track of range_max_number at
	function entry (so we can properly output ranges for parameters).
	(dbxout_function): Call dbxout_live_range_parms.
	* final.c: Include "function.h", "range.h", "bitmap.h" and "obstack.h".
	(block_nodes): New global.
	(rtl_obstack, range_max_number): Declare.
	(struct block_seq): New structure for blocks.
	(pending_blocks): Now a struct block_seq *.
	(init_final): Fix allocation of pending_blocks.
	(final): Call identify_blocks to get the block nodes for the current
	function.  When finished, free space allocated for block_nodes.
	(final_scan_insn): Handle LRS notes.  Various fixes for change in
	pending_blocks structure.
	* flags.h (flag_live_range): Declare new variable.
	(flag_live_range_gdb, flag_live_range_scope): Likewise.
	* function.c (reorder_blocks): Revamp to track blocks created by LRS
	optimizations.
	* global.c: Inlcude obstack.h and range.h.
	(global_obstack): New obstack for use in global allocation.
	(reg_live_ranges, save_reg_renumber): New static variables.
	(CLEAR_CONFLICT): Define.
	(record_conflits): Now accepts int* as first argument.  All callers
	changed.
	(undo_live_range, global_init): New functions.
	(global_alloc): Split into two functions, global_init and global_alloc.
	Try to allocate LRS copies first, then fall back to normal allocation
	order.  If some LRS copies did not get hard regs, then undo some live
	ranges.  Free the global_obstack when finished.
	(global_init): Allow multiple calls.  Only allocate space on the first
	call.  Allocate stuff on the global obstack instead of with alloca.
	(allocno_compare): Handle LRS copies.
	(global_conflicts): block_start_allocnos is an int * now.  Allocate
	space on the global obstack.  Remove conflicts between LRS copies from
	LRS base registers.
	(find_reg): For an LRS copy, try to allocate it in the same reg as
	another LRS copy.
	* output.h: Declare block_nodes.
        * regclass.c ({pref,alt}class_buffer): New statics to hold buffers
        allocate_reg_info allocates for {pref,alt}class_buffer.
        (regclass): Use {pref,alt}class_buffer to initialize
        {pref,alt}class.
        (allocate_reg_info): Allocate buffers for the preferred and alter
	register class information.
	* regs.h (struct reg_n_info): Add fields for LRS info.
	(REG_N_RANGE_CANDIDATE, REG_N_RANGE_COPY_P): New accessor macros.
	* toplev.c: Include range.h.
	(live_range_dump, flag_live_range): New variables.
	(flag_live_range_gdb, flag_live_range_scope): Likewise.
	(live_range_time): Likewise.
	(f_options): Add LRS options.
	(compile_file): Call init_live_range.  Clean the .range dump file
	if necessary.  Print time spent in LRS.
	(rest_of_compilation): Optimize live ranges if requested.  Free basic
	block info and regsets when finished with the current function.  Also
	call init_live_range to reinitialize LRS.
	(main): Perform LRS dumps is requested.

Tue May 12 23:23:25 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (move_src_operand): Reject loads with PRE_INC or PRE_DEC.
	(move_dest_operand): Reject stores with POST_INC.
	(m32r_print_operand): Change abort calls into fatal_insn calls.
	(m32r_print_operand_address): Ditto.

	* m32r.h (EXTRA_CONSTRAINT): 'S' is now for stores with PRE_INC or
	PRE_DEC.  'U' is now for loads with POST_INC.
	(HAVE_PRE_{INC,DEC}REMENT): Define.
	(HAVE_POST_INCREMENT): Ditto.
	(PUSH_POP_P): Delete, no longer used.
	(LOAD_POSTINC_P): Recognize loads with POST_INC.
	(STORE_PREINC_PREDEC_P): Recognize stores with PRE_{INC,DEC}.
	(GO_IF_LEGITIMATE_ADDRESS): Recognize loads with POST_INC, and
	stores with PRE_{INC,DEC}.

	* m32r.md (movsi_insn): Separate loads with POST_INC from stores
	with PRE_{DEC,INC}.  Emit push/pop if pushing/poping stack
	pointer.
	(movsf_insn): Allow memory loads to have POST_INC, and stores to
	have PRE_{DEC,INC}.

Mon May 11 11:34:17 1998  Jeffrey A Law  (law@cygnus.com)

	* egcs -> gcc merge.  See ChangeLog.egcs & ChangeLog.12 for
	details.

	* lcm.c (compute_latein, compute_firstin): Fix thinko.

Mon May 11 07:33:27 1998  Michael Meissner  <meissner@cygnus.com>

	* lcm.c (compute_latein): Fix typo.

Mon May 11 02:36:22 1998  Jeffrey A Law  (law@cygnus.com)

	* lcm.c (compute_latein): Avoid mis-compiling latein for the
	last block.
	(compute_firstout): Similarly, but for the first block.
	(compute_isoinout): Solve as a backward dataflow problem.
	(compute_rev_isoinout): Simlarly, but solve as a forward problem.

Sun May 10 11:03:03 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (compute_hash_table): Delete unused "f" parameter.
	(compute_set_hash_table, compute_expr_hash_table): Likewise.
	(one_classic_gcse_pass, one_cprop_pass): Likewise.
	(one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
	(hoist_code): Remove unused variable "changed".
	(insert_insn_end_bb): Wrap "note" parameter inside #ifdef HAVE_cc0.
	(mark_call): Remove unused "pat" parameter.

	* lcm.c (compute*): Remove either s_preds or s_succs, whichever
	is unused.  All callers changed.
	(compute_rev_redundant, compute_rev_optimal): Delete unused functions.
	(pre_lcm, pre_rev_lcm): Delete unused parameter "comp".
	* basic-block.h (pre_lcm, pre_rev_lcm): Update declarations.
	* gcse.c (compute_pre_data): Corresponding changes.

Thu May  7 16:20:59 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL,
	ASM_OUTPUT_WEAK_ALIAS): Define.
	* config/mips/elf64.h: Same.
	* config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK,
	ASM_WEAKEN_LABEL): Removed.

Thu May  7 08:58:24 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/elfb4100.h (SUBTARGET_ASM_DEBUGGING_SPEC): Replace uses of
	-gdwarf-2 with -g0.
	* config/mips/elfb4320.h : Same.
	* config/mips/elfb4900.h : Same.
	* config/mips/elfl4100.h : Same.
	* config/mips/elfl4320.h : Same.
	* config/mips/elfl4900.h : Same.

Tue May  5 14:28:53 1998  Jim Wilson  <wilson@cygnus.com>

	* elfb4100.h, elfb4300.h, elfb4320.h, elfb4900.h, elfb5000.h,
	elfl4100.h, elfl4300.h, elfl4320.h, elfl4900.h, elfl5000.h
	(MULTILIB_DEFAULTS): Move definition after elf64.h include.

Mon May  4 09:00:56 1998  Jeffrey A Law  (law@cygnus.com)

	* lcm.c: New file with generic partial redundancy elimination 
	and lazy code motion support.
	* Makefile.in: Corresponding changes.
	* basic-block.h (pre_lcm): Declare.
	(pre_rev_lcm): Likewise.
	* gcse.c: Remove various static variables no longer needed.
	(alloc_pre_mem): Only allocate space for local properties, redundant,
	optimal and a scratch bitmap.
	(free_pre_mem): Simlarly.
	(compute_pre_antinout): Deleted.
	(compute_pre_earlyinout, compute_pre_delayinout): Likewise.
	(compute_pre_latein, compute_pre_isoinout): Likewise.
	(compute_pre_optimal, compute_pre_redundant): Likewise.
	(compute_pre_data): Call pre_lcm.

Fri May  1 07:23:35 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/t-r4900: New file.
	* configure.in (mips64tx49*-*-*): Use the new target makefile fragment.
	* configure: Rebuilt.
        * config/mips/elfb4900.h (SUBTARGET_CPP_SIZE_SPEC): 
	Get SIZE_TYPE and PTRDIFF_TYPE correct for 32 bit compiles.
	(MULTILIB_DEFAULTS): Add "mips3".
	(SUBTARGET_CPP_SPEC): Mark -mips1 as an error.
	* config/mips/elfb4900.h : Same.

Thu Apr 30 16:07:02 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.h (ASM_OUTPUT_ALIGNED_BSS): Call v850_output_aligned_bss().
	* config/v850/v850.c (v850_output_aligned_bss): New
	function. Preserve alignment information when emitting symbols
	into the bss section.
	(v850_output_bss): Function removed.

Wed Apr 29 16:18:40 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (ASM_OUTPUT_SOURCE_LINE): Use .debugsym instead of
	creating a label if -Os to prevent extra NOPs.

Wed Apr 29 00:00:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (sge): Use prepare_scc_operands also for the -mieee case.

Tue Apr 28 11:10:10 1998  Mark Alexander  <marka@cygnus.com>

	* config/sparc/t-sp86x (MULTILIB_OPTIONS): Remove big-endian.
	(MULTILIB_DIRNAMES): Add "little" for brevity.

Mon Apr 27 17:07:09 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Use
	frame_pointer_rtx rather than FRAME_POINTER_REGNUM.

Sun Apr 26 17:04:11 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (conditional_move_operand): Silence a debug message.

Fri Apr 24 06:46:40 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame
	pointer as second register in REG+REG pair.


Wed Apr 22 17:53:04 1998  Stan Cox  <scox@equinox.cygnus.com>

	* sparc.c (sparc_override_options): New option name -mcpu=sparclite86x.

Wed Apr 22 17:23:07 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (TARGET_M32R): New macro.
	(PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn.

	* m32r.c ({small,long}_insn): New predicates.

	* m32r.md (insn_size): New attribute.
	({,rev_}branch_insn): Add .s qualifier to branches believed to be
	short.
	(m32r): New attribute.
	(small_sequence,long_group): Add initial framework for instruction
	grouping.

	
	* rtl.def (GROUP_{PARALLEL,SEQUENCE}: Add new insns.

Wed Apr 22 16:45:20 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/sh/lib1funcs.asm (___sdivsi3, ___udivsi3):
	Only compile for non-SH4 targets and for __SH4_SINGLE_ONLY__.
	(___sdivsi3_i4, ___udivsi3_i4): New functions for SH4 targets.
	(___set_fpscr): Also compile for __SH4_SINGLE_ONLY__.
	sh.h (CPP_SPEC): Define __SH4_SINGLE_ONLY__ for -m4-single-only.
	* sh.md (udivsi3_i4_single, udivsi3): Predicate udivsi3_i4_single on
	TARGET_HARD_SH4.  Use label __udivsi3_i4
	(divsi3_i4_single, divsi3): Predicate udivsi3_i4_single on
	TARGET_HARD_SH4.  Use label __sdivsi3_i4.
	(ic_invalidate_line, ic_invalidate_line_i): Predicate on
	TARGET_HARD_SH4.
	* t-sh (LIB1ASMFUNCS): Add _sdivsi3_i4 and _udivsi3_i4.
	* ginclude/va-sh.h (__va_greg, __fa_freg, __gnuc_va_list, va_start):
	Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
	(__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.

Mon Apr 20 20:30:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/sh/lib1funcs.asm (__udivsi3, __set_fpscr): Make fmovd code
	depend on FMOVD_WORKS instead of ! __LITTLE_ENDIAN__ .
	* sh.c (machine_dependent_reorg, push, pop, calc_live_regs):
	Handling of DFmode values with fmovd depends on TARGET_FMOVD
	rather than ! TARGET_LITTLE_ENDIAN.
	* sh.h (CONDITIONAL_REGISTER_USAGE, OVERRIDE_OPTIONS): Likewise.
	(GO_IF_LEGITIMATE_ADDRESS, REGISTER_MOVE_COST): Likewise.
	(FMOVD_BIT, TARGET_FMOVD): Define.
	(TARGET_SWITCHES): Add fmovd.
	* sh.md (fmovd): New attribute.
	(movdf_i4): Use it.
	(reload_outdf+[2345]): Likewise; make code suitable for big endian.

Mon Apr 20 13:31:17 1998  Dave Brolley  <brolley@cygnus.com>

	* stmt.c (mark_seen_cases): Needs to be external linkage for Chill.

Mon Apr 20 07:37:49 1998  Michael Meissner  <meissner@cygnus.com>

	* i386.c: Include expr.h to get the change_address prototype
	declared.

Sat Apr 18 23:37:59 1998  Stan Cox  <scox@equinox.cygnus.com>

	* configure.in: Added sparc86x.
	* configure: Regenerate.
	
	* sparc.h (TARGET_CPU_{hypersparc,sparc86x},
	PROCESSOR_{HYPERSPARC,SPARC86X}): Added for sparc86x/hypersparc.  
	(ADJUST_COST): Call hypersparc_adjust_cost.
	
	* sparc.c (hypersparc_adjust_cost): Added for sparc86x/hypersparc.

	* sparc.md (define_function_unit): Added for sparc86x/hypersparc.
	(define_attr "cpu"): Added hypersparc/sparc86x.
	
	* (t-sp86x, sp86x-elf.h, sp86x-aout.h: Added for sparc86x.
	
Thu Apr 16 22:38:23 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (dump_sbitmap, dump_sbitmap_vector): Move these into
	flow.c.

Wed Apr 15 16:47:20 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in: If target_requires_64bit_host_wide_int is set, then
	include config/host_wint.h in the xm-build file list.
	(mips64r5900-elf): Set target_requires_64bit_host_wide_int.
	* config/host_wint.h: New file.

Tue Apr 14 14:10:43 1998  Dave Brolley  <brolley@cygnus.com>

	* toplev.c: Call init_parse using new interface.

	* c-lex.c (init_parse): Now returns char* containing the filename.
Mon Apr 13 11:31:29 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (HAIFA_P): Define as 1/0 depending on whether the Haifa
	scheduler was selected.
	(ISSUE_RATE): Define as 2.

	* configure.in (enable_haifa): Switch m32r to Haifa by default.
	* configure: Regenerate.

Sun Apr 12 13:35:49 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (gcse_main): Run code hoisting if optimizing for
	code space.

1998-04-10  Ken Raeburn  <raeburn@cygnus.com>

	* config/arm/thumb.h, config/d10v/d10v.h,
	config/generic/generic.h, config/z8k/z8k.h (MEMORY_MOVE_COST):
	Updated to show extra args, currently ignored.  See my 16-Mar
	change.

Fri Apr 10 15:38:21 1998  Jim Wilson  <wilson@cygnus.com>

	* config/i386/i386elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Delete.
	* configure.in (i[34567]86-*-elf*): Add ${xm_file} and xm-svr4.h to
	xm_file list.

Fri Apr 10 10:42:42 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add trailing newline.

	* rtl.c (read_skip_spaces): Prevent infinite loops upon
	encountering unterminated comments.

	* config/arm/aout.c:      Add CYGNUS LOCAL markers.
	* config/arm/riscix.h:    Add CYGNUS LOCAL markers.
	* config/arm/riscix1-1.h: Add CYGNUS LOCAL markers.
	* config/arm/semiaof.h:   Add CYGNUS LOCAL markers.
	* config/arm/t-linux:     Add CYGNUS LOCAL markers.
	* config/arm/thumb.h:     Remove CYGNUS LOCAL markers.
	* config/arm/thumb.c:     Remove CYGNUS LOCAL markers.

Thu Apr  9 16:26:53 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add CYGNUS LOCAL markers.
	* config/m32r/m32r.c:  Add CYGNUS LOCAL markers.
	* config/m32r/m32r.h:  Add CYGNUS LOCAL markers.
	* config/m32r/t-m32r:  Add CYGNUS LOCAL markers.

	* config/arm/README-interworking: Added note about DLLs not
	working.

	* config/arm/arm.c:  Add CYGNUS LOCAL markers.
	* config/arm/arm.h:  Add CYGNUS LOCAL markers.
	* config/arm/arm.md: Add CYGNUS LOCAL markers.
	* config/arm/coff.h: Add CYGNUS LOCAL markers.
	* config/arm/semi.h: Add CYGNUS LOCAL markers.
	* config/arm/t-bare: Add CYGNUS LOCAL markers.
	* config/arm/lib1funcs.asm: Add CYGNUS LOCAL markers.

Thu Apr  9 12:57:05 1998  Alexandre Petit-Bianco  <apbianco@sendai.cygnus.com>

	* tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition.
 	* tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO,
 	COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros.
 	(build_expr_wfl): New prototype declaration.
 	* tree.c (build_expr_wfl): New function, to build
 	EXPR_WITH_FILE_LOCATION nodes.
 	(copy_node): Don't zero TREE_CHAIN if copying a
 	EXPR_WITH_FILE_LOCATION node.
 	* print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION.
 	* expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION.

Thu Apr  9 12:14:40 1998  Jeffrey A Law  (law@cygnus.com)

	* loop.c (loop_optimize): Call init_alias_analysis immediately after
	reg_scan.

	* configure.in: Kill mpw.
	* config.sub: Likewise.

Wed Apr  8 15:08:57 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in m68010-adobe-scout): Delete obsolete local config.
	(m68k-apollo-sysv, m68k-tandem-*, m68*-netx,vxworks*): Likewise.
	(mips-ncd-elf*, powerpc-*-netware*): Likewise.
	* config.sub: Kill "scout" references.

	* configure.in: Completely disable objc unless --enable-objc is
	specified at configure time.
	* objc/Make-lang.in: Remove CYGNUS LOCAL hack.

	* configure.in: Reorganize local configurations to make
	merging with egcs easier.

	* gcc.c (process_command): putenv only takes a single argument.

	* gcse.c: Include "system.h".
	* Makefile.in (gcse.o): Add missing dependencies.

Tue Apr  7 19:41:17 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.c (remove_dead_before_cse): Don't delete parts of libcalls.

Mon Apr  6 11:29:34 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (pre_expr_reaches_here): First argument is the starting
	basic block; add new arg check_pre_comp.  All callers changed.
	If !check_pre_comp, then do not require the expression to be set
	in the starting basic block.
	(pre_insert): Do not insert an expression if it does not reach
	any deleted occurences of the expression.
 
Mon Apr  6 07:17:52 1998  Catherine Moore  <clm@cygnus.com>

        * combine.c (can_combine_p):  Include successor in volatile test.

Fri Apr  3 15:59:35 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (run_jump_opt_after_gcse): Renamed from gcse_jumps_altered.
	All references changed.
	(gcse_main): If we split any edges, then run jump optimizations
	after gcse.

Thu Apr  2 19:23:29 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (mulsi3): Generate REG_LIBCALL / REG_RETVAL note pair.

Wed Apr  1 17:06:19 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h: Add super interworking support.
	* config/arm/thumb.c: Add super interworking support.
	* config/arm/thumb.md: Add super interworking support.
	* config/arm/tpe.h: Add super interworking support.
	* config/arm/lib1funcs.asm: Add interworking support.
	* config/arm/lib1thumb.asm: Add super interworking support.
	* config/arm/t-pe: Add super interworking support.
	* config/arm/t-semi: Add interworking support.
	* config/arm/t-thumb: Add interworking support.
	* config/arm/t-pe-thumb: Add super interworking support.
	* config/arm/README-interworking: New file.

Mon Mar 30 23:57:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (RTX_COSTS): If PLUS uses same operand twice, it counts only
	once.  ASHIFT/ASHIFTRT/LSHIFTRT argument cost counts too.

Mon Mar 30 12:27:21 1998  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi (ARM Options): Removed spurious @end table marker.

	* config/m32r/m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint
	to perfoirm the equivalent of a negated 'I' constraint.

	* config/m32r/m32r.md (cmp_ne_small_const_insn): Use 'S'
	constriant rather than 'I' since the value is negated.

Sat Mar 28 13:03:22 1998  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi: Document more ARM and Thumb options.

Fri Mar 27 16:15:29 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (make_relative_prefix): If argv[0] does not contain a
	directory separator, look up the name in the PATH environment
	variable.

Mon Mar  9 14:24:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (OPTIMIZATION_OPTIONS): SIZE sets SPACE_BIT.

Wed Mar 25 13:50:16 1998  Dave Brolley  <brolley@cygnus.com>

	* cccp.c: Restore chill support.

Tue Mar 24 10:44:11 1998  Nick Clifton  <nickc@cygnus.com>

	* Makefile.in (gcov$(exeext)): Support .exe extension to gcov.

	* collect2.c (find_a_file): Add debugging.
	(find_a_file): Test for win32 style absolute paths if
	DIR_SERPARATOR is defined.
	(prefix_from_string): Add debugging.
	(main): Test for debug command line switch at start of program
	execution. 
	(main): Use GET_ENVIRONMENT rather than getenv().
	
Sun Mar 22 16:15:45 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/tpe.h (ASM_DECLARE_FUNCTION_NAME): Include
	.thumb_func directive in function header.

Fri Mar 20 09:32:46 1998  Nick Clifton  <nickc@cygnus.com>

	* objc/Make-lang.in: Apply patch from Geoff Noer (noer@cygnus.com)
	to allow cygwin32 native toolchain builds via canadian crosses.

	* objc/Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com)
	to allow cygwin32 native toolchain builds via canadian crosses.

	* Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com) to
	allow cygwin32 native toolchain builds via canadian crosses.

	* config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon.

Fri Mar 20 09:27:06 1998  Jeffrey A Law  (law@cygnus.com)

	* pa.h (CPP_SPEC): Finish last change.

Thu Mar 19 22:33:35 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in (hppa1.1-hp-hpux11): Use pa-hpux11.h
	(hppa1.0-hp-hpux11): Likewise.
	* pa/pa-hpux11.h: New file.

	* pa.h (CPP_SPEC): If !ansi, then define __STDC_EXT__.

Thu Mar 19 13:45:28 1998  Nick Clifton  <nickc@cygnus.com>

	* config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Patch resubmitted,
	since it appears to have been lost in the shuffle....

	* config/arm/thumb.c (arm_valid_machine_decl_attribute): Copied
	from arm.c for thumb-pe builds.

	* config/arm/t-pe-thumb: New file: makefile fragement for thumb-pe
	build.

	* config/arm/tpe.h: New file: PE support for thumb-pe build.

Thu Mar 19 09:14:19 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Handle hpux11 just like hpux10 for now.

Wed Mar 18 11:21:16 1998  Nick Clifton  <nickc@cygnus.com>

	* config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Do not call
	cygwin32_posix_path_list_p with a NULL or empty path.

Wed Mar 18 09:33:13 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c (arm_valid_machine_decl_attribute): New
	function for thumb-pe support.

	* configure.in: Add thumb-pe target.

	* configure: Add thumb-pe target.

	* config.sub (maybe_os): Add thumb-pe target.

Mon Mar 16 16:24:45 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (make_relative_prefix): If directory is the same as
	expected, or there are no directory separators, don't create a
	relative pathname.

Fri Mar 13 17:55:04 1998  Michael Meissner  <meissner@cygnus.com>

	* i386/cygwin32.h    (GET_ENVIRONMENT): Delete from here.
	* i386/xm-cygwin32.h (GET_ENVIRONMENT): Move to here.  
	Initialize variable if not a posix style pathname.
	
Fri Mar 13 17:54:04 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (DIR_UP): If not defined, define as "..".
	(standard_bindir_prefix): New static, holds target location to
	install binaries.
	(split_directories): New function to split a filename into
	component directories.
	(free_split_directories): New function, release memory allocated
	by split_directories.
	(make_relative_prefix): New function, make a relative pathname if
	the compiler is not in the expected location.
	(process_command): Use GET_ENVIRONMENT to read GCC_EXEC_PREFIX.
	If GCC_EXEC_PREFIX was not specified, see if we can figure out an
	appropriate prefix from argv[0].

	* Makefile.in (gcc.o): Define STANDARD_BINDIR_PREFIX.

Fri Mar 13 11:49:49 1998  Stan Cox  <scox@equinox.cygnus.com>

	* config/i386/cygwin32.h (GET_ENVIRONMENT): Defined to allow win32
	style environment paths.

Thu Mar 12 16:22:03 1998  Stan Cox  <scox@cygnus.com>

	* sparc/liteelf.h (MULDI3,DIVDI3,UDIVDI3,MODDI3,UMODDI3)_LIBCALL:
	Undefine solaris library routines.
	
Thu Mar 12 13:21:38 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (movsi, movhi, movhi_insn_arch4,
	movho_insn_littleend, movhi_insn_bigend): Use
	ok_integer_or_other().
	(movhi_insn_arch4): Swap order of 2nd and 3rd alternatives to
	avoid problem in reload.

	* config/arm/arm.c: (find_barrier_insn): Return barrier insn, if
	found, rather than insn after the barrier.
	(ok_integer_of_other): New function, to avoid duplication in md
	file. 

	* config/arm/arm.h: Add prototype for ok_integer_or_other().

Wed Mar 11 14:28:30 1998  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (compile_file): Print out gcse time.

	* toplev.c (rest_of_compilation): Only rerun jump optimizations
	after gcse if gcse changes some jumps.

Wed Mar 11 15:21:52 1998  Michael Meissner  <meissner@cygnus.com>

	* haifa-sched.c (schedule_insns): Remove debug statement.

Wed Mar 11 15:44:54 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/mips.h (MASK_DEBUG_E): Redefine to zero. 

	
Tue Mar 10 12:20:57 1998  Stan Cox  <scox@rtl.cygnus.com>

	* sparc/liteelf.h (PREFERRED_DEBUGGING_TYPE): Make dwarf2
	the default debugging type.

Mon Mar  9 16:29:34 1998  Michael Meissner  <meissner@cygnus.com>

	* expr.c (expand_builtin): Add __builtin_expect code back in.
	* rs6000.c (ccr_bit,print_operand): Ditto.

Mon Mar  9 14:24:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* t-sh (MULTILIB_OPTIONS): Add m4-single-only.
	(MULTILIB_MATCHES): Remove m3e=m4-single-only.

Sun Mar  8 23:46:29 1998  Stan Cox  <scox@equinox.cygnus.com>

	* configure, configure.in (sparclite-*-elf*): Added.
	* sparc/liteelf.h: New file.

Sat Mar  7 13:59:47 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h, generic.h (LOOP_ALIGN): Fix comment delimiter.

Fri Mar  6 21:28:45 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h, generic.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY.
	* arm/thumb.h, i386/i386elf.h, m68k/st2000.h, z8k.h: Likewise.

Fri Mar  6 11:35:50 1998  Dave Brolley  <brolley@cygnus.com>

	* gcse.c (hoist_code): Should return void.

Thu Mar  5 23:45:08 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c: Bring back old classic gcse pass.
	(gcse_main): If optimizing for code size perform classic gcse
	instead of partial redundancy elimination.


Thu Mar  5 09:09:08 1998  Catherine Moore <clm@cygnus.com>

        * config/v850/lib1funcs.asm (___udivsi3):  Don't use r5.
        * config/v850/t-v850: Add -mno-app-regs to target build flags.
        * config/v850/v850.h:  Change STATIC_CHAIN_REGNUM from 5 to 20.
        Add option -mno-app-regs.  Add CONDITIONAL_REGISTER_USAGE macro.

Tue Mar  3 09:12:04 1998  Nick Clifton  <nickc@cygnus.com>

	* toplev.c: Do not generate a <name>.dbr file when dumping RTL
	unless DELAY_SLOTS is defined.

Mon Mar  2 20:06:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* generic.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
	replace with:
	(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER).
	* d10v.h: Likewise.
Wed Feb 25 10:02:19 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (movsfcc, movdfcc): Cope with constants that
	cannot be placed into instructions.  Patch supplied by Richard
	Earnshaw. 

Sun Feb 22 22:05:33 1998  Jeffrey A Law  (law@cygnus.com)

	* Use lazy code motion to drive placement partially redundant
	expressions and register copies.
	* First implementation of code hoisting pass.  Currently
	disabled due to code expansion.
	* gcse.c: (compute_{cprop,pre}_local_properties): Combined into a
	single function.  Accepts additional arguments as needed.  All
	references updated.
	(cprop_insn, cprop, one_cprop_pass): New arg to determine if jumps
	can/should be altered.  All references changed appropriately.
	(insert_insn_end_bb): Renamed from pre_insert_insn.
	(alloc_code_hoist_mem): New function for code hoisting.
	(free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
	(compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
	(hoist_code, one_code_hoisting_pass): Likewise.
	(gcse_main): Put check for setjmp at start of gcse_main and
	generally clean up initialization.  Do not allow cprop to
	alter jumps until the last pass.  Add appropriate calls to
	code hoisting support (currently #ifdef'd out).
	(compute_local_properties): New function for computing local
	properties for pre, cprop and code hoisting.
	(cprop_insn): Only cprop into jumps if alter_jumps is nonzero.
	(pre_av{invout}, pre_pav{in,out}, pre_pp{in,out}): Delete old pre
	variables.
	(pre_early{in,out},  pre_delay{in,out}, pre_latein): New variables
	for lazy code motion.
	(pre_iso{in,out}, pre_optimal, pre_redundant, temp_bitmap): Likewise.
	(pre_reundant_insns): Likewise.
	(alloc_pre_mem, free_pre_mem): Updated for changes in pre variables.
	(compute_pre_data): Likewise.
	(compute_pre_avinout, compute_pre_ppinout): Deleted.
	(compute_pre_earlyinout): New function for lazy code motion.
	(compute_pre_delayinout, compute_pre_latein): Likewise.
	(compute_pre_isoinout, compute_pre_optimal): Likewise.
	(compute_pre_redundant): Likewise.
	(pre_insert): Rework to only insert expressions at optimal	
	computation points as determined by lazy code motion.
	(pre_insert_copies): Rework to only copy expressions where
	necessary for lazy code motion.
	(pre_delete): Rework to delete insns which are redundant at
	not optimally placed.
	(hoist_antloc, hoist_transp, hoist_comp): Variables for code hoisting.
	(hoist_vbe{in,out}, hoist_exprs): Likewise.
	(dominators, post_dominators): Likewise.
	
Fri Feb 20 15:42:56 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/t-vr4100 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): 
	Add mno-mips16 and mips16.
	* mips/elfb4100.h, mips/elfl4100.h (MULTILIB_DEFAULTS) :
 	Add "mno-mips16".

Fri Feb 13 14:55:13 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add peephole optimisation to cope with
	PR14189, pending a better solution.

	* config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Define in
	order to allow peephole optimisation to work.

Fri Feb 13 02:57:19 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (DEFAULT_PCC_STRUCT_RETURN) Define as 0.

Mon Feb  9 09:53:41 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (v850_output_local): Call
	ASM_OUTPUT_ALIGNED_DECL_COMMON rather than ASM_OUTPUT_DECL_LOCAL
	(which is not defined).

	* varasm.c (assemble_variable): Ditto.

Fri Feb  6 14:55:28 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850ea.h: Remove multilibing and add -mUS-bit-set
	command line option.

	* config/v850/v850e.h: Remove multilibing.

	* config/v850/v850.c (ep_memory_offset): Support new command line
	options -msmall-sld and -mUS-bit-set to allow fine tuning of the
	SLD.[BH] offsets.
	* config/v850/v850.h: Ditto. 

	* config/v850/t-v850: Remove multilibing and replace with single,
	universal build using -mv850 and -msmall-sld command line options.


Fri Feb  6 09:19:12 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/elfb4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE,
	SUBTARGET_ASM_DEBUGGING_SPEC): Define.
	* mips/elfl4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE,
	SUBTARGET_ASM_DEBUGGING_SPEC): Same.

Fri Feb  6 02:53:28 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (MUST_PASS_IN_STACK): Define.

	* d10v/libgcc1.asm (__cmpdi): Fix bug in last change.

	* d10v.md (movhi): Don't call force_reg while reloading.
	(movsi): Handle case when reload asks us to use an uneven reg pair.

	Undo this change:
	  * va-d10v.h (__va_start_common): Add DELTA argument to subtract
	  from register number.
	  (va_start): Add DELTA argument to __va_start_common call, stdarg
	  passes 0, varargs needs to ignore last argument.

Tue Feb  3 15:45:55 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/elfb4100.h (SUBTARGET_CPP_SPEC): Insure that __mips64
	is defined.
	* mips/elfl4100.h (SUBTARGET_CPP_SPEC): Same.

Sat Jan 31 02:18:52 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (gcse_main): Fix minor typo in critial edge splitting code.
	(pre_insert_insn): Correctly handle inserting code before a switch
	table.

Wed Jan 28 16:43:49 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.c zero_and_one, emit_cond_move): Add support
	for MVFC instruction.

	* config/m32r/m32r.h: Ditto. 

	* config/m32r/m32r.md: Ditto.

Mon Jan 26 11:20:55 1998  Gavin Koch  <gavin@cygnus.com>

	* configure.in (mips64vr4100-*-elf*,mips64vr4100el-*-elf*):
	Add abi64.h to the tm_file list.
	* configure: Rebuild.
	* mips/elfb4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC,
	SUBTARGET_CPP_SPEC): Define.
	* mips/elfl4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC,
	SUBTARGET_CPP_SPEC): Define.

Sun Jan 25 21:46:07 1998  Michael Meissner  <meissner@cygnus.com>

	* va-d10v.h (__va_start_common): Add DELTA argument to subtract
	from register number.
	(va_start): Add DELTA argument to __va_start_common call, stdarg
	passes 0, varargs needs to ignore last argument.

	* d10v.c (emit_move_word): Use %. to emit code to access the 0
	register, not hardcoded r0.

	* d10v.md (movqi_internal): Use %. to emit code to access the 0
	register, not hardcoded r0.

Fri Jan 23 13:50:42 1998  Jeffrey A Law  (law@cygnus.com)
	
	* recog.c (validate_replace_src): Allow replacement in JUMP_INSNs.
	* toplev.c (rest_of_compilation): Run loop optimizations after
	gcse if gcse alters any jumps.
	(flag_classic_gcse): Remove flag and all references.
	* gcse.c: Clean up some comments, remove classic GCSE code,
	variables, comments, etc.
	(gcse_jumps_altered): New varaible.
	(gcse_main): Returns an int now.  Fix return statements.  Return
	zero normally, return nonzero if gcse modifies any jumps.
	(compute_preds_succs): Make sure last insn in the block is a 
	JUMP_INSN before passing it to condjump_p.
	(cprop_insn): Handle constant/copy propagation into JUMP_INSNs.
	* jump.c (jump_optimize): Delete (set (pc) (pc)) insns created
	by gcse.

Fri Jan 23 09:39:36 1998  Nick Clifton  <nickc@cygnus.com>

	* toplev.c: Add -dM command line option to dump RTL after the
	machine dependent reorganisation pass, if there is one.
	Reorganise RTL dump code, so that only one file handle is
	needed. 

	* configure.in: Fix indentation of CYGNUS LOCAL markers.

	* configure: Add support for thumb-coff.

	* toplev.c (lang_options): Add -Wunknown-pragmas and
	-Wno-unknown-pragmas. 

Fri Jan 23 11:20:19 1998  Michael Meissner  <meissner@cygnus.com>

	* d10v.c (override_options): Use GPR_EVEN_P.
	(override_options): Change to new ABI where args are in r0..r3,
	r14 is zero register.  Change names of register class to be
	ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of
	R13_REGS.
	(print_operand{,_memory_reference}): Ditto.
	(d10v_stack_info): Ditto.
	(function_{pro,epi}logue): Ditto.
	(emit_move_4words): Make refers_to_regno_p be type correct.

	* d10v.h (ARG_{FIRST,LAST}): Change to new ABI where args are in
	r0..r3, r14 is zero register.  Change names of register class to
	be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead
	of R13_REGS.
	(GPR_ZERO_REGNUM): Ditto.
	(SAVE_{ACC,GUARD}_REGNUM): Ditto.
	({FIXED,CALL_USED}_REGISTERS): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(reg_class): Ditto.
	(REG_CLASS_{NAMES,CONTENTS}): Ditto.
	(STATIC_CHAIN_REGNUM): Ditto.
	({FUNCTION,LIBCALL}_VALUE): Ditto.
	(FUNCTION_VALUE_REGNO_P): Ditto.

	* d10v.md (32-bit shifts): Change to new ABI where args are in
	r0..r3, r14 is zero register.  Change names of register class to
	be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead
	of R13_REGS.

	* d10v/libgcc1.asm: Change to new ABI where args are in r0..r3,
	r14 is zero register.  Change names of register class to be
	ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of
	R13_REGS.

	* d10v/scrt0.asm (_start): Zero r14, not r0.

Fri Jan 23 11:20:19 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (CUMULATIVE_ARGS): Now a typedefed struct.
	* d10v.c (init_cumulative_args): Access the appropriate members of cum.
	(function_arg, setup_incoming_varargs): Likewise.
	(function_arg_advance): When an argument doesn't fit in registers,
	retain the remaining argument regsiters for possible use by
	subsequent arguments.
	* va-d10v.h (__va_list_tag): New three members.
	(__va_start_common, va_arg): Update.

	* d10v.c (function_arg_boundary): Alignment for arguments starts
	with an arguemnt size of four bytes.
	(function_arg): No special case for structures > 4 bytes, if they
	fit fully in the remaining argument passing registers, they are
	passed in registers.
	When an argument would exceed the remaining argument passing
	registers, pass it fully on the stack.
	(function_arg_advance): Likewise.  In the latter case, mark remaining
	argument passing registers as used.
	(function_arg_partial_nregs): Remove.
	* d10v.h (FUNCTION_ARG_PARTIAL_NREGS): Don't define.

	* va-d10v.h (enum __type_class): Remove.
	(va_arg): Update.

Thu Jan 22 10:45:40 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add thumb-*-coff target.

	* config/arm/thumb.c (number_of_first_bit_set): Only use inline
	attribute when compiling with GCC.

	* config/arm/thumb.md (mulsi): Fix PR 14644.  Patch supplied by
	Jim Wilson.

	* config/arm/arm.c (output_func_epilogue): Fix PR14671 by changing
	the logic for determining when stack unwinding code is needed.

Wed Jan 21 08:28:07 1998  Jeffrey A Law  (law@cygnus.com)

	(gcse_main): If the first call to compute_preds_succs splits edges,
	then call find_basic_blocks again and make another call to
	compute_preds_succs.

Tue Jan 20 16:01:03 1998  Anthony Green  <green@cygnus.com>

	* invoke.texi (Optimize Options): -Os documentation.
	* tm.texi (Run-time Target): New argument to OPTIMIZATION_OPTIONS.
	* flags.h: New flag (optimize_size).
	* toplev.c (main): Parse -Os option and set optimize_space
	accordingly.
	* gcc.c (default_compilers), cp/lang-specs.h, ch/lang-specs.h: Define 
	__OPTIMIZE_SIZE__ when compiling with -Os.
	* config/dsp16xx/dsp16xx.h, config/i386/i386.h,
 	config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h,
 	config/v850/v850.h, config/d10v/d10v.h, config/generic/generic.h 
	config/sh/sh.h (OPTIMIZATION_OPTIONS): 	New SIZE argument to macro.
	* config/i386/i386.c (optimization_options): Accept new	SIZE argument.

Tue Jan 20 12:46:37 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (FOLLOW_BACK_EDGES): Enable.

	* gcse.c (dump_occr_list, replace_reg): Likewise.
	(alloc_gcse_mem): Delete unused variables.
	(compute_kill_rd, can_disregard_other_sets): Likewise.
	(find_avail_set, pre_insert_copies, pre_gcse): Likewise.
	(want_to_gcse_p): Add default case for switch statement.
	(oprs_unchanged_p, hash_expr_1, compute_transp): Likewise.
	(expr_equiv_p, oprs_not_set_p, expr_killed_p): Likewise.
	(find_used_regs): Likewise.
	(insert_expr_in_table): Initialize some variables to avoid
	some gcc -Wall warnings.
	(insert_set_in_table, handle_avail_expr): Likewise.
	(handle_avail_expr): Remove some #if 0 code.

Fri Jan 16 14:30:29 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: PR 14644: Fix multiply patterns to prevent
	contraint matching failure when all three registers are the same.

Thu Jan 15 16:41:18 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (PREDICATE_CODES): Add declaration of machine
	specific predicates.
	
Tue Jan 13 17:41:10 1998  Jim Wilson  <wilson@cygnus.com>

	* cse.c (invalidate): Remove CYGNUS LOCAL patch.

Mon Jan 12 16:35:04 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.md: Removed duplicate entries.

Wed Dec 31 12:30:03 1997  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.c (call_address_operand): Remove acceptance of
	constant values and addresses held in registers.

Mon Dec 29 14:09:01 1997  Jim Wilson  <wilson@cygnus.com>

	* configure.in (enable_fortran): Delete one too many '[' ']' levels.

Mon Dec 29 14:38:50 1997  Ian Lance Taylor  <ian@cygnus.com>

        * mips/t-vr4100 (LIB2FUNCS_EXTRA): Add mips16.S.
	* mips/t-vr4300: Likewise.

Mon Dec 29 11:39:10 1997  Felix Lee (flee@cygnus.com)

	* gcse.c (pre_insert_insn): Deref maybe_cc0_setter only if non-NULL.

Mon Dec 29 11:06:16 1997  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Disable fortran by default.

Tue Dec 16 23:08:00 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h (REG_OK_FOR_BASE_P): Fix non-strict definition.

	* d10v.c (function_arg): Don't pass DImode partially in registers.
	(function_arg_pass_by_reference): Don't pass structs / unions by
	reference.

Tue Dec 16 20:12:39 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.c (emit_comparison): Use CONSTANT_P to detect constant op1.
	Check it for being a CONST_INT before using its value.
	Use plus_constant_for_output to add to it.
	Fix bug in output template for >= 32767.

Tue Dec 16 11:17:12 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (arm_override_options): Force apcs-32 mode if
	interworking is specified.

Fri Dec 12 18:54:23 1997  Per Bothner  <bothner@cygnus.com>

	* expr.c (expand_builtin):  Support BUILT_IN_FMOD - just call fmod.

Fri Dec 12 23:09:29 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.c (override_options): Fix regno_reg_class for registers
	1, 7, 9, 11 and 15.

	(d10v_subword): Fix word_num calculation for SUBREG.

	(emit_subtract): Carry is ! Borrow.

	(emit_comparison): Handle CONSTs.

Fri Dec 12 07:37:49 1997  Michael Meissner  <meissner@cygnus.com>

	* gcse.c (compute_can_copy): If AVOID_CCMODE_COPIES, don't bother
	calling emit_insn/recog to set if we can copy CCmodes.

Wed Dec 10 11:33:38 1997  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (compute_can_copy): Don't allow copies for CCmode values
	if AVOID_CCMODE_COPIES is defined.
	* mips.h (AVOID_CCMODE_COPIES): Define.

Mon Dec  8 17:12:47 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (all_architectures): Removed processor field. 

Mon Dec  8 20:32:07 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (attribute "type", movsf_ie): Correct merge errors.

Wed Dec  3 10:44:25 1997  Gavin Koch  <gavin@cygnus.com>

	* mips/mips.md (muldi3_r4000): Broaden the output template
	and attribute assignments to handle three operand dmult;
	rename to muldi3_internal2.
	(muldi3): Call the new muldi3_internal2 for R4000, and
	any GENERATE_MULT3 chip.

Tue Dec  2 09:20:50 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/lib1funcs.asm: Add error condition if
	__USER_LABEL_PREFIX__ is not defined.

	* config.sub: Add support for Thumb target.

	* configure: Add support for Thumb target.

Tue Nov 25 19:10:56 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* Makefile.in (fixproto-defines): New rule.
	(fixhdr.ready): Depend on fixproto-defines.
	(mostlyclean): Remove fixproto-defines.
	(install-common): Don't create a temporary file, install the
	ready-built fixproto-defines.

Tue Nov 25 11:22:11 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c: Brought up to date with respect to devo and
	branch.
	* config/arm/aout.h:        Ditto.
	* config/arm/arm.h:         Ditto.
	* config/arm/arm.md:        Ditto.
	* config/arm/coff.h:        Ditto.
	* config/arm/lib1funcs.asm: Ditto.
	* config/arm/pe.h:          Ditto.
	* config/arm/riscix.h:      Ditto.
	* config/arm/riscix1-1.h:   Ditto.
	* config/arm/semi.h:        Ditto.
	* config/arm/semiaof.h:     Ditto.
	* config/arm/t-bare:        Ditto.
	* config/arm/t-linux:       Ditto.
	* config/arm/aout.h:        Ditto.
	* config/arm/lib1thumb.asm: Imported from branch.
	* config/arm/t-thumb:       Imported from branch.
	* config/arm/thumb.c:       Imported from branch.
	* config/arm/thumb.h:       Imported from branch.
	* config/arm/tcoff.h:       Imported from branch.
	* config/arm/thumb.md:      Imported from branch.
	* config/arm/xm-thumb.h:    Imported from branch.

Mon Nov 24 17:19:39 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: Updated with changes in devo.
	* config/arm/arm.c:  Updated with changes in devo.
	* config/arm/arm.h:  Updated with changes in devo.
	* config/arm/aout.h: Updated with changes in devo.
	* config/arm/semi.h: Updated with changes in devo.

Sat Nov 22 15:32:00 1997  Nick Clifton  <nickc@cygnus.com>

	* gcc.c (SWITCH_CURTAILS_COMPILATION): Definition.
	(DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c.
	(process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan
	command line arguments to see if an executable is not being
	created, and if so - do not append the suffix.

	* tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new
	driver macro.

Sat Nov 22 01:01:41 1997  Jeffrey A Law  (law@cygnus.com)

        * Makefile.in (AR_FOR_TARGET): Clean up "-e" confustion with
	program_transform_name.
	(RANLIB_FOR_TARGET): Likewise.

Tue Nov 11 22:38:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* combine.c (nonzero_bits): For paradoxical subregs, take
	LOAD_EXTENDED_OP into account.

Mon Nov 10 20:53:11 1997  Gavin Koch  <gavin@cygnus.com>

	* config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit
	is available elsewhere.

