diff options
author | obrien <obrien@FreeBSD.org> | 1999-10-16 06:09:09 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1999-10-16 06:09:09 +0000 |
commit | cae8fa8120c70195f34a2456f18c4c848a2d3e0c (patch) | |
tree | f7d3a3ab9c32694206552e767626366f016f2062 /contrib/gcc/ChangeLog | |
parent | 84656b55b6e25e30322dc903a05de53706361d3d (diff) | |
download | FreeBSD-src-cae8fa8120c70195f34a2456f18c4c848a2d3e0c.zip FreeBSD-src-cae8fa8120c70195f34a2456f18c4c848a2d3e0c.tar.gz |
Virgin import of the GCC 2.95.1 compilers
Diffstat (limited to 'contrib/gcc/ChangeLog')
-rw-r--r-- | contrib/gcc/ChangeLog | 23760 |
1 files changed, 13355 insertions, 10405 deletions
diff --git a/contrib/gcc/ChangeLog b/contrib/gcc/ChangeLog index f1be44e..446c775 100644 --- a/contrib/gcc/ChangeLog +++ b/contrib/gcc/ChangeLog @@ -1,14110 +1,17060 @@ -Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com) +Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com) - * egcs-1.1.2 Released. + * gcc-2.95.1 Released. -Sun Mar 14 03:23:47 1999 Jeffrey A Law (law@cygnus.com) +1999-08-13 Michael Meissner <meissner@cygnus.com> - * README, gcc.1, gcc.texi, version.c: Update for egcs-1.1.2 release. + * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B. -Thu Mar 11 14:00:58 1999 Richard Henderson <rth@cygnus.com> +Fri Aug 13 01:42:24 1999 Jeffrey A Law (law@cygnus.com) - * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs. - (MODES_TIEABLE_P): Update. + Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * fixincludes: Fix the return type of bsearch, char* -> void*. + * fixinc/inclhack.def: Likewise. -Thu Mar 11 00:20:52 1999 Alexandre Oliva <oliva@dcc.unicamp.br> +Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * gcc.texi: Update bug reporting instructions to match - current ezmlm list reality. + * dwarfout.c (fundamental_type_code): Return FT_boolean for + INTEGER_TYPE with precision==1, it's __java_boolean. -Mon Mar 8 01:19:23 1999 Jeffrey A Law (law@cygnus.com) +1999-08-11 Richard Earnshaw (rearnsha@arm.com) - * version.c: Bump for prerelease. + * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of + a register that is already known to be a pointer. -Mon Mar 8 01:16:30 1999 Manfred Hollstein <manfred@s-direktnet.de> - Jeff Law <law@cygnus.com> +1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com> - * configure.in (cpp_install_dir): Initialize from $enable_cpp - if that's looking like a pathname. - * configure: Rebuilt. + * fixinc/inclhack.tpl: Only install assert.h conditionally. + * fixinc/inclhack.sh: Regenerated. + * fixinc/fixincl.sh: Regenerated. - * Makefile.in (install-cpp, uninstall-cpp): cpp_install_dir is an - absolute pathname, not a $prefix relative pathname. +Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com> -Fri Mar 5 01:19:22 1999 Jeffrey A Law (law@cygnus.com) + * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi. + Fix documentation of -ansi flag to describe its C++ behavior. + Remove bogus reference to GCC 2.9. - Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific - asm() etc. function declarations in __DECC. +Tue Aug 10 22:40:36 1999 Jeffrey A Law (law@cygnus.com) -Wed Mar 3 23:55:14 1999 Zack Weinberg <zack@rabi.columbia.edu> + Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop. + (___mulsi3): Use '!' comment character. - * cpp.in: New. Better cpp shell script. - * cpp.sh: Delete. - * Makefile.in (cpp.sh): Build from cpp.in +Sat Aug 7 00:06:30 1999 Jeffrey A Law (law@cygnus.com) -Tue Mar 2 01:27:52 1999 H.J. Lu (hjl@gnu.org) + * gcc.texi: Update bug reporting text. - * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New - variables. - (install-cpp, uninstall-cpp): New targets. - (install-normal): Depend on $(INSTALL_CPP). - (uninstall): Depend on $(UNINSTALL_CPP). - * configure.in (cpp_install_dir): New, substitute. - (tmake_file): Added t-install-cpp for --enable-cpp. - * configure: Rebuilt. - * cpp.sh: New cpp script. - * config/t-install-cpp: New target fragment. + Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com> + * rs6000.h (struct rs6000_args): Add sysv_gregno. + * rs6000.c (init_cumulative_args): Init sysv_gregno. + (function_arg_boundary): Align DFmode. + (function_arg_advance): Restructure for ABI_V4; use sysv_gregno + to get fp reg and stack overflow correct. + (function_arg): Likewise. + (function_arg_pass_by_reference): True for TFmode for ABI_V4. + (setup_incoming_varargs): Restructure for ABI_V4; use + function_arg_advance to skip final named argument. + (expand_builtin_saveregs): Properly unskip the last integer arg + when doing varargs. Adjust overflow location calculation. + * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr + explicitly unsigned. + (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly. + (__VA_GP_REGSAVE): Similarly. + (__va_longlong_p): Delete. + (__va_arg_type_violation): New declaration. + (va_arg): Restructure. Flag promotion errors. Align double. + TFmode passed by reference. + * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic + in the HOST_BITS_PER_WIDE_INT > 32 case. -Mon Mar 1 23:38:20 1999 Jeffrey A Law (law@cygnus.com) +1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - Tue Feb 2 23:38:35 1999 David O'Brien <obrien@FreeBSD.org> - * i386/freebsd*.h now allows '$' in label names and does not use the - PCC struct return method. + * reg-stack.c (change_stack) Fixed problem with negative array index. - Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com> - * configure.in (FreeBSD ELF): Needs special crt files. - * configure: Rebuilt. +Fri Aug 6 20:41:08 1999 Jeffrey A Law (law@cygnus.com) -Sun Feb 28 14:47:53 1999 Arturo Montes <mitosys@colomsat.com.co> + Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org> + * rs6000.md (arithmetic, logical, and shift Rc combiner patterns): + Disable patterns performing SImode comparisons with SImode values + if TARGET_POWERPC64 and instruction does not sign-extend or does + not mask to narrower than SImode, i.e. where bit 31 and bit 63 may + differ for signed quantities. + (indirect_jump): Add expander to choose RTL based on TARGET_64BIT. + (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64. + (decrement_and_branch_on_count): Add 64-bit variant. - * config/i386/t-sco5gas (crti.o): New target. +Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) -Sun Feb 28 00:50:28 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - Jeffrey A Law (law@cygnus.com) + * gcc.c: Update URLs and mail addresses. + * gcc.texi: Likewise. - * cse.c (fold_rtx): Update comments for (const (minus (label) (label))) - case. - (cse_insn): Avoid creating a bogus REG_EQUAL note for - (const (minus (label) (label))) - (record_jump_cond): Fix mismatched paren in comment. - -Sat Feb 27 22:48:38 1999 H.J. Lu (hjl@gnu.org) - Jeffrey A Law (law@cygnus.com) +Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org> - * frame.h: Update some comments. - * crtstuff.c (TARGET_ATTRIBUTE_WEAK): Define. - (__register_frame_info, __deregister_frame_info): Declare using - TARGET_WEAK_ATTRIBUTE. - (__do_global_dtors_aux): Check if __deregister_frame_info is - zero before calling it. - (__do_global_dtors): Likewise. - (frame_dummy): Check if __register_frame_info is zero before - calling it. - (__frame_dummy): Likewise. - -Sat Feb 27 19:47:39 1999 Marc Espie <espie@openbsd.org> + * rs6000.c (current_file_function_operand): Return zero for + weak functions. + (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for + weak symbols. + * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG + for weak symbols. - * config/t-openbsd (T_CFLAGS): Add -Dmkstemps=my_mkstemps. +Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com> -Sat Feb 27 19:37:04 1999 Arturo Montes <mitosys@colomsat.com.co> + * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always + allocate space in the stack frame for the PIC register. - * i386/t-sco5 (crti.o): New target. - * i386/sco5.h (STARTFILE_SPEC): Include crti.o when - linking -shared. - * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o. - * configure: Rebuilt. +Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com) -Sat Feb 27 19:29:46 1999 Toon Moene <toon@moene.indiv.nluug.nl> - Mark Mitchell <mark@markmitchell.com> - Jeffrey A Law (law@cygnus.com) + * m68k.md (xordi3, anddi3): These patterns are not available on + the coldfire. - * alias.c (true_dependence): Only apply MEM_IN_STRUCT_P tests - when flag_structure_noalias is set. - * toplev.c (flag_structure_noalias): New variable. - (f_options): Add -fstructure-noalias. - * flags.h (flag_structure_noalias): Declare. - * invoke.texi: Update documentation. +Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com> -Sat Feb 27 19:19:36 1999 Jeffrey A Law (law@cygnus.com) + * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules. + (PUT_REAL): Likewise. - * SERVICE: Update from the FSF. +Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com> -Fri Feb 26 19:31:25 1999 Dave Love <fx@gnu.org> + * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump. - * md.texi, invoke.texi: Fix unterminated @xrefs. +Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com) -Fri Feb 26 01:47:46 1999 Jeffrey A Law (law@cygnus.com) + * flow.c (delete_unreachable_blocks): Do not call merge_blocks + or tidy_fallthru_edge if the last insn in the block is not + an unconditional jump or a simple conditional jump. - Sun Jan 17 03:20:47 1999 H.J. Lu (hjl@gnu.org) - * reg-stack.c (subst_stack_regs_pat): Abort if the destination - of a FP conditional move is not on the FP register stack. +Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com) - * Makefile.in (compare, gnucompare): We do not care about - comparison failures for objc/linking.o either. + * cse.c (cse_insn): Fix dumb thinko in last change. -Wed Feb 24 23:17:41 1999 Jeffrey A Law (law@cygnus.com) +Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com> - Thu Feb 18 19:59:37 1999 Marc Espie <espie@cvs.openbsd.org> - * configure.in :Handle OpenBSD platforms. - * configure: Rebuilt. - * config/openbsd.h: New file. - * config/xm-openbsd.h: New file. - * config/t-openbsd: New file. - * config/t-openbsd-thread: New file. + * dwarf2out.c (add_location_or_const_value_attribute): Correct + test for sizes of passed and declared parameter types. - Thu Feb 18 13:15:56 1999 Marc Espie <espie@cvs.openbsd.org> - * alpha/openbsd.h: New file. - * alpha/xm-openbsd.h: New file. - * sparc/openbsd.h: New file. - * sparc/xm-openbsd.h: New file. - * m68k/openbsd.h: New file. - * m68k/xm-openbsd.h: New file. - * i386/openbsd.h: New file, originally from netbsd. - * i386/xm-openbsd.h: New file. +Mon Aug 2 12:45:09 1999 Richard Henderson <rth@cygnus.com> - Wed Nov 19 12:56:54 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - * configure.in: Fix check for <inttypes.h>. - * configure: Rebuilt. + * alpha.c (override_options): Don't force ALPHA_TP_PROG for ev6. - * varasm.c (declare_weak): If HANDLE_PRAGMA_WEAK, call - handle_pragma_weak. - -Wed Feb 24 03:17:56 1999 Jeffrey A Law (law@cygnus.com) +Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com) - * version.c: Bump for prerelease. + * fix-header.c (main): When testing for CONTINUED, use string + equality, not pointer equality. - * Makefile.in (compare, gnucompare): Ignore comparison failures - for some objects in the ObjC runtime. +Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu> -Wed Feb 24 02:39:08 1999 Jeffrey A Law (law@cygnus.com) + * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0. - Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * sh.c (output_far_jump): Emit braf only for TARGET_SH2. +Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com) - Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * va-sh.h (__va_arg_sh1): Use __asm instead of asm. + * cse.c (cse_insn): Fix loop which deletes insns after a jump + that has become an unconditional jump. -Tue Feb 23 00:38:17 1999 Jeffrey A Law (law@cygnus.com) + * m68k.c (output_function_prologue): Fix typo in CPU32 case. + (output_function_epilogue): Similarly. - Thu Sep 3 00:23:21 1998 Richard Henderson <rth@cygnus.com> - * ginclude/va-alpha.h: Protect entire second portion of the - file against double inclusion. + Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com> + * dwarf2out.c (output_abbrev_section): Terminate with a zero. - Mon Aug 31 13:57:55 1998 Richard Henderson <rth@cygnus.com> - * alpha/va_list.h: New file. - * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. + Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com> + * tree.c (build_type_attribute_variant): Move current_obstack restore + after build_qualified_type call. - Sat Aug 1 17:59:30 1998 Richard Henderson <rth@cygnus.com> - * ginclude/va-alpha.h (va_list): Use a typedef, not a define. + Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + * sh.c (fixup_addr_diff_vecs): Emit braf reference label. + (braf_label_ref_operand): Delete. + * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. + * sh.md (casesi_jump_2): Operand1 is now the inside of a + label_ref, and has no predicate. + The patten has a predicate to guard against invalid substitutions. + (dummy_jump): Delete. + (casesi): Update use of casesi_jump_2. -Sun Feb 21 20:35:10 1999 Jeffrey A Law (law@cygnus.com) +Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com> - Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com> - * tree.c (append_random_chars): New fn. - (get_file_function_name_long): Use it. + * gcc.texi: Use terms "GNU Compiler Collection" and "GCC". + Also update copyright. - Thu Aug 13 17:08:11 1998 Jason Merrill <jason@yorick.cygnus.com> - * tree.c (get_file_function_name_long): Split out... - (get_file_function_name): ...from here. +Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com) - * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete. - (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise. - * tm.texi: Update docs for constructors and destructors. + * gcc-2.95 Released. -Tue Feb 16 21:02:07 1999 Anton Hartl <toni@devsoft.com> + * verison.c: No longer a prerelease. - * rs6000.md (call_value): Fix typo. +Wed Jul 28 13:49:03 1999 Jeffrey A Law (law@cygnus.com) -Tue Feb 16 01:37:33 1999 Charles G Waldman <cgw@alum.mit.edu> + * README: Update. - * c-common.c (shorten_compare): Get the min/max value from the - underlying type of an enumeration, not the enumerated type itself. +Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com) -Mon Feb 15 11:33:51 1999 Jeffrey A Law (law@cygnus.com) + * gcc.texi: More changes related to list conversion. + * invoke.texi: Likewise. - Sat Jan 16 21:48:17 1999 Marc Espie (Marc.Espie@openbsd.org) - * gcc.c: (do_spec_1): Fix obvious typo. +Sat Jul 17 23:58:24 1999 David Edelsohn <edelsohn@gnu.org> - * jump.c: Include insn-attr.h. - (delete_computation): If reload has completed and insn scheduling - after reload is enabled, then do not depend on REG_DEAD notes. - * Makefile.in (jump.o): Depend on insn-attr.h. + * rs6000.md (insv, extzv): Remove SImode dependence in named + patterns. Explicitly generate DImode RTL if PowerPC64 and + operand is DImode. + (insvdi): Reverse start and size in instruction template. - * sparc.c (output_scc_insn): Add missing argument to output_cbranch. +1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> + + * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org. + Removed paragraph about compression of files and size limitation, + duplicated in the FAQ. Use gcc-patches for posting patches. + * gcc.c (main): Updated URL with bug reporting instructions to + gcc.gnu.org. Removed e-mail address. + * system.h (abort): Likewise. - * loop.c (mark_loop_jump): Handle LO_SUM. If we encounter something - we do not understand, mark the loop and containing loops as invalid. +1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Sun Feb 14 23:05:34 1999 Jeffrey A Law (law@cygnus.com) + * Makefile.in (stmp-multilib-sub): Make the files extracted + from $(LIBGCC1) writable. - Tue Feb 9 21:14:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * alias.c (init_alias_analysis): Avoid self-referential value - when setting reg_known_value from REG_EQUAL notes. +Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com) - Mon Aug 17 02:03:55 1998 Richard Henderson <rth@cygnus.com> - * regclass.c (allocate_reg_info): Respect MIN when clearing data. + * m68k.c (output_function_prologue): Fix computation of save mask + when generating PIC code. - * loop.c (scan_loop): Fix typo in last change. +1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk> -Sat Feb 13 11:53:12 1999 Jeffrey A Law (law@cygnus.com) + * invoke.texi: Typo fixes. - 1999-02-05 Michael Meissner <meissner@cygnus.com> - J"orn Rennecke <amylaar@cygnus.co.uk> - * loop.c (check_dbra_loop): A store using an address giv for which - we have no life information is not reversible. - * loop.c (first_loop_store_insn): New file-scope variable. - (prescan_loop): Set it. - (check_dbra_loop): Check if a store depends on a register - that is set after the store. +Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com) - Sun Jan 31 13:22:02 1999 John Wehle (john@feith.com) - * i386.md (movsicc, movhicc, movsfcc, movdfcc, - movxfcc, movdicc): Delete unconstrained alternatives. - * i386.c (output_fp_conditional_move, - output_int_conditional_move): Delete unused case. + * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not + handle at this time instead of silently generating incorrect code. + (gen_imagpart): Likewise. - Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (emit_block_move): Do not call memcpy as a libcall - instead build up a CALL_EXPR and call it like any other - function. - (clear_storage): Similarly for memset. + * reload.c (find_reloads): Emit a USE for a pseudo register without + a hard register if we could not create an optional reload for the + pseudo. - Sun Sep 20 20:57:02 1998 Robert Lipe <robertl@dgii.com> - * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder - problems. - * configure: Regenerate. +Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com> -Fri Feb 12 23:20:54 1999 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> + * regclass.c (scan_one_insn): Notice subregs that change the + size of their operand. + (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE. - * loop.c (scan_loop): Call reg_in_basic_block_p before - loop_reg_used_before_p. +Wed Jul 14 01:37:06 1999 Jeffrey A Law (law@cygnus.com) -Thu Feb 11 01:53:10 1999 Jeffrey A Law (law@cygnus.com) + * configure.in (alpha*-*-*): Include alpha/t-ieee. + * configure: Rebuilt. + * alpha/t-ieee: New file. - Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * expr.c (store_expr): Don't generate load-store pair - if TEMP is identical (according to ==) with TARGET. +Tue Jul 13 10:44:14 1999 Jeffrey A Law (law@cygnus.com) -Thu Feb 11 01:06:49 1999 Nathan Sidwell <nathan@acm.org> + Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + * cse.c (cse_insn): Don't put hard register source into tables for + the last insn of a libcall. - * fold-const.c (range_binop): Take account of the bounded nature - of fixed length arithmetic when comparing unbounded ranges. + * rs6000.c (find_addr_reg): Do not select r0 as an address + register. -Wed Feb 10 11:03:22 1999 Richard Henderson <rth@cygnus.com> +Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be> - * configure.in (alphaev6*): Fix typo in target_cpu_default2. + * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'. -Tue Feb 9 00:00:14 1999 Mark Kettenis <kettenis@gnu.org> +Mon Jul 12 23:39:08 1999 Jeffrey A Law (law@cygnus.com) - * configure.in (i[34567]86-*gnu*): Set float_format to i386. - * configure: Rebuilt. + * rs6000.md (movsf): Do not force easy FP constants into memory. -Sat Feb 6 16:03:36 1999 Jeffrey A Law (law@cygnus.com) +Sun Jul 11 11:21:24 1999 Jason Merrill <jason@yorick.cygnus.com> - * invoke.texi, expr.c: Update email addresses. + * toplev.c (main): Don't complain about saying -gdwarf. - * gcc.c, gcc.texi: Update email addresses. +Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com) -Sat Jan 30 05:27:25 1999 Jeffrey A Law (law@cygnus.com) + * version.c: Drop "gcc-" prefix from version #. - Thu Jan 21 01:59:30 1999 Richard Henderson <rth@cygnus.com> - * explow.c (allocate_dynamic_stack_space): Use register_operand - instead of arith_operand, which does not exist. +Thu Jul 8 19:15:51 1999 Jim Wilson <wilson@cygnus.com> -Thu Jan 28 09:44:04 1999 Jeffrey A Law (law@cygnus.com) + * unroll.c (unroll_loops): Don't delete named CODE_LABEL or + NOTE_INSN_DELETED_LABEL note. - * configure.in (hppa1.0-hp-hpux10*): Use t-pa. - * configure: Rebuilt. +Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com> -Thu Jan 21 23:27:06 1999 Jeffrey A Law (law@cygnus.com) + * m68k.c (output_function_prologue): Add pic register to mask + if live and flag_pic. + (output_function_epilogue): Likewise. - * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indention. - (ashldi3 expander): Similarly. Update comments. - (ashrdi_const, lshrdi_const): Fix indention. - (ashrdi3, lshrdi3): FIx indention. Update comments. +Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com> -Thu Jan 21 20:33:31 1999 Richard Henderson <rth@cygnus.com> + * invoke.texi (DEC Alpha Options): Put @end table at + beginning of line, to avoid confusing texi2html. - * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept - transformations that we have performed earlier. - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. +Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> -Sun Jan 17 20:39:20 1999 Richard Henderson <rth@cygnus.com> + * reload1.c (gen_reload): When synthesizing a 3 operand add + sequence, improve test for when to reload OP1 into the reload + register instead of OP0. - * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL. +Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com> -Sun Jan 17 19:01:47 1999 Jeffrey A Law (law@cygnus.com) + * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. - * i386.md (integer conditional moves): Add missing earlyclobbers. +1999-07-07 Manfred Hollstein <mhollstein@cygnus.com> - * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update - REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change - where a register is live. + * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line + string literal. -Fri Jan 15 01:19:42 1999 Jeffrey A Law (law@cygnus.com) +Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com> - * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share - a register with another DEST_ADDR giv if the address is not valid. + * ginclude/varargs.h (__builtin_va_alist_t): New typedef. + (va_dcl): Use __builtin_va_alist_t. - * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf. +Wed Jul 7 01:13:31 1999 Jason Merrill <jason@yorick.cygnus.com> -Mon Jan 11 20:23:34 1999 Richard Henderson <rth@cygnus.com> + * dwarf2out.c (gen_struct_or_union_type_die): Only remember types + on the permanent_obstack. + * dwarfout.c (output_type): Likewise. - * sparc.c (legitimize_pic_address): Treat labels like symbols. - (emit_move_sequence): Likewise. - * sparc.h (PRINT_OPERAND_ADDRESS): Likewise. - (ASM_OUTPUT_ADDR_VEC_ELT): Don't special case CM_MEDLOW. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. Don't reference magic `1b'. - * sparc.md (move_pic_label_si): Kill. - (move_label_di): Kill. - (pic_tablejump_32, pic_tablejump_64): Kill. - (tablejump): Expose pic arithmetic to the compiler. +Fri Jul 2 03:05:13 1999 Jeffrey A Law (law@cygnus.com) -Thu Jan 7 00:33:33 1999 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> + * dwarfout.c (field_byte_offset): Correctly compute the object's + byte offset for the first bit of a field which crosses an alignment + boundary on a !BYTES_BIG_ENDIAN target. - * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases, - when a test can't be performed due to limited width of - HOST_BITS_PER_WIDE_INT, use the more conservative approximation. - Fix UDIV case for cases where the first operand has the highest bit - set. +Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net> -Wed Jan 6 23:37:47 1999 Jeffrey A Law (law@cygnus.com) + * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and + ntohs. - * h8300.h (ASM_OUTPUT_LABELREF): Define. +Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com> + Jeff Law <law@cygnus.com> -Wed Jan 6 02:23:36 1999 "Charles M. Hannum" <root@ihack.net> + * ginclude/varargs.h (va_dcl): Use word_mode for type of + __builtin_va_list. - * expr.c (store_expr): If the lhs is a memory location pointed - to be a postincremented (or postdecremented) pointer, always - force the rhs to be evaluated into a pseudo. + * except.c: Include intl.h. + (expand_eh_return): Set current_function_cannot_inline. + (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label. + * function.h (struct function): Add eh_return_stub_label. + * flow.c (delete_unreachable_blocks): Don't merge across EH edges. + * Makefile.in (except.o): Depend on intl.h. -Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com) +Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org> - * i386.md (doubleword shifts): Fix dumb mistakes in previous change. + * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the + same as offsettable in cases 1 and 2. -Wed Dec 30 23:44:11 1998 Jeffrey A Law (law@cygnus.com) +1999-07-01 Mark Kettenis <kettenis@gnu.org> - * m68k.md (adddi_dilshr32): Allow all operands to be registers too. - (adddi_dishl32): Similarly. + * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if + -fPIC or -fpic is specified. - * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers - for each insn in the skipped block. +Wed Jun 30 23:56:01 1999 Jeffrey A Law (law@cygnus.com) - * i386.md (doubleword shifts): Avoid namespace pollution. + * expr.c (emit_block_move): Use copy_to_mode_reg for + !TARGET_MEM_FUNCTIONS case too. -Mon Dec 28 10:44:40 1998 Richard Henderson <rth@cygnus.com> +Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com) - * combine.c (subst): Process the inputs to a parallel asm_operands - only once. + * mips.md (leasi, leadi): New patterns. -Sun Dec 13 00:09:47 1998 Jeffrey A Law (law@cygnus.com) + * expr.c (emit_block_move): Properly handle case where one of the + block move arguments has a queued increment or decrement. + (clear_storage): Similarly. Fix formatting goof. - * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. +Mon Jun 28 05:32:09 1999 Jeffrey A Law (law@cygnus.com) - * h8300.c (h8300_encode_label): Use '&' for tiny data items. - * h8300.h (TINY_DATA_NAME_P): Likewise. - (STRIP_NAME_ENCODING): Handle '&'. + * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA + case. Also make the PIC register call_used. -Wed Dec 2 01:44:58 1998 Jeffrey A Law (law@cygnus.com) + * m68k.h (FINALIZE_PIC): Delete. + * m68k.c (finalize_pic): Delete. - * egcs-1.1.1 released. + * m68k.h (CONDITIONAL_REGISTER_USAGE): Make the PIC register fixed + when -fpic/-fPIC. -Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com> +Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com> - * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. - The strategy we now use is to pre allocate the top_elt along - with the EH context so that each thread has its own top_elt. - This is necessary as the dynmanic cleanup chain is used on the - top element of the stack and each thread MUST have its own. - (new_eh_context): Likewise. - (__sjthrow): Likewise. + * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles + to memory. -Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com> +Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org> - * local-alloc.c (local_alloc): Use malloc not alloca for - reg_qty, reg_offset, ref_next_in_qty. + * rs6000.c (output_toc): Always use hex values for floating-point + constants. Store single-precision values in upper-half of TOC + entry in 64-bit mode. + * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64 + to final constraints. + (fix_truncdfsi2 splitter): Change pattern matching fctiwz. + (fctiwz): Improve accuracy of RTL for pattern. -Mon Nov 23 09:49:49 1998 Andrew MacLeod <amacleod@cygnus.com> + * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output. - * cplus-dem.c (demangle_prefix): Use the last "__" - in the mangled name when looking for the signature. This allows - template names to begin with "__". + * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note. -Mon Nov 23 09:40:41 1998 David Edelsohn <edelsohn@mhpcc.edu> +Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com> - * rs6000.h (LEGITIMIZE_ADDRESS): Add missing "goto WIN". + * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define + such that MASK_SUPPORT_ARCH is not negative. -Mon Nov 9 23:29:39 1998 David Edelsohn <edelsohn@mhpcc.edu> +Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com) - * rs6000.md (floatunssidf2_internal splitter): Use base register - operand, not hard-coded SP. + * loop.c (verify_dominator): Properly handle ADDR_VEC and + ADDR_DIFF_VEC insns that appear inside loops. -Mon Nov 9 23:05:51 1998 Richard Earnshaw (rearnsha@arm.com) +Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org> + Jeff Law <law@cygnus.com> - Restore ABI compatibility for NetBSD. - * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in - arm.h - (RETURN_IN_MEMORY): Likewise. + * rs6000.md (movdf_hardfloat32): Revert previous patch. + Handle LO_SUM the same as offsettable in cases 1 and 2. + * rs6000.c (find_addr_reg): Revert previous patch. - * arm.c (add_constant): When taking the address of an item in the - pool, get the mode of the item addressed. +Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be> - * arm.c (final_prescan_insn, case INSN): If an insn doesn't - contain a SET or a PARALLEL, don't consider it for conditional - execution. + * system.h (strstr): New external function declaration. + * acconfig.h (NEED_DECLARATION_STRSTR): New define slot. + * configure.in (GCC_NEED_DECLARATIONS): Check for strstr. + * config.in, configure: Rebuilt. -Mon Nov 9 22:43:57 1998 Jean-Pierre Radley <jpr@jpr.com> +1999-06-24 Tom Tromey <tromey@cygnus.com> - * fixinc.sco: Paramaterize #include_next values. - * fixinc/fixinc.sco: Likewise. + * gcc.c (main): Read user-specified specs files after computing + additional startfile_prefixes. -Mon Nov 9 22:43:57 1998 Robert Lipe <robertl@dgii.com> +1999-06-24 Bruce Korb <ddsinc09@ix.netcom.com> - * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h - and term.h from fixinc.wrap. + *fixinc/inclhack.def(end_else_label): combined else_label + and endif_label and fixed the sed expression. + *fixinc/{fixincl.x|inclhack.sh}: regen -Thu Nov 5 07:57:45 EST 1998 Andrew MacLeod <amacleod@cygnus.com> +Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com) - * except.c (expand_fixup_region_end): Make sure outer context labels - are not issued in an inner context during cleanups. + * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting + 'x' when handling non-offsettable addresses -Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) +Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com) - * i386/linux.h (CPP_PREDEFINES): Bring back -Di386 for the last time. + * final.c (shorten_branches): Don't try to split an insn that has + been deleted. - * From Christian Gafton: - * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. - * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. - * sparc/linux64.h (CPP_PREDEFIENS): Add -D__sparc__. +Mon Jun 21 23:32:17 1999 Jeffrey A Law (law@cygnus.com) -Sat Oct 31 00:40:05 1998 Jeffrey A Law (law@cygnus.com) + Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com> + * fixincludes: ISCNTL patch - * jump.c (jump_optimize): Initialize mappings from INSN_UID to - EH region if exceptions are enabled and we're performing cross - jump optimizations. - (find_cross_jump): Exit loop if the insns are in different EH regions. +Mon Jun 21 22:15:50 1999 Jeffrey A Law (law@cygnus.com) -Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de> + * rs6000.c (find_addr_reg): Handle LO_SUM addresses. - * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. +Mon Jun 21 22:14:05 1999 David Edelsohn <edelsohn@gnu.org> -Thu Oct 29 12:14:58 1998 Jason Merrill <jason@yorick.cygnus.com> + * rs6000.md (movdf_hardfloat32): Fix typo. - * alpha/linux.h (CPP_PREDEFINES): Add missing space. +Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com> -Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@mhpcc.edu> + * collect2.c (main): Log frame table count. + (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. + (scan_prog_file) [COFF]: Handle frame tables. - * collect2.c (aix64_flag): New variable. - (main, case 'b'): Parse it. - (GCC_CHECK_HDR): object magic number must match mode. - (scan_prog_file): Only check for shared object if valid header. - Print debugging if header/mode mismatch. - * README.RS6000: Update. + * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. + * alpha/elf.h: Undef them again. + * alpha/vms.h: Remove their definitions. -Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> +1999-06-21 Jakub Jelinek <jj@ultra.linux.cz> - * stmt.c (expand_fixup): Set fixup->before_jump to a - NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. + * real.c (ereal_from_double): Fix for 64-bit big endian hosts. + * emit-rtl.c (gen_lowpart_common): Add case for hosts where double + fits in HOST_WIDE_INT and one uses union to access a long constant + as double. -Sun Oct 25 18:35:06 1998 David Edelsohn <edelsohn@mhpcc.edu> +Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com> - * ginclude/va-ppc.h (va_arg): longlong types in overflow area are - not doubleword aligned. + * sparc.c (sparc_override_options): Don't allow profiling for + code models other than medlow. + (sparc_function_profiler): New function from old FUNCTION_PROFILER + macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION. + (sparc_function_block_profiler): Likewise. Use user_label_prefix. + (sparc_block_profiler): Likewise. + (sparc_function_block_profiler_exit): Likewise. + * sparc.h (FUNCTION_PROFILER): Call new sparc.c function. + (FUNCTION_BLOCK_PROFILER): Likewise. + (BLOCK_PROFILER): Likewise. + (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. + (MCOUNT_FUNCTION): New. + * sparc/pbd.h (FUNCTION_PROFILER): Delete. + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. + * sparc/sun4o3.h (FUNCTION_PROFILER): Delete. + (MCOUNT_FUNCTION): New. + * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete. + (BLOCK_PROFILER): Delete. + (MCOUNT_FUNCTION): New. -Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu> +Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com> - * i386/crtdll.h (CPP_PREDEFINES): Fix typo. - * i386/mingw32.h (CPP_PREDEFINES): Likewise. + * i386/djgpp.h (LIB_SPEC): New. + (STARTFILE_SPEC): New. -Fri Oct 23 22:41:40 1998 David Edelsohn <edelsohn@mhpcc.edu> + * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete. - * rs6000.md (movsf): Disable explicit secondary-reload-like - functionality if TARGET_POWERPC64. - (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like - functionality. +Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be> -Fri Oct 23 22:38:57 1998 Jeffrey A Law (law@cygnus.com) + * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in + compiler flags. - * m68k.md (5200 movqi): Do not allow byte sized memory references - using address regs. - * m68k.c (output_move_qimode): Do not use byte sized operations on - address registers. + * system.h (WSTOPSIG): New macro. -Fri Oct 23 00:56:11 1998 Jason Merrill <jason@yorick.cygnus.com> +Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu> - * expr.c (pending_chain): Move up. - (save_expr_status): Do save pending_chain. - (restore_expr_status): And restore it. - * function.h (struct function): Add pending_chain. + * c-pragma.c (push_alignment): Don't ignore alignments greater than + 4 bytes. + (insert_pack_attributes): Take into account member natural + alignment. -Mon Oct 19 13:22:13 1998 Geoff Keating <geoffk@ozemail.com.au> + * i386/winnt.c (exports_head): New static variable. + (i386_pe_record_exported_symbol): New function. + (i386_pe_asm_file_end): Use. + * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported + symbols to be emitted at end of assembly. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. - * loop.c (scan_loop): Be more selective about what invariants are - moved out of a loop. + * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and + -iwithprefix. -Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) +Mon Jun 21 05:17:00 1999 David Edelsohn <edelsohn@gnu.org> - * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. + * rs6000.md (movdf_hardfloat32): Use worst case insn length + attributes for cases 1 and 2. -Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) + * rs6000.c (find_addr_reg): New function. + * rs6000.h (find_addr_reg): Declare. + (offsettable_addr_operand): Delete. + * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads + from and stores to GPRs. - * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. - * config/t-rtems: Do not install assert.h -- use newlib's. +Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com) -Sat Oct 3 19:01:03 1998 Richard Henderson <rth@cygnus.com> + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced + in last change. - * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake. +Sun Jun 20 17:24:35 1999 Richard Henderson <rth@cygnus.com> -Fri Oct 2 01:33:30 1998 Jim Wilson <wilson@cygnus.com> + * haifa-sched.c (sched_analyze): Don't clear reg_last_uses on calls. - * i386/winnt.c (i386_pe_asm_file_end): Check - TREE_SYMBOL_REFERENCED. +Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com> -Fri Oct 2 01:31:54 1998 Jeffrey A Law (law@cygnus.com) + * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered + instead of set. - * regclass.c (reg_scan_mark_refs): Return immediately if passed a - NULL_RTX as an argument. +Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk> - * gcc.texi: Fix version # that somehow slipped through. + * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN. -Fri Oct 2 01:24:19 1998 Geoff Keating <geoffk@ozemail.com.au> +Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com) - * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, - mem_first_set, mem_last_set; because 0 can be a CUID. - (oprs_unchanged_p): Use new definition. - (record_last_reg_set_info): Likewise. - (record_last_mem_set_info): Likewise. - (compute_hash_table): Likewise. + * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use + PIC_OFFSET_TABLE_REGNUM for general alloaction. + (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register + must be stacked if it is used for PIC accesses. + * arm.c (use_return_insn): Handle PIC register specially. + (output_return_instruction): Likewise. + (output_func_{prologue,epilogue}): Likewise. + (output_expand_prologue): Likewise. -Fri Oct 2 01:20:04 1998 Richard Earnshaw (rearnsha@arm.com) + * arm.c (arm_override_options): Remove warning about PIC code + not being supported. - * arm.c (add_constant): New parameter address_only, change caller. - Set it non-zero if taking the address of an item in the pool. - (arm_reorg): Handle cases where we need the address of an item in - the pool. +Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com> - * arm.c (bad_signed_byte_operand): Check both arms of a sum in - a memory address. - * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle - memory addresses that are not in standard canonical form. + * alpha.c (alpha_expand_block_move): Use get_insns rather than + gen_sequence as argument to emit_no_conflict_block. -Fri Oct 2 01:16:02 1998 Jeffrey A Law (law@cygnus.com) +Fri Jun 18 06:48:30 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reg-stack.c (straighten_stack): Do nothing if the virtual stack is - empty or has a single entry. + * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of _*ISCTRL(). + * fixinc/{fixincl.x,inclhack.sh}: regen -Sat Sep 5 23:29:39 1998 Mumit Khan <khan@xraylith.wisc.edu> +Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org> - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for - for exact section attributions. + * i386/freebsd-elf.h (LINK_SPEC): Fix typo. - * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc - runtime. - * i386/crtdll.h (CPP_PREDEFINES): Define. + * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and + the reference to `mcount' was not correct for the ELF on FreeBSD. -Sat Sep 5 21:46:47 1998 Richard Henderson <rth@cygnus.com> +Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com) - * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, - not whatever we're generating now. + * invoke.texi (ia32 options): Fix typo. -Sat Sep 5 14:23:31 1998 Torbjorn Granlund <tege@matematik.su.se> + * emit-rtl.c (operand_subword): Tighten checks for when it is safe + to safe to extract a subword out of a REG. - * m68k.md (zero_extendsidi2): Fix typo. +Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com> -Tue Sep 1 01:58:38 1998 Jeffrey A Law (law@cygnus.com) + * dwarfout.c (add_incomplete_type): New fn. + (output_type): Call it. + (retry_incomplete_types): New fn. + (dwarfout_finish): Call it. - * egcs-1.1 released. - * version.c: Update for egcs-1.1 release. + From Eric Raskin <ehr@listworks.com>: + (output_type): Output types for bases. -Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) +Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org> - * NEWS: Add SCO Openserver and Unixware 7 notes. + * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library + specifications and make it realistic. + (LIB_SPEC): Likewise. - * NEWS: Fix typos. +Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com) -Sat Aug 29 14:52:28 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not + require a sub-version #. + * configure: Rebuilt. - * config/sparc/sparc.md (movdf_insn, movtf_insn): Fix type and - length attributes to match May 3rd changes made here. - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Fix and make - call-used %l7 when generating pic code. +1999-06-14 Robert Lipe (robertlipe@usa.net) -Sat Aug 29 14:59:32 1998 Mumit Khan <khan@xraylith.wisc.edu> + * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition. - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit - .linkonce directive after the first time. +1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de> -Sat Aug 29 14:48:12 1998 Jeffrey A Law (law@cygnus.com) + * gcc.texi: Mention gcc 2.95 instead of egcs 1.00. - * m68k.md (beq0_di): Generate correct (and more efficient) code when - the clobbered operand overlaps with an input. - (bne0_di): Similarly. +Sun Jun 13 01:08:02 1999 Mark Mitchell <mark@codesourcery.com> -Sat Aug 29 12:38:54 1998 Jeffrey A Law (law@cygnus.com) + * invoke.texi (node Option Summary): Add -fpermissive flag. - * NEWS: Various updates. +Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com) -Tue Aug 25 19:35:24 1998 Jim Wilson <wilson@cygnus.com> + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands + that require PIC code sequences. - * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. - (rs6000-ibm-aix4.[12]*): Likewise. - * configure: Regnerate. +Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com) -Thu Aug 27 23:44:49 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument. + * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide + initializers is some circumstances. - * reload1.c (forget_old_reloads_1): Keep track of the largest mode - found while stripping SUBREGS and invalidate reloads for all the hard - regs specified by that largest mode. egcs-1.1 only hack. The - mainline tree will get a better fix. + * fixinc/inclhack.def (endif_label): Add additional selector for + more bogus stuff after #endif statements. + * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. -Tue Aug 25 19:43:11 1998 Jeffrey A Law (law@cygnus.com) +Thu Jun 10 20:45:27 1999 Mumit Khan <khan@xraylith.wisc.edu> - * From Alexandre: - * configure.in: Do not set thread_file to "irix" since no such - support exists yet. + * i386/cygwin.h (SET_ASM_OP): Define. - * reorg.c (fill_simple_delay_slots): Do not abort if we encounter - an insn on the unfilled_slots_list that has no delay slots. - (fill_eager_delay_slots): Similarly. +Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu> -Mon Aug 24 15:20:19 1998 David Edelsohn <edelsohn@mhpcc.edu> + * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. - * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 - when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode. - (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup. - * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4. - (print_operand, cases 'O' and 'T'): Fix typos in lossage strings. - * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT - operand. - (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change - 'o' to 'm' for GPR variant constraints. +Thu Jun 10 14:47:59 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. + * fixinc/inclhack.def(sun_auth_proto): We do not know how to + test for the presence of valid prototypes. Delete bypass expr. + (ioctl_fix_ctrl): Correct the selection expression. -Mon Aug 24 01:21:38 PDT 1998 Jeff Law (law@cygnus.com) + * fixinc/inclhack.def(no_double_slash): fixed quoting rules + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen - * version.c: Bump for snapshot. +Thu Jun 10 01:22:59 1999 Jeffrey A Law (law@cygnus.com) -Sun Aug 23 00:47:52 1998 Jeffrey A Law (law@cygnus.com) + * loop.c (strength_reduce): Disable biv->giv translations and + giv recombination. For the release branch only. - * regmove.c (optimize_reg_copy_3): Disable for egcs-1.1. +Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> -Thu Aug 20 13:56:53 1998 Michael Meissner <meissner@cygnus.com> + * rs6000.md (movsi_got_internal_mem): Delete. + * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM. + (GOT_TOC_REGNUM): Delete. + (PIC_OFFSET_TABLE_REGNUM): Define. + (FINALIZE_PIC): Disable. + * rs6000.c (rs6000_got_register): New code for fixed pic register. + (rs6000_replace_regno): Delete. + (rs6000_finalize_pic): Likewise. + (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM. - * config/i386/winnt.c: Include system.h, not stdio.h to get - sys/param.h pulled in before rtl.h in case the system defines MIN - and MAX. +Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@mhpcc.edu> + * loop.c (loop_insn_first_p): Don't compare LUIDs when P + is a note; use <= for the compare; advance P while it is + a NOTE. - * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit. - (output_toc): Use single TOC slot or llong minimal-toc for DFmode - and DImode 64-bit. Use llong for minimal-toc SFmode and - SYMBOL_REF / LABEL_REF 64-bit. - (output_function_profiler): Use llong for profiler label and ld to - load 64-bit label address. +Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com) -Tue Aug 18 23:48:30 1998 Richard Henderson <rth@cygnus.com> + * fixinc/inclhack.def (no_double_slash): Fix quoting for test. + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. - * c-common.c (decl_attributes): Issue an error if the argument - to alias is not a string. + * varasm.c (remove_from_pending_weak_list): Verify t->name + is non-NULL before passing it to strcmp. -Tue Aug 18 13:05:59 BST 1998 Richard Earnshaw (rearnsha@arm.com) +Wed Jun 9 23:01:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * arm.c (arm_override_options): Remove lie about ignoring PIC flag. + * invoke.texi: Add C4x invocation docs. -Tue Aug 18 10:32:11 1998 Jeffrey A Law (law@cygnus.com) +Wed Jun 9 22:42:49 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last - pending memory flush list. + * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS): + Define new macros. + * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use + TARGET_EXPOSE_LDP. + (c4x_legitimize_reload_address): New function. + * config/c4x/c4x.md: Update docs. - * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p - on notes. +Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED - and REG_LIVE_LENGTH as successful substitutions are made. + * fixinc/inclhack.def(sun_auth_proto): bypass the patch if + the typed arguments are not part of a comment + (ioctl_fix_ctrl): Added a purpose comment + * fixinc/fixincl.x: regenerate + * fixinc/inclhack.sh: regenerate -Mon Aug 17 21:07:19 1998 Jeffrey A Law (law@cygnus.com) +Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com) - * From Graham - * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype - to itype. - * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. + * fixincludes: Avoid removing '.'. + * fixinc/fixinc.svr4: Likewise. + * fixinc/fixinc.winnt: Likewise. + * fixinc/inclhack.tpl: Likewise. + * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt. - * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that - a BASE_REGS register is needed as an intermediate when copying - a symbolic value into any register class other than BASE_REGS. +Wed Jun 9 03:55:34 1999 Jim Wilson <wilson@cygnus.com> -Mon Aug 17 11:25:52 1998 Richard Earnshaw <rearnsha@arm.com> + * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000. + * configure: Regenerate. - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling - for architecture v4. + * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. + Add use of x-aix41-gld. -Sun Aug 16 00:57:48 PDT 1998 Jeff Law (law@cygnus.com) +1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * version.c: Bump for snapshot. + * fixinc/inclhack.def (sun_catmacro): Escape parens in the select + pattern. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. -Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com> +Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu> - * reload.c (find_equiv_reg): Reject equivalences separated - by a volatile instruction. + * c-pragma.c (handle_pragma_token): Handle `#pragma pack()' + correctly. -Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> +Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) - * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. + * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute + values. -Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) +Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated - return type. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. + * fixinc/inclhack.def (bad_lval): Remove bogus selector. + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. -Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) + * fixinc/inclhack.def (avoid_bool): Also catch + "typedef [unsigned] int bool". + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - From Joern: - * expr.c (store_expr): Don't optimize away load-store pair - when either source or destination have a side effect. + * m68k/x-hp3bsd44: Delete obsolete and incorrect file. + * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44. + * configure: Rebuilt. - * loop.c (add_label_notes): Do not ignore references to labels - before dispatch tables. Mirrors Apr 8 change to mark_jump_label. - * gcse.c (add_label_notes): Similarly. +Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org> - * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. + * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>, + such that we can override its definitions if necessary. + (CPP_SPEC): New define. Support processor specific predefines via + %(cpp_cpu). + (CC1_SPEC): New define. Support processor specific compiler + options via %(cc1_cpu). + (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for + -static. - * m68k.md (adddi_dilshr32): One of the operands must be a register. - (adddi_dishl32): Similarly. +1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Fri Aug 14 01:45:06 1998 Mumit Khan <khan@xraylith.wisc.edu> + * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace + between sed's -e flag, and the open-quote following it. + * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - * i386/cygwin32.h (DEFAULT_PCC_STRUCT_RETURN): Define. +Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net> + Jeffrey A Law (law@cygnus.com) -Fri Aug 14 01:40:21 1998 Geoffrey Keating <geoffk@ozemail.com.au> + * varasm.c (assemble_start_function): Remove the function + from the pending weak decls list when we define a function. + (assemble_variable): Similarly for variables. + (weak_finish): Ignore items on the list with a NULL name. + (remove_from_ending_weak_list); New function to "remove" an item + from the pending weak declarations list. - * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. +Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com> -Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) + * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns. - * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating - point. - (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. +Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz> -Fri Aug 14 01:23:23 1998 Jeffrey A Law (law@cygnus.com) + * sparc.md (abstf2): This should be an expand. + (split after abstf2_notv9): Fix mode. + (abstf2_hq_v9): New pattern. + (abstf2_v9): Only use when no hard quad. + (absdf2_v9): Fix if target is not the same as source. + (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2): + Add correct output constraints. - * README.RS6000: Bring over dje's changes from the mainline - source tree. +Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com> -Fri Aug 14 01:19:08 1998 Robert Lipe <robertl@dgii.com> + From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100: + * invoke.texi: Clarify text vis-a-vis Intel CPUs. - * install.texi: Various SCO OpenServer tweaks. +Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> -Thu Aug 13 19:55:05 1998 Jim Wilson <wilson@cygnus.com> + * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads. + (LIB_SPEC): Likewise. + Link with -lprof1_r for -g/-pg. - * reload1.c (eliminate_regs_in_insn): Handle another case when - eliminating the frame pointer to the hard frame pointer. Add - missing ep->to_rtx check to one existing case. +1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Tue Aug 11 17:45:39 1998 Dave Love <d.love@dl.ac.uk> + * loop.c (check_dbra_loop): Fix change of Jan 19. - * README.g77: Update from Craig. +Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org> -Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) + * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define. + (STARTFILE_SPEC): Define, override the svr4.h version. + (ENDFILE_SPEC): Likewise. - * rs6000.c (rs6000_allocate_stack_space) Fix typo which - caused bad assembly code to be generated. +Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com) -Sat Aug 8 18:52:51 1998 Jeffrey A Law (law@cygnus.com) + * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h + * fixinc/fixincl.x: Regenerated. + * fixinc/inclhack.sh: Regenerated. - * netbsd.h: Fix typo. +Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com> -Mon Aug 3 23:43:55 PDT 1998 Jeff Law (law@cygnus.com) + * fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression + * fixinc/fixincl.x: regenerate + * fixinc/inclhack.sh: regenerate - * version.c: Bump for snapshot. +Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net> -Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) + * i386/udk.h (LINK_SPEC): Correct linker search path for + system libraries. - * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. - * m68k/netbsd.h: Likewise. - * ns32k/netbsd.h: Likewise. - * sparc/netbsd.h: Likewise. +Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com> -Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) + * dwarf2out.c (add_incomplete_type): New fn. + (gen_struct_or_union_type_die): Call it. + (retry_incomplete_types): New fn. + (dwarf2out_finish): Call it. - * configure.in (mingw configuration): Fix typo. - * configure: Rebuilt. +Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com) -Fri Jul 31 20:22:02 1998 Michael Meissner <meissner@cygnus.com> + * gcse.c (insert_insn_end_bb): Correct placement of insns when the + current block starts with a CODE_LABEL and ends with a CALL and + we can not find all the argument setup instructions for the CALL. - * rs6000.c (rs6000_override_options): If big endian and -Os, use - load/store multiple instructions unless user overrides. +Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com> -Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) + * alpha.c (override_options): Thinko in last patch. - * ns32k/netbsd.h: Fix typo. + * alpha/osf.h (CPP_SUBTARGET_SPEC): Define. + (LIB_SPEC): Recognize -pthread. -Thu Jul 30 19:50:15 1998 David Edelsohn <edelsohn@mhpcc.edu> +Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. - (AR_FOR_TARGET): Define. + * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark + fixes that need "file=xxx\n" prepended before invocation + (start_fixer - new): starting the fixer process is complex enough + to warrent its own routine. It prepends the "file=xxx\n" stuff. + (process): uses the new routine; omit usage of putenv() + * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT + * fixinc/fixincl.x: regenerate -Thu Jul 30 19:11:30 1998 Richard Henderson <rth@cygnus.com> +Wed Jun 2 06:36:14 1999 Richard Earnshaw (rearnsha@arm.com) - * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. - (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. + * arm.md (zero_extendqidi2): Don't allow operand1 to be a memory + reference. Temporary work-around for problems with constant + pool handling. -Thu Jul 30 12:51:09 1998 Mark Mitchell <mark@markmitchell.com> +Wed Jun 2 02:40:43 1999 Jeffrey A Law (law@cygnus.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): List dependencies. - * dwarf2out.c: Include dyn-string.h. - (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. + * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc) + and version #s (1.1 -> 2.95) as needed. + * README.g77: Kill way out of date file in the toplevel directory. -Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) +Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org> - * i386.md (movqi): When optimizing a load of (const_int 1) into a - NON_QI_REG_P, pretend the register is SImode. + * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h, + i386/freebsd-elf.h no longer requires it. Instead include svr4.h. + * configure: Rebuilt. + * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define. + (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise. + (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise. + (SWITCH_TAKES_ARG): Likewise. + * i386/freebsd.h: Remove FREEBSD_NATIVE support. + * config/t-freebsd: Moved from config/i386/ so it can used for all + FreeBSD targets. + +Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be> -Wed Jul 29 23:49:23 1998 Todd Vierling <tv@netbsd.org> + * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o. - * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist). - Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any - manufacturer id for ns32k. - * configure: Regenerated. - * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too. - * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc. - * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0. - * config/m68k/netbsd.h: Same. - * config/ns32k/netbsd.h: Same. - * config/sparc/netbsd.h: Same. +Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net> -Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) + * configure.in (i[34567]86-*-udk*): Install headers with cpio. + * configure: Rebuilt. - * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO - or UNROLL_COMPLETELY loop that starts with a jump to its - exit code. +Wed Jun 2 00:49:00 EDT 1999 John Wehle (john@feith.com) -Wed Jul 29 22:18:14 1998 David Edelsohn <edelsohn@mhpcc.edu> + * flow.c (mark_regs_live_at_end, insn_dead_p, + mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM + and HARD_FRAME_POINTER_REGNUM special treatment if reload + hasn't run or the frame pointer is needed. + * haifa-sched.c (attach_deaths): Likewise. + * sched.c (attach_deaths): Likewise. - * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS. - * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT. - (print_operand, case 'B'): Don't fall through. - (print_operand, case 'S'): Correct mask begin/end computation. - Use HOST_BITS_PER_WIDE_INT. - * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG. - (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT. - * rs6000/aix41.h (CPP_PREDEFINES): Same. - * rs6000/aix43.h (CPP_PREDEFINES): Same. +Thu May 27 22:06:52 1999 Mark Mitchell <mark@codesourcery.com> -Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> + * cccp.c (handle_directive): Handle backslash-newlines in quoted + strings correctly. - * configure.in: Fix --without/--disable cases for local-prefix, - gxx-include-dir and checking. +Mon May 31 22:42:02 1999 Jeffrey A Law (law@cygnus.com) -Tue Jul 28 22:10:43 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + * Remove this patch (from the branch only) + Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com> + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. - * configure.in (enable_haifa): Set by default for sparc64 too. - configure: Rebuilt. +Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com> -Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> + * alpha.md (reload_*_help): New patterns and splitters. + (reload_*): Use them. + (mov[qh]i): Likewise. - * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro. - * 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. +Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu> - From Antonio M. O. Neto <anmendes@cruzeironet.com.br>: - * i386.c (i386_valid_type_attribute_p): Also accept - attributes for METHOD_TYPEs. + * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. -Tue Jul 28 23:17:39 1998 Peter Gerwinski <peter@gerwinski.de> +Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org> - * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. + * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already + defined. + * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define. + (MAX_OFILE_ALIGNMENT): Likewise. -Tue Jul 28 22:31:12 1998 Craig Burley <burley@gnu.org> +Mon May 31 00:45:14 1999 Jeffrey A Law (law@cygnus.com) - * gcc.c: Fix commentary describing %g, %u, %U, and %O. + * jump.c (jump_optimize_1): Only set CAN_REACH_END if + calculate_can_reach_end returns nonzero. - * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent - them from generating a new base name for each occurence of - a specific suffix. + * Makefile.in (CFLAGS): Remove warning flags. + (WARN_CFLAGS): Disable. -1998-07-28 Vladimir N. Makarov <vmakarov@cygnus.com> + * configure.in (native gas tests): Search for an assembler in the + same manner that the installed compiler will. + * configure: Rebuilt. + * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too. - * cse.c (cse_insn): Enable subsitution inside libcall only for REG, - SUBREG, MEM. - * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. + * alias.c (find_base_term): Improve handling of addresses + constructed from binary operations. -Mon Jul 27 00:54:41 1998 Jason Merrill <jason@yorick.cygnus.com> +Sun May 30 14:43:37 1999 Robert Lipe <robertlipe@usa.net> - * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are - identical. + * fixincl.c: Replace local include scheme with #includes of + gansidecl.h and system.h. + * procopen.c: Likewise. + * server.c: Likewise. -Mon Jul 27 22:20:02 1998 Jeffrey A Law (law@cygnus.com) +Sun May 30 14:18:40 1999 Jeffrey A Law (law@cygnus.com) - * pa.c (move_operand): Accept CONSTANT_P_RTX. + * function.h (cleanup_label, frame_offset): Declare. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. + * stmt.c (cleanup_label, frame_offset): Delete extern declarations. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. -Mon Jul 27 00:46:56 PDT 1998 Jeff Law (law@cygnus.com) +Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com) - * version.c: Bump for snapshot. + * i386/t-dgux (EXTRA_PARTS): Add crti.o. + (crti.o): Add build rule and dependencies. -Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) +Fri May 28 03:07:10 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating - the frame pointer and compiling PIC code and reload has not completed. + * rs6000/sysv4.h (CC1_SPEC): Add support for -profile + (LIB_LINUX_SPEC): Likewise. + (LIB_LINUX_SPEC): Add support for -pthread + (CPP_OS_LINUX_SPEC): Likewise. + (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are + specified - * i386.c (output_to_reg): Add code to emulate non-popping DImode - case. + * rs6000.c (output_mi_thunk): Enable full support again. -Sun Jul 26 01:02:54 1998 Jeffrey A Law (law@cygnus.com) +Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org) - * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. + * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for + conditional move. + (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support. + (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison + for IEEE math and CC_FCOMI. + (put_jump_code): No IEEE if CC_FCOMI is set. -Sat Jul 25 23:29:23 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> +1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * Makefile.in (install-info): Only try to update the info - directory file if it exists in the first place. + * fold-const.c (fold_truthop): Make the field reference unsigned + when converting a single bit compare. -Fri Jul 24 18:58:37 1998 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> +Thu May 27 03:07:13 1999 Philip Blundell <pb@nexus.co.uk> - * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. + Based on patch by Scott Bambrough and Pat Beirne: + * config/arm/arm.c (making_const_table): New variable. + * config/arm/arm.h (making_const_table): Declare. + (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if + appropriate. + * config/arm/arm.md (consttable_4, consttable_8, consttable_end): + Keep track of when we are building the constant table. -Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com> +Thu May 27 02:52:55 1999 Jeffrey A Law (law@cygnus.com) - * dbxout.c (dbxout_range_type): Only call dbxout_type_index for - already defined type. + * varasm.c (STRIP_NAME_ENCODING): Remove default definition. + * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm + version did. -Wed Jul 22 14:08:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> +Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * profile.c (branch_prob): Call allocate_reg_info after outputting - profile rtl in instrument_arcs. + * loop.c (strength_reduce): Don't do biv->giv conversion on constants. -Tue Jul 21 22:40:09 PDT 1998 Jeff Law (law@cygnus.com) +Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com) - * version.c: Bump for snapshot. + * reload.c (push_reload): Do not call remove_address_replacements + when presented with identical optional reloads. -Tue Jul 21 23:28:35 1998 Klaus Kaempf <kkaempf@rmi.de> +Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com> - * cccp.c (do_include): Fix vax c style include handling. + * alpha.h (MASK_FIX, TARGET_FIX): New. + (MASK_*): Reorganize constants. + (CPP_AM_FIX_SPEC): New. + (TARGET_SWITCHES): Add FIX. + (EXTRA_SPECS): Likewise. + (CPP_CPU_EV6_SPEC): Use FIX, not CIX. + (SECONDARY_MEMORY_NEEDED): Likewise. + (REGISTER_MOVE_COST): Likewise. + * alpha.c (override_options): Add FIX support. Always use + ALPHA_TP_PROG for ev6. + * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX. + * alpha/elf.h (ASM_FILE_START): Look at FIX too. + * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX. -Tue Jul 21 15:49:31 1998 David Edelsohn <edelsohn@mhpcc.edu> +Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com> - * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX. - * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX. - * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX. - (u_short_cint_operand): Same. - (reg_or_cint_operand): Same. - (logical_operand): Same. - (input_operand): Same. - (reg_or_short_operand): Use u_short_cint_operand. + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. -Tue Jul 21 03:59:08 1998 David S. Miller <davem@pierdol.cobaltmicro.com> +Wed May 26 03:54:33 1999 Melissa O'Neill <oneill@cs.sfu.ca> - * jump.c (jump_optimize): When simplifying noop moves and - PUSH_ROUNDING, fix thinko so we use same criterion for identifying - the PUSHes to rewrite in second loop as we did in the first. + * fixinc/fixincl.c: (WIFSIGNALED): Define if not already defined. + (WTERMSIG, WIFEXITED, WEXITSTATUS, WIFSTOPPED, WSTOPSIG): Likewise. + (S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP): Likewise. + (S_IROTH, S_IWOTH, S_IXOTH, S_IRWXU, S_IRWXG, S_IRWXO): Likewise. -Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) +Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk> - * gcc.c (do_spec): Call "error" not "warning". + * arm.h (NEED_PLT_GOT): Fix mistake in last change. + (GOT_PCREL): New macro. Define to 1 if not already defined. + * arm/elf.h (GOT_PCREL): Define to 0. + * arm.c (arm_finalize_pic): Take into account the setting of + GOT_PCREL. - * configure.in: Fix minor problems with gas feature detection code. - * configure: Rebuilt. +Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com) - * gcc.c (do_spec): Issue a warning for '%[]' usage. + * output.h (STRIP_NAME_ENCODING): Provide default definition. + * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING. - * Undo this change. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. + * flow.c (mark_set_1): Do not record BLKmode stores as dead + store elimination candidates. -Mon Jul 20 22:34:17 1998 Richard Henderson <rth@cygnus.com> +Mon May 24 14:34:31 1999 Jeffrey A Law (law@cygnus.com) - * alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget. - (CPP_SUBTARGET_SPEC): Default to empty string. - (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New. - (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New. - * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker). - * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New. - (LIB_SPEC): Tidy. - * alpha/linux.h (CPP_PREDEFINES): Tidy. - * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New. - * alpha/netbsd.h (CPP_PREDEFINES): Tidy. - * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC. - * alpha/win-nt.h (CPP_PREDEFINES): Likewise. - * alpha/vsf.h (CPP_PREDEFINES): Likewise. - (CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC. - * alpha/vxworks.h: Likewise. + * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the + last CODE_LABEL in a loop if we have previously passed a jump + to the top of the loop. -Mon Jul 20 22:51:57 1998 Ken Raeburn <raeburn@cygnus.com> +Mon May 24 01:02:58 1999 Mark Mitchell <mark@codesourcery.com> - * mips.md (reload_outsi): Added missing REGNO call. - (smulsi3_highpart, umulsi3_highpart): Provide prototype for - function pointer. - (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use - another match_operator and compare the codes. + * stmt.c (expand_end_bindings): Ignore any elements of VARS that + are not VAR_DECLs. - * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. +Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) - * MIPS multiply pattern fixes: - * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Add union classes for HI, LO, or HILO plus general registers. - (GENERATE_MADD): Deleted. - * mips.md (mulsi3_mult3): Don't disparage output-LO alternative. - Add TARGET_MAD to condition. - (mulsi3): Test HAVE_mulsi3_mult3, not specific flags. - (mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use - "*d" for accumulator, to give preference to LO initially but not - during reload. + * loop.c (strength_reduce): Grow reg_single_usage as needed. -Mon Jul 20 01:13:19 1998 Jim Wilson <wilson@cygnus.com> +Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org> - * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. + * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. + Also remove a useless comment. -Sat Jul 18 15:20:19 1998 Mark Mitchell <mark@markmitchell.com> +Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com> - * loop.c (maybe_eliminate_biv_1): Avoid signed/unsigned comparison - confusion when setting cc0. + * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. -Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) +Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com> - * tree.c (valid_machine_attribute): Only create a new type variant if - there is a decl to use it. + * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE. -Fri Jul 17 02:01:00 1998 Jeffrey A Law (law@cygnus.com) +Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com> - * Makefile.in (WARN_CFLAGS): Disable -W -Wall for the release - branch. + * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. + +Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz> -Thu Jul 16 14:48:04 1998 Nick Clifton <nickc@cygnus.com> + * function.c (assign_stack_local): Align stack slot propertly. + (assign_outer_stack_local): Likewise. + +Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com> - * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have - a suffix. + * expr.h (lang_expand_constant): Declare. + * toplev.c (lang_expand_constant): Define it. + * varasm.c (output_constant): Use it. -Thu Jul 16 17:07:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * cplus-dem.c (demangle_nested_args): Make function definition - static to match the prototype. + * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide): + Change function definitions to K&R style. -Thu Jul 16 01:17:44 1998 Richard Henderson <rth@cygnus.com> +Thu May 20 08:15:00 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * loop.c (emit_iv_add_mult): Scan the entire insn list generated - for the sequence, recording base values. + * fixinc/fixincl.c(main): we must not ignore SIGCLD now. -Wed Jul 15 00:52:54 PDT 1998 Jeff Law (law@cygnus.com) +Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org> - * version.c: Bump for snapshot. + * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options + * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments + (several places): omit static initialization + (process): use single fd, since only the read fd is used + * fixinc/gnu-regex.c: define 'const' away, if not supported + * fixinc/procopen.c(several places): omit static initialization + * fixinc/server.c: define 'volitile' away, if not supported -Wed Jul 15 00:52:20 PDT 1998 Jeff Law (law@cygnus.com) +1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * version.c: Bump for snapshot. + * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use + asm_fprintf and %L to generate the label name. + * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels. -Tue Jul 14 14:15:30 1998 Nick Clifton <nickc@cygnus.com> +Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com) - * gcc.c: Remove ANSI-C ism from --help code. + * jump.c (can_reverse_comparison_p): Do not abort if the comparison + insn for a conditional jump can not be found. - * toplev.c: Support --help with USE_CPPLIB. +Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com) -Tue Jul 14 02:20:38 1998 Jeffrey A Law (law@cygnus.com) + * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations + on variables in specific sections other than .sbss and .sdata. - * configure.in: Rework gas feature code to work with symlink based - source trees. +Tue May 18 11:20:48 1999 Mark Mitchell <mark@codesourcery.com> - * version.c: Bump to avoid problems with old spec files during - bootstrap. + * stmt.c (expand_return): Call start_cleanup_deferral and + end_cleanup_deferral around conditional code. -Mon Jul 13 23:11:44 1998 David S. Miller <davem@pierdol.cobaltmicro.com> +Wed May 19 03:10:08 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * config/sparc/sparc.c (output_scc_insn): Enclose || conditions in - parens while walking over notes. - * config/sparc/sparc.md (reg movdi split): Clean up matching - conditions. - (all DI arithop splits on 32-bit): Handle immediate arguments - correctly when they are CONST_INTs. + * fixinc/fixincl.tpl: Avoid depending on ANSI C features for + filename lists. Utilizes new AutoGen function "krstr". + * fixinc/fixincl.x: Rebuilt. -Mon Jul 13 23:57:21 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> +Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz) - * m68k/m68k.h (TARGET_SWITCHES): Clear MASK_68040_ONLY for - -m68020-40, -m68020-60 and -m5200. + * i386.c (output_float_compare): Avoid GNU-C extensions. -Mon Jul 13 23:52:05 1998 Weiwen Liu <weiwen.liu@yale.edu> +Wed May 19 00:50:24 1999 Jeffrey A Law (law@cygnus.com) - * gcc.c (do_spec_1): Fix %O handling for secure temporary file - creation. + * version.c: Bump version to gcc-2.95 prerelease. -Mon Jul 13 23:42:36 1998 Ralf Corsepius <corsepiu@faw.uni-ulm.de> +Tue May 18 03:53:37 1999 Craig Burley <craig@jcb-sc.com> - * sh/elf.h (MAX_OFILE_ALIGNMENT): Undefine before including svr4.h. + Improve open-coding of complex divide: + * flags.h: Declare new front-end-malleable flag. + * toplev.c: Define new flag. + * optabs.c (expand_cmplxdiv_straight): New function to do original + open-coding. + (expand_cmplxdiv_wide): New function to do new open-coding, + from Toon Moene, with changes (call to emit_barrier, dropping + of spurious `ok = 1;', plus the obvious `break;' -> `return 0;'). + (expand_binop): A bit of spacing fixing, while at it. + Use new functions instead of inlining the open-coding code. -Mon Jul 13 23:36:08 1998 Jim Wilson <wilson@cygnus.com> +Tue May 18 00:51:46 1999 Krister Walfridsson <cato@df.lth.se> - * i386/i386.h (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): New specs. - (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Use them. - (EXTRA_SPECS): Support them. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. - * i386/aix386ng.h, cygwin32.h, freebsd-elf.h, gas.h, isc.h, - linux-aout.h, linux-oldld.h, linux.h, osfelf.h, osfrose.h, sco.h, - sco4.h, sco4dbx.h, sco5.h, sol2.h, sysv3.h (CPP_SPEC): Delete - %[cpp_cpu]. + * configure.in (arm*-*-netbsd*): Use collect2. + (i[34567]86-*-netbsd*): Likewise. + (m68k*-*-netbsd*): Likewise. + (ns32k-*-netbsd*): Likewise. + (sparc-*-netbsd*): Likewise. + (vax-*-netbsd*): Likewise. + * configure: Rebuilt. -Mon Jul 13 23:31:04 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Tue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - * m68k.c (output_scc_di): Use cmpw #0 only for address registers. + * cppspec.c: Insert -no-gcc into command line unless -gcc was + given by user. + * gcc.c (default_compilers): Define __GNUC__ and + __GNUC_MINOR__ only if -no-gcc was not given. + * objc/lang-specs.h: Likewise. + * cpp.texi: Document -x and -std options; explain that -lang + is no longer supported. Minor related corrections. -Mon Jul 13 23:26:43 1998 Jeffrey A Law (law@cygnus.com) +Mon May 17 23:56:39 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * tree.h (tree_common): Note front-end dependencies on layout of - this structure. + * Makefile.in (stmp-fixproto): Pass location of mkinstalldirs to + fixproto. + * fixproto: Avoid unportable constructs such as `basename' and + `mkdir -p'. Use mkinstalldirs from the environment if `mkdir -p' + fails. -Mon Jul 13 23:18:39 1998 Craig Burley <burley@gnu.org> + * fixinc/fixincl.c: Remove #error, it is not portable. - * stmt.c (expand_expr_stmt): If not assigning fresh - value to last_expr_value, zero it, so old garbage - doesn't get dereferenced. +Mon May 17 23:50:41 1999 Marc Espie <espie@cvs.openbsd.org> -Mon Jul 13 23:06:55 1998 Henning.Petersen@t-online.de (Henning Petersen) + * collect2.c (main): Fix typo in COLLECT2_HOST_INITIALIZATION. - * gcse.c (hash_scan_insn): Add missing argument declaration. +Mon May 17 19:45:41 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> -Mon Jul 13 18:59:13 1998 Jim Wilson <wilson@cygnus.com> + * fixinc/fixincl.c (process): Wait for children from chain_open() + to avoid creating zombies. - * configure.in (mips-sgi-irix5cross64, mips-sgi-irix5*): Remove - HAVE_INTTYPES_H from xm_defines. Define xm_file to mips/xm-iris5.h. - * mips/xm-iris5.h (USG): Delete. + * fixinc/inclhack.tpl: Removed no-op pipe. -Mon Jul 13 17:18:47 1998 Nick Clifton <nickc@cygnus.com> + * fixinc/inclhack.sh fixinc/fixincl.sh: regenerate - * cccp.c (main): Add support for parsing --help. - (display_help): New function: display command line switches. +Mon May 17 07:23:34 1999 Mark Mitchell <mark@codesourcery.com> - * cpplib.c (cpp_handle_option): Add support for parsing --help. - (display_help): New function: display command line switches. + * tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match + reality. + * expr.c (init_noncopied_parts): Don't generate initializers for + parts that don't need them. - * 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. +Mon May 17 02:56:35 PDT 1999 Jeff Law (law@cygnus.com) - * tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document - 'description' field added to structure. + * version.c: Bump for snapshot. - * toplev.c: Add support for parsing --help. - Add documentation strings to command line option tables. - (display_help): New function: display comman line switches. +Sat Oct 31 05:08:34 CET 1998 Jan Hubicka (hubicka@freesoft.cz) -Mon Jul 13 16:15:10 1998 John Carr <jfc@mit.edu> + * reg-stack.c: Do not emit pop insns after cc0 setter. + (emit_pop_insn): Do not emit insn in case WHEN is NULL. + (compare_for_stack_reg): Update REG_DEAD note and + do not emit push insn. - * sparc.c, sparc.h, sparc.md: New trampoline code. - Allow integer operand 1 to V8+ DImode shift instructions. - Fix bugs in V8+ wide multiply patterns. - In 32 bit mode, split DImode register moves and logical instructions. - Write V9 branch prediction flag. - Use V9 conditional move more often for scc. + * i386.c: (output_float_compare): Handle new REG_DEAD notes. -Mon Jul 13 15:10:09 1998 Philippe De Muyter <phdm@macqel.be> +Mon May 17 01:57:37 1999 David Daney <daney@ibw.com.ni> - * invoke.texi(-fno-builtin): Explain that the names of built-in - functions begin with `__builtin_', not `__'. + * i386/sol2.h (LINK_SPEC): Do not pass "-z text" to the linker + if -mimpure-text. -Mon Jul 13 19:01:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +1999-05-17 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * reload1.c (reload_reg_free_before_p): Abort for RELOAD_FOR_OUTPUT. + * m68k.c (standard_68881_constant_p): Don't accept -0.0 as valid + 68881 constant. -Mon Jul 13 10:50:17 1998 Mark Mitchell <mark@markmitchell.com> + * fold-const.c (fold_truthop): When converting a one-bit + comparison don't sign extend the constant. - * cplus-dem.c (SCOPE_STRING): Remove DMGL_JAVA stuff. - (cplus_demangle_opname): Initialize work. - (demangle_template): Remove is_java_array. - (do_type): Remove DMGL_JAVA stuff. - (long_options): Remove "java". - (main): Remove 'j' option. + * cse.c (cse_insn): Copy SRC_CONST before putting it in the + REG_EQUAL note. -Mon Jul 13 10:19:00 1998 Jeffrey A Law (law@cygnus.com) +1999-05-17 Mike Stump <mrs@wrs.com> - * mn10300.h (REG_CLASS_FROM_LETTER): Map 'y' to SP_REGS. - Handle 'x' as NO_REGS for this cpu. - (REGNO_OK_FOR_BIT_BASE_P): Define. - (REG_OK_FOR_BIT_BASE_P): Define. - (GO_IF_LEGITIMATE_ADDRESS): Use them. - (REG_OK_FOR_INDEX_P): Tweak. - * mn13000.c (REG_SAVE_BYTES): Define. - (expand_epilogue, initial_offset): Use it. - (secondary_reload_class): Slightly reformat. - (output_tst): Tweak comments. - * mn10300.md: Change 'x' to 'y' for SP_REGS. Then add 'x' to many - patterns. - (addsi3): Turn into a define_expand/define_insn pair. Rework code for - three operand addition case to be more efficient. - (subsi3): Turn into a define_expand/define_insn pair. + * rs6000/vxppc.h (CPP_SPEC): Fix support for vararg functions. - * expr.c (expand_expr): Only set MEM_IN_STRUCT_P if the memory address - is not varying for REFERENCE_TYPE or when we think we might have found - an optimized access to the first element in an array. +Sat May 15 14:22:40 1999 Jeffrey A Law (law@cygnus.com) -Mon Jul 13 02:24:08 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + * fixinc/hackshell.tpl: Fix mis-applied patch. + * fixinc/inclhack.sh: Regenerated. - * regclass.c (reg_scan_mark_refs): New arg min_regno. Only update - regscan information for REGs with numbers greater than or equal to - this. All callers changed. - (reg_scan_update): New function to efficiently update regscan - information on the fly. - * rtl.h: Add prototype. - * jump.c (jump_optimize): Call it when we make a transformation - which generates new pseudo-REGs. +Thu May 13 21:05:55 1999 Mark Kettenis <kettenis@gnu.org> -Sun Jul 12 13:08:14 1998 Jeffrey A Law (law@cygnus.com) + * fixinc/mkfixinc.sh: Add the Hurd (*-*-gnu*) to the list of + targets that do not need any fixes. - * collect2.c (main): Use "-x c" instead of "-lang-c" for force the - compiler into C mode. +Sat May 15 14:12:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Sun Jul 12 01:27:05 1998 Jason Merrill <jason@yorick.cygnus.com> + * config/c4x/c4x.md (set_lo_sum+2): New splitter to load large + const_ints. - * cplus-dem.c (demangle_nested_args): Return a value. - - * tree.h (TYPE_P): New macro. - -Sat Jul 11 16:19:48 1998 Mark Mitchell <mark@markmitchell.com> - - * cplus-dem.c (string): Move definition before work_stuff. - (work_stuff): Add volatile_type, forgetting_types, - previous_argument, and nrepeats fields. - (SCOPE_STRING): New macro. - (demangle_template): Add `remember' parameter. Add comment. - Register the `B' code type here, if remembering. Tidy. Fix crash - on NULL tmpl_argvec. Be consistent with use of tname/trawname. - (demangle_nested_args): New function. - (internal_cplus_demangle): Handle volatile-qualified member - functions. - (mop_up): Delete the previous_argument string if present. - (demangle_signature): Tidy. Handle volatile-qualified member - functions. Handle back-references using the `B' code. Use extra - parameter to demangle_template and SCOPE_STRING where appropriate. - (demangle_template_value_parm): Fix thinko; 'B' is not an integral - code. - (demangle_class): Use SCOPE_STRING. - (gnu_special): Pass additional argument to demangle_template. - Use SCOPE_STRING. - (demangle_qualified): Save qualified types for later - back-references. Handle constructors and destructors for template - types correctly. - (do_type): Tidy. Use SCOPE_STRING. Pass extra argument to - demangle_template. Use demangled_nested_args. Don't remember - qualified types here; that's now done in demangle_qualified. - Similarly for templates. - (do_arg): Improve commment. Handle 'n' repeat code. - (remember_type): Check forgetting_types. - (demangle_args): Deal with 'n' repeat codes. Tidy. - -Sat Jul 11 02:59:08 1998 Richard Earnshaw <rearnsha@arm.com> +Sat May 15 14:09:08 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile - and structure attribute flags to MEMs generated. - (splits for sign-extended HI & QI mode from memory): Also propagate - the volatile flag. + * config/c4x/c4x.md (decrement_and_branch_on_count): Disabled. + (doloop_begin, doloop_end): New patterns. + (*rptb_init): Added extra operands. - * configure.in (thumb-*-coff*): Don't cause fixincludes to be run. +Fri May 14 21:31:36 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Fri Jul 10 19:06:59 1998 Michael Meissner <meissner@cygnus.com> + * config/c4x/c4x.md (*umulqi3_highpart_clobber): Fix operand 2 + constraints order. - * varray.h: Include system.h if it hasn't already been included - before to get size_t declared. +1999-05-14 Ulrich Drepper <drepper@cygnus.com> -Fri Jul 10 12:53:58 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in + asm input operands. - * jump.c (jump_optimize): If after_regscan and our transformations - generate new REGs, rerun reg_scan. +Thu May 13 15:34:18 1999 David Edelsohn <edelsohn@gnu.org> -Fri Jul 10 11:50:43 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * rs6000.c (mask_constant): Delete. + (mask_operand): Move mask_constant() body to here. + * rs6000.h (mask_constant): Delete declaration. + * rs6000.md (nabsdi2): Reverse subtraction in splitter. - * config/i960/i960.c (i960_address_cost): MEMA operands with - positive offsets < 4096 are free. +Thu May 13 02:25:01 1999 Jeffrey A Law (law@cygnus.com) -Fri Jul 10 12:34:37 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * cpp.texi: Fix some typos. - * config/m68k/m68k.c (const_uint32_operand): Recognize - CONSTANT_P_RTX. - (const_sint32_operand): Likewise. +Thu May 13 01:49:55 1999 Graham Stott <GrahamS@RCP.co.uk> -Thu Jul 9 22:58:59 1998 Jeffrey A Law (law@cygnus.com) + * loop.c (maybe_eliminate_biv): Check regno against + max_reg_before_loop. - * Makefile.in (alias.o): Depend on $(EXPR_H). + * i386.c (memory_address_info): Correct the scale + factor test. -Thu Jul 9 18:24:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu May 13 01:31:19 1999 Nick Burrett <nick.burrett@btinternet.com> - * reload1.c (choose_reload_regs): If using an equivalence from - find_equiv_reg and reg_reloaded_valid is not set for this register, - clear the associated spill_reg_store. + * arm.md (nop): Backout Apr 27 change. Ensure REGISTER_PREFIX is + applied to each register. + * aof.h (ASM_FILE_START): Define register `r0'. -Thu Jul 9 18:12:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +1999-05-12 20:22 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * reload1.c (emit_reload_insns): If an output reload copies only - to a secondary reload register, indicate that the secondary reload - does the actual store. + * configure.in: Make --enable-cpp and --with-cpp-install-dir + documented options. Enable the cpp driver by default. + * configure: Rebuilt. -Thu Jul 9 18:01:05 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Wed May 12 18:08:48 1999 David Edelsohn <edelsohn@gnu.org> + Richard Henderson <rth@cygnus.com> - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly in a PARALLEL. + * rs6000.c (print_operand) [w]: Calculate signed constant more clearly. + (rs6000_allocate_stack_space): Print as hexadecimal value. + * rs6000.h (CONST_OK_FOR_LETTER_P): 'L' checks for a signed, + 16-bit shifted constant. Fix typo for 'P'. + (EXTRA_CONSTARINT): 'T' checks for a 32-bit mask operand. + * rs6000.md (movsi, addsi3_internal1, movdi, adddi3_internal1): + Use 'L' for shifted constant. + (anddi3_internal3): Fix typo. + (32-bit mask patterns): Use 'T'. -Thu Jul 9 10:38:14 1998 Jeffrey A Law (law@cygnus.com) +Wed May 12 07:30:31 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * jump.c (duplicate_loop_exit_test): Fix thinko. + * fixinc/fixincl.c(quoted_file_exists): new procedure to ensure that + a file exists before trying to copy it into the destination + (extract_quoted_files): use that routine. -Thu Jul 9 01:30:37 1998 Joel Sherrill <joel@OARcorp.com> - Ralf Corsepius <corsepiu@faw.uni-ulm.de> +Wed May 12 07:27:31 1999 Craig Burley <craig@jcb-sc.com> - * config/i386/rtemself.h: Updated to keep in sync with - config/i386/linux.h. + Allow front end (like g77's) to override maintenance of errno: + * expr.c (expand_builtin): Bother with errno only if + flag_errno_math. + * flags.h: Declare flag_errno_math. + * toplev.c: Define flag_errno_math. - * configure.in: Added sh-rtemself. - * configure: Rebuilt. - * config/sh/rtems.h: Removed -D__ELF__ since it is now COFF. - * config/sh/rtemself.h: New file. +Tue May 11 23:55:49 1999 Jeffrey A Law (law@cygnus.com) - * config/rs6000/rtems.h: Defined STARTFILE_DEFAULT_SPEC. + * fixproto: Change "mkdir" calls to "mkdir -p" -Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com) + * fixinc/inclhack.def (io_def_quotes): Consistently allow multiple + whitespace characters between the "define" and the name of the macro. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - * configure.in: Check if the assembler supports ".balign" and - ".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately. - * acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag. - * i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for - ".balign" then use it. +Tue May 11 20:46:37 1999 Richard Henderson <rth@cygnus.com> - * print-rtl.c (print_rtx): Revert previous patch. + * alpha.c (alpha_expand_block_move): Handle TImode registers + used with ADDRESSOF. + (alpha_expand_block_clear): Handle ADDRESSOF specially. - * jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit - test if the exit code has an insn with ASM_OPERANDS. +1999-05-11 Ulrich Drepper <drepper@cygnus.com> - * i386/cygwin32.h (STDIO_PROTO): Fix typo. - * m32r.h (STDIO_PROTO): Fix typo. + * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Remove unneccessary + memory output operand which irritates gcc. - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by - LEGITIMIZE_RELOAD_ADDRESS. - * tm.texi (LEGITIMIZE_RELOAD_ADDRESS): Note that this macro must be - able to handle addresses created by previous invocations of the macro. +Tue May 11 11:45:16 1999 Dave Brolley <brolley@cygnus.com> - * flow.c (find_auto_inc): Remove most recent change. Real bug was - elsewhere. + * toplev.c (documented_lang_options): Add -MD, -MMD, -M and -MM for + cpplib-enabled compilers. - * cse.c (count_reg_usage): Count registers used in addresses of - CLOBBERs. +Tue May 11 11:34:56 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> -Wed Jul 8 15:08:29 1998 Jim Wilson <wilson@cygnus.com> + * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Add parentheses + around &&. - * Makefile.in (STAGESTUFF): Readd line lost during June 9 FSF merge. +Mon May 10 13:51:24 1999 Nick Clifton <nickc@cygnus.com> - * configure.in (mips64orion-*-rtems*): Use elf64.h not elfl64.h. + * tm.texi (FUNCTION_ARG): Stack element of PARALLEL must come + first. -1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> +Tue May 11 01:32:01 1999 Jeffrey A Law (law@cygnus.com) - * config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function - stubs. + * fixinc/inclhack.def (sun_auth_proto): Apply to all targets. + (sysz_stdlib_for_sun): Similarly. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - * 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 02:43:34 1998 Jeffrey A Law (law@cygnus.com) +Mon May 10 20:34:10 1999 Jim Wilson <wilson@cygnus.com> - * rtlanal.c (reg_overlap_mentioned_p): Handle STRICT_LOW_PART. If - either argument is CONSTANT_P, then return zero. - * reload.c (reg_overlap_mentioned_for_reload_p): Similarly. + * config/mips/elf.h (UNIQUE_SECTION_P): Undef. + * config/mips/elf64.h (UNIQUE_SECTION_P): Undef. + * config/mips/mips.h (UNIQUE_SECTION_P): Define to 0. - * configure.in: Also look at $srcdir/gas/configure to find a - gas version #. +1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.columbia.edu> -Wed Jul 8 00:28:22 1998 Carlo Wood <carlo@runaway.xs4all.nl> + * cppfiles.c (initialize_input_buffer): New function. + (finclude): Call it, if pfile->input_buffer is NULL. Accept + any character device as an input file. + (read_and_prescan): Use pfile->input_buffer and + pfile->input_speccase. + * cppinit.c (cpp_cleanup): Free pfile->input_buffer and + pfile->input_speccase. + * cpplib.h (cpp_reader): Add input_buffer, input_speccase, and + input_buffer_len members. Use memcpy in CPP_PUTS_Q. - * dsp16xx.h : Clean up of macro OPTIMIZATION_OPTIONS + * cppmain.c: Buffer output in the token_buffer; throttle + number of calls to fwrite; check for errors from fwrite. -Tue Jul 7 21:18:14 1998 Mumit Khan <khan@xraylith.wisc.edu> +1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> - * i386/cygwin32.h (ASM_DECLARE_FUNCTION_NAME): Merge duplicate - definitions from last two patches. + * cppspec.c: Treat two non-option arguments as input and + output file. Three or more non-option args is an error. + Clean up. + * gcc.c (default_compilers): Pass -$ to the preprocessor. + * objc/lang-specs.h: Likewise. -Tue Jul 7 23:03:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon May 10 12:59:20 1999 Jeffrey A Law (law@cygnus.com) - * reload1.c (choose_reload_regs): Don't set reload_override_in - if EQUIV is clobbered in INSN and the reload is done after INSN. + * optabs.c (emit_cmp_and_jump_insns): Handle the case where both + operands to the comparison are constants. -Tue Jul 7 21:23:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon May 10 07:28:10 1999 Bruce Korb <autogen@autogen.freeservers.com> - * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN - to the first insn of the sequence. + * fixinc/inclhack.def(arm_norcroft_hint): check before fixing + (no_double_slash): portability + (math_exception): added reminder comment -Tue Jul 7 21:05:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon May 10 01:28:10 1999 Craig Burley <craig@jcb-sc.com> - * cse.c (cse_insn): Don't make change without validation. + From Fri May 7 9:31:41 1999 Donn Terry (donn@interix.com): + * varasm.c (mark_constant_pool): Add some transitive closure. -Tue Jul 7 11:40:05 1998 Jeffrey A Law (law@cygnus.com) +Sun May 9 22:51:04 1999 Craig Burley <craig@jcb-sc.com> - * mn10200.md (various zero/sign extension patterns): zero and sign - extensions which use "sub" clobber cc0. + Fix gcc.dg/990506-0.c: + * c-typeck.c (require_complete_type): Handle ERROR_MARK input. -Tue Jul 7 09:12:08 PDT 1998 Jeff Law (law@cygnus.com) +Sun May 9 13:19:12 1999 Jeffrey A Law (law@cygnus.com) - * version.c: Bump for snapshot. + * gcse.c (cprop_insn): Do not try to simplify a simple jump. -Tue Jul 7 10:07:20 1998 Jeffrey A Law (law@cygnus.com) +Sun May 9 11:12:19 1999 Philip Blundell <bp@nexus.co.uk> - * print-rtl.c (print_rtx): Use REAL_VALUE_TYPE instead of "double". + * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Add (PLT) to branch if + necessary. Reported by jim@federated.com. -Tue Jul 7 08:41:27 1998 Richard Henderson (rth@cygnus.com) +Sat May 8 23:05:35 1999 Jeffrey A Law (law@cygnus.com) - * print-rtl.c (print_rtx): Only print fp values when REAL_VALUE_TYPE - is a double. + * pa.h (PRINT_OPERAND_ADDRESS): Output "%r0", not "r0" for the + base register in an absolute memory address. + * pa.md (conditional moves): Avoid using immediate zero for + register zero. -Tue Jul 7 00:31:58 PDT 1998 Jeff Law (law@cygnus.com) +Sat May 8 06:23:21 1999 Philip Blundell <pb@nexus.co.uk> - * version.c: Bump for snapshot. + Based on patch by Scott Bambrough: + * config/arm/arm.h (NEED_PLT_GOT): New macro. Set to 0 if not + already defined. + * config/arm/elf.h (NEED_PLT_GOT): Define to flag_pic. + * config/arm/arm.md (call_symbol, call_value_symbol et al.): If + NEED_PLT_GOT is true, add explicit "(PLT)" to generated branches. + * config/arm/arm.c (output_func_epilogue, + output_return_instruction): Likewise for calls to abort. -Tue Jul 7 01:03:03 1998 Mumit Khan <khan@xraylith.wisc.edu> +Sat May 8 01:57:58 1999 Donn Terry (donn@interix.com) - Support for dllimport and dllexport attributes for i386-pe. + * calls.c (rtx_for_function_call): Extend function pointer being + passed to chkr_check_exec_libfunc, if needed. - * tree.h (DECL_NON_ADDR_CONST_P): New accessor macro. - (struct tree_decl): Add non_addr_const_p field. - * tree.c (staticp): Use. +Sat May 8 01:51:50 1999 David Edelsohn <edelsohn@gnu.org> - * i386/cygwin32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. - (SUBTARGET_SWITCHES): Switches to turn on/off dllimport|export - attributes. Also accept -mwindows option. - (VALID_MACHINE_DECL_ATTRIBUTE): New macro. - (MERGE_MACHINE_DECL_ATTRIBUTE): New macro. - (REDO_SECTION_INFO_P): New macro. - (DRECTVE_SECTION_FUNCTION): New macro. - (drectve_section): Cover function to implement above. - (SWITCH_TO_SECTION_FUNCTION): New macro. - (switch_to_section): Covert function to implement above. - (EXTRA_SECTIONS): Add in_drectve. - (EXTRA_SECTION_FUNCTIONS): Add in_drectve and switch_to_section. - (ENCODE_SECTION_INFO): Delete old macro and redefine as a function. - (STRIP_NAME_ENCODING): Handle new attributes. - (ASM_OUTPUT_LABELREF): New macro. - (ASM_OUTPUT_FUNCTION_NAME): New macro. - (ASM_OUTPUT_COMMON): New macro. - (ASM_OUTPUT_DECLARE_OBJECT_NAME): New macro. + * ginclude/stdarg.h (__va_rounded_size): Use long type for + rounding on AIX. + * ginclude/varargs.h: Likewise. - * i386/mingw32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. +Sat May 8 01:47:20 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * i386/winnt.c (i386_pe_valid_decl_attribute_p): New function. - (i386_pe_merge_decl_attributes): New function. - (i386_pe_check_vtable_importexport): New function. - (i386_pe_dllexport_p): New function. - (i386_pe_dllimport_p): New function. - (i386_pe_dllexport_name_p): New function. - (i386_pe_dllimport_name_p): New function. - (i386_pe_mark_dllexport): New function. - (i386_pe_mark_dllimport): New function. - (i386_pe_encode_section_info): New function. - (i386_pe_unique_section): Strip encoding from name first. + * invoke.texi: Remove duplicates in the description of -d + letters. Fix use of @item vs. @itemx. -Tue Jul 7 00:50:17 1998 Manfred Hollstein (manfred@s-direktnet.de) +Sat May 8 01:43:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - * libgcc2.c (L_exit): Provide a fake for atexit on systems which - define ON_EXIT but not HAVE_ATEXIT. + * rs6000.h (RS6000_VARARGS_OFFSET): Die die die. + (CUMULATIVE_ARGS): Remove varargs_offset; update commentary. + * rs6000.c (setup_incoming_varargs): Fix typo last change. + (init_cumulative_args): Remove varargs_offset references. -Tue Jul 7 00:44:35 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + * rs6000/linux.h (NO_IMPLICIT_EXTERN_C): Define. + (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine. - * m68k.md (zero_extend QI to HI): Correctly handle TARGET_5200. +Sat May 8 01:34:19 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Tue Jul 7 00:36:41 1998 Ulrich Drepper <drepper@cygnus.com> + * reload1.c (gen_mode_int): New function. + (reload_cse_move2add): Use it to generate the new constants. - * i386.c: Remove random whitespace at end of lines. +Sat May 8 01:25:09 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * i386.c (ix86_epilogue): For pentium processors, try to deallocate - 4 or 8 byte stacks with pop instructions instead of an add instruction. + * varasm.c (output_constant): Do nothing if -fsyntax-only. -Tue Jul 7 00:30:08 1998 Klaus Kaempf <kkaempf@rmi.de> +Fri May 7 19:10:15 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - * alpha.c: Include tree.h before expr.h. + * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing + for TFmode when there are no instructions which accept REG+REG + instructions. -Mon Jul 6 22:50:48 1998 Jason Merrill <jason@yorick.cygnus.com> +Fri May 7 12:38:54 1999 Jim Wilson <wilson@cygnus.com> - * c-parse.in (struct_head, union_head, enum_head): New nonterminals. - (structsp): Use them. Update files generated from c-parse.in. - * extend.texi (Type Attributes): Document it. + * mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define. + * mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use + function_section instead of text_section. + * mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P + in TARGET_MIPS16 STRING_CST handling. - * c-decl.c: Add warn_multichar. - (c_decode_option): Handle -Wno-multichar. - * c-lex.c (yylex): Check it. - * c-tree.h: Declare it. - * toplev.c (lang_options): Add it. - * invoke.texi: Document it. +Fri May 7 09:54:11 1999 Nick Clifton <nickc@cygnus.com> -Mon Jul 6 22:47:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + Patch from: Nick Burrett <nick.burrett@btinternet.com> - * reload.c (find_equiv_reg): When looking for stack pointer + const, - make sure we don't use a stack adjust. + * arm.c (arm_poke_function_name): New function to implement + -mpoke-function-name. + * aof.h (ASM_DECLARE_FUNCTION_NAME): Call it. + * aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * arm.h: Prototype it. + (TARGET_SWITCHES): Add `no-poke-function-name'. - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly. +Fri May 7 14:19:31 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - * reload1.c (delete_dead_insn): Don't delete feeding insn - if that insn has side effects. + * fixinc/server.c (load_data): Cast text_size to long, adapt + format. + * fixinc/server.c (read_pipe_timeout): Declare volatile, modified + in signal handler. + (sig_handler): Add debug code. + * fixinc/server.c (run_shell): Don't \-escape cd, it breaks the + Ultrix V4.3 /bin/sh. + * fixinc/server.c (def_args): Use static instead of STATIC to + avoid redefinition error from linker iff DEBUG. - * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is - changed. + * fixinc/hackshell.tpl: Don't strip trailing directory from + DESTDIR - that is already done - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OPADDR_ADDR - precedes RELOAD_FOR_OUTADDR_ADDRESS. + * fixinc/fixincl.c (run_compiles): fix memory leak - * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed - caller. +Thu May 6 20:34:00 1999 Mark Mitchell <mark@codesourcery.com> -Mon Jul 6 22:21:56 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> + * resource.c (mark_referenced_resources): Make volatil + monotonically increasing. + (mark_set_resources): Likewise. - * m68k.c (output_scc_di): Use cmpw #0 instead of tstl when - testing address registers on the 68000. +Thu May 6 20:02:33 1999 Fred Fish <fnf@be.com> -Mon Jul 6 22:17:19 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> + * rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined. + (HAVE_PUTENV, HAVE_ATEXIT, HAVE_RENAME): Likewise. - * i386.c (is_fp_test): Fix thinko. +Wed May 5 20:28:32 1999 Jason Merrill <jason@yorick.cygnus.com> - * jump.c (jump_optimize) Check for CONST_INT before using INTVAL. + * install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/. -Mon Jul 6 22:14:31 1998 Richard Henderson (rth@cygnus.com) +Wed May 5 23:44:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * print-rtl.c (print_rtx): Display the real-value equivalent of - a const_double when easy. + * unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from. - * real.h (REAL_VALUE_TO_TARGET_SINGLE): Use a union to pun types. - Zero memory first for predictability. - (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. - * varasm.c (immed_real_const_1): Notice width of H_W_I == double. +Wed May 5 16:26:13 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - * regclass.c (allocate_reg_info): Initialize the entire reg_data - virtual array. + * function.c (purge_addressof_replacements): Rename into + purge_bitfield_addressof_replacements. + (purge_addressof_replacements): New variable. + (purge_addressof_1): Add code for changing addressof in notes for + field values which are extracted by usage MEM with narrower mode. + (purge_addressof): Initialize purge_bitfield_addressof_replacements. -Mon Jul 6 22:09:32 1998 Ian Lance Taylor <ian@cygnus.com> - Jeff Law <law@cygnus.com> +Wed May 5 07:40:02 1999 Nick Clifton <nickc@cygnus.com> + Patch from: Nick Burrett <nick.burrett@btinternet.com> + * config/arm/arm.h (ARM_MCOUNT_NAME): Define. + (FUNCTION_PROFILER): Remove assembler dialect dependency and use + ARM_MCOUNT_NAME. + (TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency. - * i386/cygwin32.h: Add some declaration of external functions. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - (ASM_FILE_END): Define. - * i386/winnt.c (i386_pe_declare_function_type): New function. - (struct extern_list, extern_head): Define. - (i386_pe_record_external_function): New function. - (i386_pe_asm_file_end): New function. + * config/arm/aof.h (ARM_MCOUNT_NAME): Define. - * cpplib.c (cpp_options_init): Initialize cplusplus_comments to 1, - matching July 18, 1995 change to cccp.c. If -traditional then - disable cplusplus_comments. +1999-05-05 09:58 -0400 Zack Weinberg <zack@rabi.columbia.edu> -Mon Jul 6 21:28:14 1998 Jeffrey A Law (law@cygnus.com) + * gcc.c (default_compilers): Fix brace nesting bug. + * objc/lang-specs.h: Use %i, not %g.mi, for the input file + when processing an .mi file. - * combine.c (expand_compound_operation): Fix thinko in code to optimize - (zero_extend:DI (subreg:SI (foo:DI) 0)) to foo:DI. +Tue May 4 13:17:55 1999 Mark Mitchell <mark@codesourcery.com> - * Disable the following change from gcc2. Not appropriate for egcs: + * resource.c (mark_set_resources): Handle UNSPEC_VOLATILE, + ASM_INPUT, TRAP_IF, and ASM_OPERANDS just like in + mark_referenced_resources. - Sun Jun 7 09:30:31 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - * reload.c (find_reloads): Give preference to pseudo that was the - reloaded output of previous insn. +Mon May 3 22:38:41 1999 David Edelsohn <edelsohn@gnu.org> -Mon Jul 6 21:07:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC + and AIX64 combination to warning. Add warning for disabling + PowerPC64 support when using 64-bit mode. + (LIB_SPEC): Do not link with libg.a in 64-bit mode. + (LINK_SPEC): Do not export libg.exp symbols in 64-bit mode. + * rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid + XCOFF files. + (read_only_data_section, private_data_section, + read_only_private_data_section): Always align CSECTs to doubleword + boundary regardless of mode. + (TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in + 64-bit mode. + (DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary. + (ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to + maintain doublword alignment. - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): Don't define HOST_PTR_PRINTF. - Instead, define a new macro HAVE_PRINTF_PTR which only signifies - whether we have the %p format specifier or not. +Mon May 3 14:45:23 1999 Jeffrey A Law (law@cygnus.com) - * acconfig.h: Delete stub for HOST_PTR_PRINTF, add HAVE_PRINTF_PTR. - - * machmode.h (HOST_PTR_PRINTF): When determining the definition, - check HAVE_PRINTF_PTR to see whether "%p" is okay. + * mn10200.md (btst insns): btst does not leave cc0 in a useable + state for redundant tst eliminatino. + * mn10300.md (btst insns): Likewise. - * mips-tfile.c: Include machmode.h to get HOST_PTR_PRINTF. +Mon May 3 16:14:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * Makefile.in (mips-tfile.o): Depend on machmode.h. + * mips.h (Pmode): Revert Oct 14th change which added a cast. -Mon Jul 6 10:42:05 1998 Mark Mitchell <mark@markmitchell.com> +Sun May 2 14:02:21 1999 Mark Mitchell <mark@codesourcery.com> - * jump.c (duplicate_loop_exit_test): Don't refuse to copy a - section of code just because it contains - NOTE_INSN_BLOCK_{BEG,END}. - * stmt.c (expand_end_loop): Likewise. Also, don't refuse to - move CALL_INSNs or CODE_LABELs. When moving code, don't move - NOTE_INSN_BLOCK_{BEG,END}. + * tree.h (struct tree_decl): Add comdat_flag. + (DECL_COMDAT): Define it. + * toplev.c (wrapup_global_declarations): Don't output a + DECL_COMDAT function just because it's public. -Mon Jul 6 09:38:15 1998 Mark Mitchell <mark@markmitchell.com> +Sun May 2 15:16:42 1999 Joseph S. Myers <jsm28@cam.ac.uk> - * cse.c (CSE_ADDRESS_COST): New macro, based on ADDRESS_COST, but - dealing with ADDRESSOF. - (find_best_addr): Use it. + * pdp11.h (TARGET_SWITCHES): Fix error in previous change. + (ASSEMBLER_DIALECT): Define. + (CONDITIONAL_REGISTER_USAGE): Rename floating point registers if + required for the UNIX assembler. + (ASM_OUTPUT_INT): Remove. The compiler will synthesise it. + (ASM_OUTPUT_ADDR_VEC_PROLOGUE): Remove. + (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]". + (TRAMPOLINE_TEMPLATE): Use ASM_OUTPUT_SHORT. + * pdp11.c (output_addr_const_pdp11): Copy of output_addr_const + adapted to output constants in octal. + * pdp11.c, pdp11.h, pdp11.md: Use output_addr_const_pdp11 instead + of output_addr_const. Output constants in octal. Use assembler + dialect alternatives where DEC and UNIX assemblers use different + instruction names. -Mon Jul 6 09:27:08 1998 Richard Henderson <rth@cygnus.com> +Sun May 2 01:15:06 PDT 1999 Jeff Law (law@cygnus.com) - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Revert last change. + * version.c: Bump for snapshot. -Mon Jul 6 09:25:06 1998 Dave Love <d.love@dl.ac.uk> +Fri Apr 30 13:55:43 1999 Richard Henderson <rth@cygnus.com> - * libgcc2.c (__eprintf): Make args consistent with prototype in - assert.h. + * va-ppc.h (__va_start_common): Let __builtin_saveregs do the work. + * rs6000.c (expand_builtin_saveregs): For V4, initialize a private + va_list struct, and return a pointer to it. + (setup_incoming_varargs): V4 save area based off virtual_stack_vars + instead of frame_pointer. -Mon Jul 6 00:28:43 1998 Mark Mitchell <mark@markmitchell.com> +Thu Apr 29 23:02:22 1999 Mark Mitchell <mark@codesourcery.com> - * cse.c (cse_insn): When SETting (MEM (ADDRESSOF (X))) to Y, - don't claim that the former is equivalent to the latter. + * emit-rtl.c (start_sequence): Expand comments. + (start_sequence_for_rtl_expr): Likewise. + (push_to_sequence): Likewise. + (end_sequence): Likewise. + * expr.c (inhibit_defer_pop): Likewise. + * expr.h (inhibit_defer_pop): Likewise. + (NO_DEFER_POP): Likewise. + (OK_DEFER_POP): Likewise. -Sun Jul 5 23:58:19 1998 Jeffrey A Law (law@cygnus.com) +Thu Apr 29 22:13:46 1999 Robert Lipe <robertlipe@usa.net> - * cse.c (cse_insn): Second arg is an RTX now. Update all callers. - (cse_basic_block): Keep track of the current RETVAL insn for a - libcall instead of just noting that we're in a libcall. + * configure.in (i?86-UnixWare7*-sysv): Set thread_file to 'posix' + --enable-threads[={yes,pthreads,posix}] is passed as a command + line parameter to configure. + * config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'. + (CPP_SPEC): Likewise. - * combine.c (simplify_comparison): Do not commute a AND into - a paradoxical SUBREG if not WORD_REGISTER_OPERATIONS. +Thu Apr 29 17:23:59 1999 Richard Henderson <rth@cygnus.com> - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Protect with - HAVE_GAS_MAX_SKIP_P2ALIGN. - * i386/linux.h: Likewise. - -Fri Jul 3 02:33:35 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * sparc.c (sparc_operand, move_operand, arith_operand, - arith11_operand, arith10_operand, arith_double_operand, - arith11_double_operand, arith10_double_operand, small_int, - uns_small_int): Recognize CONSTANT_P_RTX. - (output_sized_memop, output_move_with_extension, - output_load_address, output_size_for_block_move, - output_block_move, delay_operand): Remove, has not been - enabled or referenced for years. - * sparc.md (movstrsi, block_move_insn): Likewise. - * sparc.h (PREDICATE_CODES): Define. - * linux-aout.h (MACHINE_STATE_{SAVE,RESTORE}): Override with - version which uses getcc/setcc traps to save/restore condition - codes. - * linux64.h: Likewise. - * sunos4.h: Likewise. - * linux.h: Likewise. - * sol2.h: Likewise. - * sun4o3.h: Likewise. - -Fri Jul 3 02:28:05 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode - lossage on VMS. Reported by kkaempf@rmi.de. - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0. - -Thu Jul 2 17:41:14 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default - version. - -Thu Jul 2 14:34:48 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * expr.h (STACK_SIZE_MODE): New macro. - * explow.c (allocate_dynamic_stack_space): Use it for - mode of allocate_stack pattern increment operand. - * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document. - * md.texi (stack_save_block, ...): Reflect use of macro. - - * rs6000.h (PROMOTE_MODE): Always promote to word_mode. - (PROMOTE_FUNCTION_ARGS): Define. - (PROMOTE_FUNCTION_RETURN): Define. - (FUNCTION_VALUE): Promote to word_mode if smaller. - Convert to gen_rtx_FOO. - * rs6000.md (call_indirect): Store doubleword in 64-bit mode. - Convert to gen_rtx_FOO. - * rs6000.c: Convert to gen_rtx_FOO. - -Thu Jul 2 14:16:11 1998 Michael Meissner <meissner@cygnus.com> + * emit-rtl.c (operand_subword): Religiously mask and sign-extend + from 32-bits to HOST_WIDE_INT. - * varray.{c,h}: New files to provide virtual array support. +Thu Apr 29 15:58:52 1999 Robert Lipe <robertlipe@usa.net> - * Makefile.in (OBJS): Add varray.o. - (varray.o): Add new file. - (REGS_H): New variable for dependencies for files including - regs.h. Add varray.h and files it includes. Change all regs.h - dependencies to $(REGS_H). + * fixinc/regex.c, fixinc/regex.h: Removed. Replace with... + * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18. + * fixinc/Makefile.in (OBJ, HDR): Handle name changes from above. + (gnu-regex.o): Define REGEX_MALLOC to avoid memory leak. + * fixinc/fixincl.c: new regex.h header name + * Makefile.in: new regex.[ch] file names - * toplev.c (x{m,re}alloc): If size is 0, allocate 1 byte. - (xcalloc): Provide frontend for calloc. - * {tree,rtl}.h (xcalloc): Add declaration. +Thu Apr 29 12:53:33 1999 Richard Henderson <rth@cygnus.com> - * basic-block.h (REG_BASIC_BLOCK): Convert reg_n_info to be a - varray. + * calls.c (emit_call_1): Pass rounded_stack_size to emit_call + instead of the unrounded size. - * regs.h (toplevel): Include varray.h. - (reg_n_info): Switch to use a varray. - (REG_*): Ditto. - (allocate_reg_info): Change num_regs argument to be size_t. +1999-04-28 14:40 Bruce Korb <ddsinc09@ix.netcom.com> - * regclass.c (reg_info_data): New structure to remember groups of - reg_info structures allocated that are to be zeroed. - ({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): Switch to make reg_n_info use varrays. - Allocate buffers for the preferred and alter register class - information. Change num_regs argument to be size_t, not int. + * fixinc/mkfixinc.sh: Makesure the result shell script is writable - * flow.c (reg_n_info): Switch to use varrays. +Wed Apr 28 10:36:39 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Thu Jul 2 10:11:47 1998 Robert Lipe <robertl@dgii.com> + * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit + constant with an address register. - * install.texi (sco3.2v5): Document new --with-gnu-as flag. - * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as - in other targets. - (USE_GAS): Conditionalize away native assembler usage. - * config/i386/sco5gas.h: New file. - * config/i386/t-sco5gas: New file. - * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as +Wed Apr 28 00:14:41 PDT 1999 Jeff Law (law@cygnus.com) -Thu Jul 2 08:20:00 1998 Catherine Moore <clm@cygnus.com> + * version.c: Bump for snapshot. - * haifa-sched.c (alloc_EXPR_LIST): Change to use - unused_expr_list. +Tue Apr 27 19:50:25 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> + + * rtl.h (REG_EH_REGION): Update comment to indicate a value of -1 + indicates no throw and no nonlocal gotos. + * optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value + of -1 instead of 0 to indicate a nonlocal goto won't happen either. + * flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall + blocks, look for REG_EH_REGION note exclusively. + (make_edges): Check for REG_EH_REGION > 0 for specified handlers. -Thu Jul 2 14:13:28 1998 Dave Love <d.love@dl.ac.uk> +Tue Apr 27 15:33:42 1999 David Edelsohn <edelsohn@gnu.org> + + * rs6000.h (read_only_data_section, private_data_section, + read_only_private_data_section, toc_section): Align CSECT on + doubleword boundary for 64-bit target. + (DATA_SECTION_ASM_OP): Likewise. + * rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288. + +Tue Apr 27 20:19:47 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (insv): Use copy_addr_to_reg. + + * final.c (insn_lengths_max_uid): New variable. + (init_insn_lengths, shorten_branches): Set it. + (get_attr_lengths): Test insn uid against insn_lengths_max_uid. + +1999-04-27 08:32 -0400 Zack Weinberg <zack@rabi.columbia.edu> + + * expr.c (emit_move_insn_1): Abort if MODE argument is invalid. + (compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK. + +Tue Apr 27 01:33:43 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (ORDINARY_FLAGS_TO_PASS): Renmaed from FLAGS_TO_PASS. + Remove "CC". + (FLAGS_TO_PASS): New variable. + +Tue Apr 27 00:36:44 1999 Nick Burrett <nick.burrett@btinternet.com> + + * arm.md (nop): Output instruction using output_asm_insn to fix + assembler dialect problems. - * Makefile.in (install-info): Don't use $realfile. Ignore - possible errors from the install-info program. +Mon Apr 26 23:55:50 1999 Robert Lipe <robertlipe@usa.net> -Thu Jul 2 01:53:32 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> + * Makefile.in (fixinc.sh): Fix dependencies. - * combine.c (simplify_comparison): Apply SUBREG_REG to SUBREGs. + * fixinc/inclhack.def (avoid_bool): Enable match if typedefs are + prepended by spaces. + (sco5_stat_wrappers): New fix. Make sys/stat.h C++ safe. + * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. -Wed Jul 1 23:06:03 1998 Richard Henderson <rth@cygnus.com> +Mon Apr 26 23:28:54 1999 Mumit Khan <khan@xraylith.wisc.edu> + Donn Terry <donn@interix.com> - * i386.h (HARD_REGNO_MODE_OK): Kill spurrious test. - (MODES_TIEABLE_P): Tie SImode and HImode. + * function.c (put_var_into_stack): Change ptr_mode to Pmode + in setup for chkr_set_right_libfunc calls. + (assign_params): Likewise. + * expr.c (emit_push_insn): Change ptr_mode to Pmode in + setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls. + (expand_assignment): Change ptr_mode to Pmode in + setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. + (store_expr): Change ptr_mode to Pmode in + setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. + (expand_expr): Change ptr_mode to Pmode in + setup for chkr_check_addr_libfunc. + (expand_builtin): Change ptr_mode to Pmode in + setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and + chkr_check_addr_libfunc. + * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in + setup for chkr_check_exec_libfunc. + (expand_call): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. + (expand_call): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. + (store_one_arg): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. -1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de> + * c-parse.in (absdcl1): Allow attributes in explicit typespecs. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.c: Likewise. + * objc/objc-parse.y: Likewise. - * invoke.texi (Optimize Options): Fix typo. +Mon Apr 26 21:17:41 1999 Jason Merrill <jason@yorick.cygnus.com> -Wed Jul 1 22:25:43 1998 Jim Wilson <wilson@cygnus.com> + * c-pragma.c (push_alignment): Don't ignore alignments greater than + 4 bytes. + (handle_pragma_token): Likewise. - * xcoffout.c (xcoffout_begin_function): Call xcoffout_block for - the zero'th block. + * c-pragma.c: Support for #pragma pack (push, <id>, <n>). + (struct align_stack): Add id field. + (push_alignment, pop_alignment): Take id parameter. + (handle_pragma_token): Add necessary states. + * c-pragma.h (enum pragma_state): Add necessary states. -Wed Jul 1 23:12:58 1998 Ken Raeburn <raeburn@cygnus.com> +Tue Apr 27 13:58:23 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * h8300.c (print_operand): Delete %L support. - * h8300.md (branch_true, branch_false): Use %= with a prefix - instead of %L for local branch labels. + * config/c4x/c4x.md (*cmpqf, *cmpqf_noov, *cmpqi_test, + *cmpqi_test_noov): Remove ? modifier from constraints list. + (*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap + output strings to match new constraint ordering. -Wed Jul 1 21:27:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +1999-04-26 19:16 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * reload1.c (emit_reload_insns): Use proper register classes for - SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_MEMORY_NEEDED code. + * cpphash.c (dump_definition): New function. + * cpphash.h: Prototype it. -Wed Jul 1 21:17:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * cpplib.c (handle_directive): Don't output anything here. + Streamline. + (pass_thru_directive): Take a length, not a pointer to the + end. All callers changed. + (do_define): Handle -dD, -dN, -g3 entirely here. Streamline. + (do_include): Handle -dI here. + (do_ident): Correct to match cccp. + (do_pragma): Copy the pragma through here. + (do_assert, do_unassert): Tidy. - * reload.c (find_reloads): If there are multiple - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads for - one operand, change RELOAD_FOR_INPADDR_ADDRESS / - RELOAD_FOR_OUTADDR_ADDRESS for all but the first - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads. + * cppinit.c (cpp_finish): If -dM was specified, walk the macro + hash table and call dump_definition on all the entries. + * cppmain.c: cpp_finish may produce output. -Wed Jul 1 17:23:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Apr 26 15:27:33 1999 Mark Mitchell <mark@codesourcery.com> - * regmove.c (fixup_match_2): Check that P has RTX_CLASS 'i' before - using its PATTERN. + * toplev.c (compile_file): Move call to check_global_declarations + after output_exception_table to restore behavior as it was before + 1999-04-22 change. -Wed Jul 1 05:04:41 1998 Richard Henderson <rth@cygnus.com> +1999-04-26 10:50 -0700 Bruce Korb <ddsinc09@ix.netcom.com> + + * fixinc/fixincl.c: Improve the handling of child process exits + * fixinc/server.[ch]: Export the interface for shutting down + the server process + * fixinc/inclhack.tpl: Remove unnecessary character quote + * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate + +Mon Apr 26 10:41:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> + + * alpha.md (builtin_setjmp_receiver): Use a label_ref instead of + a code label. + +1999-04-26 09:47 -0400 Zack Weinberg <zack@rabi.columbia.edu> + + * rtl.texi: Document the rtl classes and their relation to + formats. + +Mon Apr 26 01:02:38 1999 Richard Henderson <rth@cygnus.com> + + * alpha.md (fix_trunc patterns): Use reg_no_subreg_operand on op0 + for less work in reload. + (movsf and movdf patterns): Put fp reg alternatives first. + +Mon Apr 26 01:55:56 1999 Marc Espie <espie@cvs.openbsd.org> + + * configure.in (openbsd): Factorize xmake_file. + (ix86 openbsd): Trim obsolete comment. + (vax openbsd): Fix typo. + * configure: Rebuilt. - * expr.c (emit_group_load, emit_group_store): Rewrite considering - the size and alignment of the structure being manipulated. - * expr.c, calls.c, function.c: Update all callers. - * expr.h: Update prototypes. - * cse.c (invalidate): Cope with parallels. +Mon Apr 26 01:30:59 1999 Donn Terry <donn@interix.com> -Wed Jul 1 04:22:23 1998 Richard Henderson <rth@cygnus.com> + * expr.c (expand_assignment): Improve test for pointer type. - * sparc.c (function_arg_record_value): Take a MODE arg with which to - create the PARALLEL. Update all callers. +Mon Apr 26 00:26:18 1999 Richard Henderson <rth@cygnus.com> -Wed Jul 1 04:10:35 1998 Richard Henderson <rth@cygnus.com> + * alpha.c (print_operand_address): Account for the subreg word. - * expr.c (expand_assignment, store_constructor, expand_expr): Use - convert_memory_address instead of convert_to_mode when possible. +Mon Apr 26 01:08:36 1999 Toshiyasu Morita (tm@netcom.com) -Wed Jul 1 03:48:00 1998 Richard Henderson <rth@cygnus.com> + * fold-const.c (make_range): Always initialize arg0 and arg1. + (fold): Similarly for alt0 and alt1. + * function.c (fixup_var_refs_insns): Initialize insn_list. + (instantiate_virtual_regs_1): Initialize offset. + * optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh + and op1_xhigh. + * stmt.c (expand_end_case): Initialize minval and maxval. - * alpha.c (alpha_initialize_trampoline): Take arguments describing - the layout. Use ptr_mode. Disable hint generation. Use gen_imb. - * alpha.h (INITIALIZE_TRAMPOLINE): Pass extra args to the init func. - (TRANSFER_FROM_TRAMPOLINE): Move ... - * alpha/osf.h: ... here. - * alpha/vms.h (INITIALIZE_TRAMPOLINE): Use alpha_initialize_trampoline. - (TRANSFER_FROM_TRAMPOLINE): Remove undef. - * alpha/win-nt.h: Likewise. - * alpha/vxworks.h: Likewise. +Mon Apr 26 01:02:34 1999 Nathan Sidwell <nathan@acm.org> - * alpha/linux.h: Revert gcc2 merge lossage. + * toplev.c (report_error_function): Reorder file stack and + function name printing. Ignore FILE parameter. -Wed Jul 1 10:56:55 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Mon Apr 26 00:58:54 1999 Jerry Quinn <jquinn@nortelnetworks.com> - * c-decl.c (grokdeclarator): Don't warn about implicit int in - `typedef foo = bar'. + * pa.h (architecture_type): New enum. + (pa_arch_string, pa_arch): Declare. + (MASK_PA_10, MASK_PA_20): New flags. + (TARGET_SWITCHES): Add pa-risc-2-0. Update docs for PA1.0 codegen. + (TARGET_OPTIONS): Add -march= option. + * pa.c (pa_arch, pa_arch_string): Define. + (override_options): Set them. + * pa/pa-hpux10.h (ASM_FILE_START): Output LEVEL 2.0 asm directive for + 2.0 architecture. + * invoke.texi (Option Summary, HPPA Options): Document new + architecture flags. -Wed Jul 1 02:12:33 1998 Robert Lipe <robertl@dgii.com> + * pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h, + pa.c, pa.md, configure.in, configure: Replace TARGET_SNAKE by + TARGET_PA_11 and MASK_SNAKE by MASK_PA_11. - * i386.c (asm_output_function_prefix): Make 686 function - prologues not issue .types for non-global lables. +Mon Apr 26 00:28:25 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> -Tue Jun 30 23:46:53 1998 Dmitrij Tejblum <tejblum@arc.hq.cti.ru> + * flags.h (inline_max_insns): Declare. + * integrate.c (inline_max_insns): New variable. + (function_cannot_inline_p): Use it. + * toplev.c (main): Add the flag -finline-limit-n. + (display_help): Document -finline-limit-n. + * invoke.texi: Document -finline-limit-n - * i386/freebsd.h (WCHAR_TYPE): Chagne to an "int". - (WCHAR_TYPE_SIZE): Update appropriately. +Sun Apr 25 23:03:32 1999 Richard Henderson <rth@cygnus.com> -Tue Jun 30 23:16:39 1998 Jeffrey A Law (law@cygnus.com) + * stmt.c (expand_asm_operands): Reload in-out reg-only memory operands. - * flow.c (recompute_reg_usage): Does not return a value. - * rtl.h (recompute_reg_usage): Update prototype. +Sun Apr 25 13:06:13 1999 Richard Henderson <rth@cygnus.com> - * jump.c (jump_optimize): Show that the jump chain is not - valid when not optimizing. + * function.c (assign_parms/STACK_BYTES): Revert last change, + and that of 19 Nov. -Tue Jun 30 16:01:01 1998 Richard Henderson <rth@cygnus.com> +Sun Apr 25 12:30:50 1999 Richard Henderson <rth@cygnus.com> - * rtl.def (CONSTANT_P_RTX): New. - * rtl.h (CONSTANT_P): Recognize it. - * cse.c (fold_rtx): Eliminate it. - * expr.c (can_handle_constant_p): New variable. - (init_expr_once): Initialize it. - (expand_builtin): Generate CONSTANT_P_RTX if the expression is not - immediately recognizable as a constant. + * calls.c (emit_call_1): New arg rounded_stack_size; update callers. + Update pending_stack_adjust based on this value. + (compute_argument_block_size): Include pending_stack_adjust in + PREFERRED_STACK_BOUNDARY alignment. + * function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY. - * alpha.c (reg_or_6bit_operand): Recognize CONSTANT_P_RTX. - (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. - (sext_add_operand, and_operand, or_operand): Likewise. - (reg_or_cint_operand, some_operand, input_operand): Likewise. - * alpha.h (PREDICATE_CODES): Add CONSTANT_P_RTX where needed. +Sun Apr 25 14:38:10 EDT 1999 John Wehle (john@feith.com) -1998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> + * stupid.c (stupid_mark_refs): Generate a REG_UNUSED note + for a register which is clobbered even if the register + was used by an earlier instruction. - * dbxout.c (dbxout_type_methods): Remove warn_template_debugging. + * i386.md (fix_truncsfdi2, fix_truncdfdi2, + fix_truncxfdi2): Don't bother with the gen_reg_RTX. + (fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2, + fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update + operand constraints and modes. + * i386.c (output_fix_trunc): Use HImode register to avoid + memory stalls. Call output_move_double instead of output_to_reg. + (output_to_reg): Remove. + * i386.h: Likewise. -Tue Jun 30 14:03:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * i386.md (negsf2, negdf2, negxf2): Set the type + attribute to fpop. - * aclocal.m4 (GCC_NEED_DECLARATION): Accept an optional second - argument, which is typically preprocessor code used to draw in - additional header files when looking for a function declaration. - (GCC_NEED_DECLARATIONS): Likewise. +Sat Apr 24 23:15:57 1999 Donn Terry (donn@interix.com) - * configure.in (GCC_NEED_DECLARATIONS): Add checks for getrlimit - and setrlimit, search for them in sys/resource.h. + * alpha.md (call_value_nt): Correct subscripts. - * acconfig.h: Add stubs for NEED_DECLARATION_GETRLIMIT and - NEED_DECLARATION_SETRLIMIT. +Sat Apr 24 20:49:20 1999 Richard Henderson <rth@cygnus.com> - * system.h: Prototype getrlimit/setrlimit if necessary. + * alpha.h (PRINT_OPERAND_ADDRESS): Break out to ... + * alpha.c (print_operand_address): here. Handle subregs. -Tue Jun 30 10:54:48 1998 Mark Mitchell <mark@markmitchell.com> +Fri Apr 23 22:35:41 EDT 1999 John Wehle (john@feith.com) - * rtl.texi: Don't say that RTX_INTEGRATED_P is not depended - upon. + * acconfig.h (HAVE_GAS_FILDS_FISTS): Add. + * configure.in: Check assembler instructions. + * configure: Rebuild. + * config.in: Likewise. + * i386.md (floathisf2, floathidf2, floathixf2): New patterns. + * i386.c (print_operand): Use the proper suffix for a 387 HImode + operand. Abort if a 387 operand has an unsupported size. -Tue Jun 30 13:11:42 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> +Fri Apr 23 16:57:40 1999 Richard Henderson <rth@cygnus.com> - * rs6000/sysv4.h (asm output): add tabs for asm directives. + * alpha.c (alpha_write_verstamp): Mark `file' unused. + * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx. + (LIBCALL_VALUE): Likewise. + (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs. -Tue Jun 30 13:11:42 1998 David Edelsohn <edelsohn@mhpcc.edu> +Fri Apr 23 14:57:33 1999 Donn Terry <donn@interix.com> - * Makefile.in (FLAGS_TO_PASS): Set AR_FLAGS to AR_FOR_TARGET_FLAGS. + * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right. -Tue Jun 30 08:59:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * alpha.c (alpha_initialize_trampoline): Add covert_memory_address + calls as needed. - * gansidecl.h (ATTRIBUTE_UNUSED): Use __unused__ not `unused'. - Don't define NULL here. Also, remove all vestiges of autoconf - based checks for bcmp/bcopy/bzero/index/rindex. +Fri Apr 23 14:36:47 1999 Richard Henderson <rth@cygnus.com> - * system.h: Immediately after including stdio.h, check for and if - necessary provide a default definition of NULL. + * alpha.c (alpha_expand_prologue): Don't negate frame size + for use with subq. -Tue Jun 30 08:22:05 1998 Michael Meissner <meissner@cygnus.com> +Fri Apr 23 09:43:18 1999 Nick Clifton <nickc@cygnus.com> - * reload1.c (reload_cse_simplify_operands): Call - fatal_insn_not_found, not abort. + * print-rtl.c (print_rtx): Display LABEL_NUSES for labels. -Tue Jun 30 02:34:02 1998 Jeffrey A Law (law@cygnus.com) +Thu Apr 22 23:08:37 1999 Mark Mitchell <mark@codesourcery.com> - * choose-temp.c (make_temp_file): Accept new argument for the - file suffix to use. Allocate space for it and add it to the - template. - * mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument - for the length of the suffix. Update template struture checks - to handle optinal suffix. - * collect2.c (make_temp_file): Update prototype. - (main): Put proper suffixes on temporary files. - * gcc.c (make_temp_file): Update prototype. - (do_spec_1): Put proper suffixes on temporary files. + * toplev.h (wrapup_global_declarations): Declare. + (check_global_declarations): Likewise. + * toplev.c (wrapup_global_declarations): New function, split out + from ... + (check_global_declarations): Likewise... + (compile_file): Here. -Tue Jun 30 00:56:19 1998 Bruno Haible <haible@ilog.fr> +Thu Apr 22 22:34:41 1999 Richard Henderson <rth@cygnus.com> - * invoke.texi: Document new implicit structure initialization - warning. + * c-parse.in (expr_no_commas): Verify we've an expr before + calling C_SET_EXP_ORIGINAL_CODE. -Mon Jun 29 22:12:06 1998 Jeffrey A Law (law@cygnus.com) +Thu Apr 22 22:22:15 EDT 1999 John Wehle (john@feith.com) - * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for - details. + * toplev.c (rest_of_compilation): Always set + current_function_uses_only_leaf_regs appropriately. - * pa.c, pa.h, pa.md: Convert to gen_rtx_FOO. +Thu Apr 22 14:39:43 1999 Mumit Khan <khan@xraylith.wisc.edu> -Mon Jun 29 20:12:41 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro. + (HAVE_BZERO): Likewise. + (HAVE_BCMP): Likewise. + (HAVE_RINDEX): Likewise. + (HAVE_INDEX): Likewise. + (DIR_SEPARATOR_2): Define. + (GET_ENV_PATH_LIST): Turn path lists into POSIX. + (PATH_SEPARATOR): Use ':'. - * Makefile.in (fix-header): Don't needlessly depend on cpperror.o. +1999-04-22 Bruce Korb <ddsinc09@ix.netcom.com> - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to - void since it is evaluated in a comma list. + * configure.in: enable disabling of fast fixincludes + * configure: regenerate - * mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM' - argument as a long and cast `NUM' to long to ensure it is of the - proper width. Wrap macro arguments in parens when they appear in - the expansion. +1999-04-21 14:55 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * gen-protos.c: #undef abort after including system.h. + Delete defns of fancy_abort and fatal. + * fix-header.c: Delete defn of fancy_abort. - * sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_DECLARE_RESULT): Fix fprintf format specifier to match - function argument return type. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P, - REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'. +Wed Apr 21 12:09:38 1999 Mumit Khan <khan@xraylith.wisc.edu> - * cpplib.c (cpp_message_from_errno): Remove unneeded argument to - cpp_message. + * cccp.c (simplify_filename): Always preserve leading double slash. - * dbxout.c: Fix the comments after an #endif to reflect the actual - condition tested in the preceding #if. +Wed Apr 21 18:15:55 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * except.c (find_all_handler_type_matches): Switch to old-style - function definition. + * config/c4x/c4x.md: Add new peepholes to remove redundant loads. - * expr.c (expand_builtin): Remove unused variable `type' twice. +Wed Apr 21 17:41:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it - to an unsigned long. + * config/c4x/c4x.md (binary patterns): Reorder alternatives + so that two operand instructions are chosen before three operand + instructions. - * haifa-sched.c (print_insn_chain): Remove unused function. +Tue Apr 20 23:38:58 1999 Nathan Sidwell <nathan@acm.org> - * objc/objc-act.c (build_msg_pool_reference): Hide prototype and - definition. + * objc/Make-lang.in (objc-parse.c): Put BISON parameters in correct + order. - * toplev.c: When testing whether to include dbxout.h, also include - it when XCOFF_DEBUGGING_INFO is defined. + * Makefile.in (c-parse.c): Put BISON parameters in correct + order. - * unroll.c (unroll_loop): Add parentheses around assignment used - as truth value. +Tue Apr 20 16:38:11 1999 Richard Henderson <rth@cygnus.com> -Mon Jun 29 12:18:00 1998 Catherine Moore <clm@cygnus.com> + * alpha.md (nt_lda): New pattern. + * alpha.c (alpha_expand_prologue): Use it for large frames + under windows nt. - * config/lb1spc.asm (.div, .udiv): Replace routines. +Tue Apr 20 17:57:14 1999 Catherine Moore <clm@cygnus.com> -Mon Jun 29 09:44:24 1998 Mark Mitchell <mark@markmitchell.com> + * config/arm/arm.md (movhi): Add check for odd offset. - * rtl.h: Update comment about special gen_rtx variants. - * emit-rtl.c (gen_rtx): Handle MEMs using gen_rtx_MEM. +Tue Apr 20 13:14:58 EDT 1999 John Wehle (john@feith.com) -Sun Jun 28 20:58:51 1998 Jeffrey A Law (law@cygnus.com) + * i386.c (output_move_double): Abort if a non-offsettable + memory operand is encountered. Delete unused code. + (find_addr_reg): Remove. - * choose-temp.c (choose_temp_base): Restore original variant of - this function for compatibility. - (make_temp_file): This is the new, preferred interface to create - temporary files. - * collect2.c (choose_temp_base): Delete declaration. - (make_temp_file): Declare. - (temp_filename_length, temp_filename): Delete. - (main): Use make_temp_file to get temporary files. Use --lang-c - to force the resulting ctort/dtor file to be compiled with the C - compiler. Make sure to remove temporary files on all exit paths. - * gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is - defined. - (choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is - not defined. - (do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined. +Mon Apr 19 21:13:02 1999 Craig Burley <craig@jcb-sc.com> -Sun Jun 28 08:57:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * tree.def (BLOCK): Fix typo in comment. - * configure.in (GCC_NEED_DECLARATIONS): Add strerror, getcwd and - getwd. +1999-04-19 14:51 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * acconfig.m4: Add stubs for NEED_DECLARATION_STRERROR, - NEED_DECLARATION_GETCWD and NEED_DECLARATION_GETWD. + * cpplib.c (output_line_command): Drop CONDITIONAL argument. + We can omit unnecessary line commands if file_change == + same_file and pfile->lineno != 0. All callers changed. + (cpp_get_token [case '\n']): Don't bump pfile->lineno if + CPP_OPTIONS (pfile)->no_line_commands is set. + * cpplib.h: Fix prototype of output_line_command. - * cccp.c: Remove strerror()/sys_nerr/sys_errlist decls. - (my_strerror): Add prototype and make it static. +1999-04-18 17:46 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * collect2.c: Likewise. + * cppfiles.c (find_position, read_and_prescan): Use `unsigned + long' variables consistently to count line and column numbers. - * cpplib.c: Likewise. +Sun Apr 18 15:50:33 EDT 1999 John Wehle (john@feith.com) - * gcc.c: Likewise, but keep `my_strerror' extern. + * output.h (current_function_is_leaf, + current_function_uses_only_leaf_regs): Declare. + * function.c (current_function_is_leaf, + current_function_uses_only_leaf_regs): Define. + (init_function_start): Initialize current_function_is_leaf + and current_function_uses_only_leaf_regs. + * final.c (leaf_function): Don't define. + (final_start_function): Replace uses of leaf_function with + current_function_uses_only_leaf_regs. + * toplev.c (rest_of_compilation): Set current_function_is_leaf + prior to invoking local register allocation. + (rest_of_compilation): Replace uses of leaf_function with + current_function_uses_only_leaf_regs. + * dbxout.c (dbxout_symbol, dbxout_parms): Likewise. + * dwarf2out.c (add_location_or_const_vaule_attribute): Likewise. + * dwarfout.c (add_location_or_const_value_attribute): Likewise. + * sdbout.c (sdbout_symbol): Likewise. + * sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. + * sparc.c (eligible_for_epilogue_delay, output_return, + sparc_return_peephole_ok): Likewise. + * sparc.md (leaf_function attribute, untyped_return): Likewise. + * i386.c (ix86_compute_frame_size): Don't align the stack + for leaf functions which don't allocate any stack slots. + * tm.texi: Update documentation. - * protoize.c: Likewise. +Sun Apr 18 02:15:09 PDT 1999 Jeff Law (law@cygnus.com) - * pexecute.c (my_strerror): Add argument to prototype. + * version.c: Bump for snapshot. - * system.h: Add prototypes for getcwd, getwd and strerror. Add - extern decls for sys_nerr and sys_errlist. Make abort decl - explicitly extern. +Sun Apr 18 00:08:45 1999 Richard Henderson <rth@cygnus.com> - * getpwd.c: Remove decls for getwd and getcwd. + * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change -- + make sure FP_BASE_P registers are only used with an integer. -Sun Jun 28 02:11:16 PDT 1998 Jeff Law (law@cygnus.com) +Sat Apr 17 22:54:17 1999 Richard Henderson <rth@cygnus.com> - * version.c: Bump for snapshot. + * alpha.h (REG_OK_FP_BASE_P): New macro. + (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Use it. + * alpha.md (adddi3+1): New insn to handle large constants off + the soft frame pointer. + (adddi3+2): Don't split soft frame pointer or arg pointer additions. -Sat Jun 27 23:32:25 1998 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize): Use side_effects_p & may_trap_p instead - of rtx_unsafe_p. Use modified_between_p instead of reg_set_between_p. - Allow FP moves to be optimized. - (rtx_unsafe_p): Delete. - -Sat Jun 27 23:02:04 1998 Richard Henderson <rth@cygnus.com> - - * objc/archive.c: Remove <string.h> prototypes. - -Sat Jun 27 22:37:05 1998 Jeffrey A Law (law@cygnus.com) - - * tm.texi (NEED_MATH_LIBRARY): Document new target macro. - - * Makefile.in (gencheck): Remove $(TREE_H) dependency. - -Sat Jun 27 20:20:00 1998 John Carr <jfc@mit.edu> - - * dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition. - * dsp16xx.c (next_cc_user_unsigned): New function. - Remove save_next_cc_user_code. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - * dsp16xx.md: Call next_cc_user_unsigned instead of using - save_next_cc_user_code. - Use gen_rtx_* functions instead of gen_rtx. - -Sat Jun 27 20:18:34 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.h: Add trap_comparison_operator to PREDICATE_CODES. - -Sat Jun 27 16:45:42 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (count_reg_sets): New function. - (count_reg_sets_1, count_ref_references): Likewise. - (recompute_reg_usage): Likewise. - * rtl.h (recompute_reg_usage): Add prototype. - * toplev.c (rest_of_compilation): Call recompute_reg_usage just - before local register allocation. - -Sat Jun 27 13:15:30 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (negsf, negdf): Revert Jan 22 change. - -Sat Jun 27 07:35:21 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mkstemp.c: Include gansidecl.h. Rename uint64_t to gcc_uint64_t. - (mkstemp): Remove size specifier for variable `letters'. Call - gettimeofday, not __gettimeofday. - - * Makefile.in (EXPR_H): New dependency variable. - (c-typeck.o): Depend on $(EXPR_H) instead of expr.h. - (c-iterate.o): Likewise. - (gencheck): Depend on $(TREE_H) instead of tree.h, etc. - (stor-layout.o): Depend on $(EXPR_H) instead of expr.h. - (toplev.o): Likewise. Also depend on $(RECOG_H) instead of recog.h. - (varasm.o): Depend on $(EXPR_H) instead of expr.h. - (function.o): Likewise. - (stmt.o): Likewise. - (except.o): Likewise. - (expr.o): Likewise. - (calls.o): Likewise. - (expmed.o): Likewise. - (explow.o): Likewise. - (optabs.o): Likewise. - (sdbout.o): Likewise. - (dwarf2out.o): Likewise. - (emit-rtl.o): Likewise. - (integrate.o): Likewise. - (jump.o): Likewise. - (cse.o): Likewise. - (gcse.o): Likewise. Also depend on $(BASIC_BLOCK_H) instead of - basic-block.h. - (loop.o): Depend on $(EXPR_H) instead of expr.h. - (unroll.o): Likewise. - (combine.o): Likewise. - (reload.o): Likewise. - (reload1.o): Likewise. - (caller-save.o): Likewise. - (reorg.o): Likewise. - (alias.o): Don't depend on insn-codes.h. - (regmove.o): Depend on $(RECOG_H)/$(EXPR_H) instead of recog.h/expr.h. - (insn-emit.o): Depend on $(EXPR_H) instead of expr.h. - (insn-opinit.o): Likewise. - -Sat Jun 27 01:35:14 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp - instead of mktemp. - * gcc.c (MKTEMP_EACH_FILE): Define. - (main): No need to call choose_temp_base if we are going to - use choose_temp_base to create each file later. - * mkstemp.c: New file. Adapted from glibc. - * Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o - (mkstemp.o): Add dependencies. - - * configure.in (gettimeofday): Check for its existance. - * config.in (HAVE_GETTIMEOFDAY): Define. - * configure: Rebuilt. +Sun Apr 18 17:24:10 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -1998-06-26 Michael Meissner <meissner@cygnus.com> + * config/c4x/c4x.c (legitimize_operands): Use rtx_cost + to determine if it is worthwhile forcing a constant into a register. + * config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535 + used with a logical and or an integer value of 16 or 24 used with + a right shift has zero cost on the C40. - * rs6000.md (ne 0, non power case): Add missing & constraint. - Name pattern ne0. - (negative abs insns): Add pattern names. +Sat Apr 17 21:30:11 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Fri Jun 26 17:36:42 1998 Dave Love <d.love@dl.ac.uk> + * gcse.c (compute_local_properties): If setp is nonzero, clear + TRANSP instead of setting it to all ones. - * Makefile.in (install-info): Run install-info program in separate - loop. +Sat Apr 17 21:10:10 1999 Jan Hubicka <hubicka@freesoft.cz> -Fri Jun 26 16:03:15 1998 Michael Meissner <meissner@cygnus.com> + * i386.c (i386_preferred_stack_boundary_string): New global variable. + (i386_preferred_stack_boundary): New global variable. + (override_functions): Set it. Tidy option setting code. + * i386.h (TARGET_OPTIONS): New command line option. + (i386_preferred_stack_boundary_string): Declare it. + (i386_preferred_stack_boundary): Likewise. + (PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary. - * haifa-sched.c (schedule_block): Add hooks for the machine - description to reorder the ready list, and update how many more - instructions can be issued this cycle. - * tm.texi (MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Document. - -Fri Jun 26 11:54:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P): - Explicitly mark the constant being compared against as unsigned. - * config/sparc/sparc.c (sparc_select, cpu_default, cpu_table): - Fully initialize final members. - (mem_aligned_8): Explicit init of offset to zero. - (output_function_prologue): Explicit init of n_regs to zero. - (output_function_epilogue): Likewise, and mark arg size as - unused. - (init_cumulative_args): Mark libname and indirect as unused. - (function_arg_pass_by_reference): Likewise for cum and named. - (sparc_builtin_saveregs): Likewise for arglist. - (sparc_flat_eligible_for_epilogue_delay): Likewise for slot. - -Fri Jun 26 06:58:54 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Only need a secondary reload - if reloading a MEM. - - * arm.h (arm_adjust_cost): Renamed bogus prototype from - arm_adjust_code. - (bad_signed_byte_operand): Add prototype. - * arm.c (arm_override_options): Make I unsigned. - (const_ok_for_arm): Add casts to the constants. - (load_multiple_operation): Don't redeclare elt in sub-block. - (arm_gen_movstrqi): Delete external declaration of optimize. - (gen_compare_reg): Declare parameter fp. - - * arm.c (final_prescan_insn): Only initialize scanbody if the insn - has a pattern. - -Fri Jun 26 09:31:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alpha.c: Include system.h and toplev.h. - (cint8_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (const48_operand): Likewise. - (mode_width_operand): Likewise. - (mode_mask_operand): Likewise. - (mul8_operand): Likewise. - (current_file_function_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (any_memory_operand): Likewise. - (alpha_return_addr): Likewise for parameter `frame'. - (alpha_builtin_saveregs): Likewise for parameter `arglist'. - (vms_valid_decl_attribute_p): Likewise for parameters `decl' and - `attributes'. - (alpha_start_function): Likewise for parameter `decl'. Use - HOST_WIDE_INT_PRINT_DEC in call to fprintf. Fix various format - specifiers. Remove unused variables `lab' and `name'. - (alpha_end_function): Mark parameter `decl' with ATTRIBUTE_UNUSED. - (check_float_value): Likewise for parameter `overflow'. - (alpha_need_linkage): Likewise for parameters `name' and `is_local'. - - * alpha.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define as - taking an argument. - (ASM_OUTPUT_SHORT): Cast argument to `int' in call to fprintf. - (ASM_OUTPUT_CHAR): Likewise. - (ASM_OUTPUT_BYTE): Likewise. - (PRINT_OPERAND_ADDRESS): Use HOST_WIDE_INT_PRINT_DEC in call to - fprintf. - (PUT_SDB_EPILOGUE_END): Mention argument `NAME' in definition. - Add prototypes for functions in alpha.c. - - * alpha.md (ashldi3): Add default case in switch. - -1998-06-26 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (gcc_version, gcc_version_trigger): New macros. - (version): Initialize from $(gcc_version). - - * configure.in (version): Rename to gcc_version. - (gcc_version_trigger): New variable; call AC_SUBST for it and - emit it into the generated config.status. - * configure: Regenerate. +Sat Apr 17 19:22:38 1999 Jan Hubicka <hubicka@freesoft.cz> -Thu Jun 25 12:47:41 1998 Mark Mitchell <mark@markmitchell.com> + * i386.c (k6_cost): Take into account the decoding time. - * fold-const.c (make_range): Don't go looking at TREE_OPERANDs of - nodes that are not expressions. +Sat Apr 17 19:13:22 1999 Donn Terry <donn@interix.com> -Thu Jun 25 15:08:16 1998 Mark Mitchell <mark@markmitchell.com> + * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _. + * i386.c (print_operand): New %_ operator. + (load_pic_register): Proper number of leading _ in GOT literal. + * i386.md (prologue_get_pc_and_set_got): Likewise. + * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise. - * invoke.texi (-fstrict-aliasing): Document. - * rtl.texi (MEM_ALIAS_SET): Document. +Sat Apr 17 19:13:07 1999 Richard Henderson <rth@cygnus.com> - * flags.h (flag_strict_aliasing): Declare. - * toplev.c (flag_strict_aliasing): Define. - (f_options): Add -strict-aliasing. - (main): Set flag_strict_aliasing if -O2 or higher. + * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of + emit_move_insn+plus_constant. For NT, don't use the stack probe + loop pointer to allocate stack space. + * alpha.md (adddi3): Always use lda to set the stack pointer. - * tree.h (tree_type): Add alias_set field. - (TYPE_ALIAS_SET): New macro. - (TYPE_ALIAS_SET_KNOWN_P): Likewise. - (get_alias_set): Declare. - * tree.c (lang_get_alias_set): Define. - (make_node): Initialize TYPE_ALIAS_SET. - (get_alias_set): New function. - * print-tree.c (print_node): Dump the alias set for a type. +1999-04-17 20:11 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * c-tree.h (c_get_alias_set): Declare. - * c-common.c (c_get_alias_set): New function. - * c-decl.c (init_decl_processing): Set lang_get_alias_set. + * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c, + haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include + toplev.h for real declaration of trim_filename. + * Makefile.in: Update dependencies. - * expr.c (protect_from_queue): Propogage alias sets. - (expand_assignment): Calculate alias set for new MEMs. - (expand_expr): Likewise. - * function.c (put_var_into_stack): Likewise. - (put_reg_into_stack): Likewise. - (gen_mem_addressof): Likewise. - (assign_parms): Likewise. - * stmt.c (expand_decl): Likewise. - * varasm.c (make_decl_rtl): Eliminate redundant clearing of - DECL_RTL. Calculate alias set for new MEMs. - - * rtl.def (REG): Add dummy operand. - (MEM): Add extra operand to store the MEM_ALIAS_SET. - * rtl.h (MEM_ALIAS_SET): New macro. - (gen_rtx_MEM): Declare. - * emit-rtl.c (gen_rtx_MEM): New function. - * gengenrtl.c (sepcial_rtx): Make MEMs special. - - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro. - (DIFFERENT_ALIAS_SETS_P): Likewise. - (canon_rtx): Propogate the alias set to the new MEM. - (true_dependence): Check the alias sets. - (anti_dependence): Likewise. - (output_dependence): Likewise. - * explow.c (stabilize): Progoate alias sets. - * integrate.c (copy_rtx_and_substitute): Likewise. - * final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P - in an unpredictable state. Propogate alias sets. - * reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which - we have no alias information. - -Thu Jun 25 16:59:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. - (find_all_handler_type_matches): Add function prototype. - * eh-common.h (CATCH_ALL_TYPE): Definition added. - * except.c (find_all_handler_type_matches): Add function to find all - runtime type info in the exception table. - (output_exception_table_entry): Special case for CATCH_ALL_TYPE. - -Thu Jun 25 15:47:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (xcoffout.o): Depend on toplev.h, output.h and dbxout.h. - - * config/fp-bit.c (_fpmul_parts): Move variables `x', `ylow', - `yhigh' and `bit' into the scope in which they are used. - (_fpdiv_parts): Remove unused variables `low', `high', `r0', `r1', - `y0', `y1', `q', `remainder', `carry', `d0' and `d1'. - - * rs6000.c: Move include of output.h below tree.h. Include toplev.h. - (any_operand): Mark unused parameters `op' and `mode' with - ATTRIBUTE_UNUSED. - (count_register_operand): Likewise for parameter `mode'. - (fpmem_operand): Likewise. - (short_cint_operand): Likewise. - (u_short_cint_operand): Likewise. - (non_short_cint_operand): Likewise. - (got_operand): Likewise. - (got_no_const_operand): Likewise. - (non_add_cint_operand): Likewise. - (non_logical_cint_operand): Likewise. - (mask_operand): Likewise. - (current_file_function_operand): Likewise. - (small_data_operand): Likewise for parameters `op' and `mode' but - only when !TARGET_ELF. - (init_cumulative_args): Mark parameters `libname' with - ATTRIBUTE_UNUSED. - (function_arg_pass_by_reference): Likewise for parameters `cum', - `mode' and `named'. - (expand_builtin_saveregs): Likewise for parameter `args'. - (load_multiple_operation): Likewise for parameter `mode'. - (store_multiple_operation): Likewise. - (branch_comparison_operator): Likewise. - (secondary_reload_class): Likewise. - (print_operand): Add parentheses around & operation. - (output_prolog): Mark parameter `size' with ATTRIBUTE_UNUSED. - (output_epilog): Likewise. Cast argument to fprintf to int. - (rs6000_adjust_cost): Mark parameter `dep_insn' with ATTRIBUTE_UNUSED. - (rs6000_valid_decl_attribute_p): Likewise for parameters `decl', - `attributes', `identifier' and `args'. - (rs6000_valid_type_attribute_p): Likewise for parameter `attributes'. - (rs6000_comp_type_attributes): Likewise for parameters `type1' and - `type2'. - (rs6000_set_default_type_attributes): Likewise for parameter `type'. - - * rs6000.h (RTX_COSTS): Add parentheses around & operation. - (toc_section, private_data_section, trap_comparison_operator): Add - prototypes. +Sat Apr 17 14:36:19 1999 Craig Burley <craig@jcb-sc.com> - * dbxout.h (dbxout_parms, dbxout_reg_parms, dbxout_syms): Add - prototypes. + * tree.c (chainon): Check for circularity only if + ENABLE_CHECKING is defined. - * xcoffout.c: Include toplev.h, outout.h and dbxout.h. +1999-04-17 10:15 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * xcoffout.h (stab_to_sclass, xcoffout_begin_function, - xcoffout_begin_block, xcoffout_end_epilogue, - xcoffout_end_function, xcoffout_end_block, - xcoff_output_standard_types, xcoffout_declare_function, - xcoffout_source_line): Add prototypes. + * cccp.c: Make fatal non-static. -Thu Jun 25 09:54:55 1998 Nick Clifton <nickc@cygnus.com> +Sat Apr 17 23:47:24 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM, - noticed by grahams@rcp.co.uk. + * config/c4x/c4x.md (*andqi3_255_clobber,*andqi3_65535_clobber): + New logical and patterns using C40 bit-field insert instructions. + (*lshrqi3_24_clobber,*ashrqi3_24_clobber,*lshrqi3_16_clobber, + *ashrqi3_16_clobber): New shift patterns using C40 bit-field insert + instructions. -Thu Jun 25 11:12:29 1998 Dave Brolley <brolley@cygnus.com> +1999-04-16 22:44 -0400 Zack Weinberg <zack@rabi.columbia.edu> - * gcc.c (default_compilers): Use new | syntax to eliminate - string concatenation. + * system.h: Always prototype abort. Prototype fatal. Define + abort to call fatal, not fprintf/exit. Define a stub macro + for trim_filename. + * toplev.c: Define DIR_SEPARATOR. (trim_filename): New + function. + * toplev.h: Prototype trim_filename, and #undef system.h's stub. -Thu Jun 25 01:00:48 1998 Richard Henderson <rth@cygnus.com> + * gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c, + genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c, + genpeep.c, genrecog.c: Make fatal non-static. + * gcov.c, gengenrtl.c, protoize.c: #undef abort after + including system.h. - * alpha.c (alpha_function_name): Delete. - (alpha_ra_ever_killed): Notice current_function_is_thunk. - (alpha_sa_mask, alpha_sa_size, alpha_does_function_need_gp): Likewise. - (alpha_start_function): Reorg from output_prologue. - (alpha_end_function): Reorg from output_epilogue. - * alpha.h (ASM_DECLARE_FUNCTION_NAME): Call alpha_start_function. - (ASM_DECLARE_FUNCTION_SIZE): New. - (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. - (PROFILE_BEFORE_PROLOGUE): Set. - (ASM_OUTPUT_MI_THUNK): Remove bits now output by start/end_function. - * alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. + * config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code + relating to abort. -Thu Jun 25 01:18:47 1998 John Wehle (john@feith.com) +Sat Apr 17 11:25:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. + * config/c4x/c4x.md (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber): + New patterns to support parallel multiply and load of zero. -1998-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> +Fri Apr 16 01:23:47 1999 Jason Merrill <jason@yorick.cygnus.com> - * expr.c (expand_assignment): Rework address calculation for structure - field members to expose more invariant computations to the loop - optimizer. - (expand_expr): Likewise. + * tree.c (valid_machine_attribute): If we're modifying the + FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl, + update the POINTER_TYPE. -Wed Jun 24 22:44:22 1998 Jeffrey A Law (law@cygnus.com) +Fri Apr 16 00:19:31 1999 Jan Hubicka <hubicka@freesoft.cz> - * local-alloc.c (block_alloc): Do not try to avoid false dependencies - when SMALL_REGISTER_CLASSES is nonzero. + * i386.c (x86_adjust_cost): Move break statement to correct place. -Wed Jun 24 17:55:15 1998 Klaus Kaempf <kkaempf@progis.de> +Thu Apr 15 23:17:33 1999 Jerry Quinn <jquinn@nortelnetworks.com> - * alpha.md (call_vms, call_value_vms): Strip leading * from symbol. + * pa.h (HAVE_PRE_INCREMENT, HAVE_POST_INCREMENT, + HAVE_PRE_DECREMENT, HAVE_POST_DECREMENT): Fix pa_cpu value from + 8000 to PROCESSOR_8000. -Wed Jun 24 16:27:23 1998 John Carr <jfc@mit.edu> +Thu Apr 15 20:46:57 1999 Donn Terry (donn@interix.com) - * expr.c (get_memory_rtx): New function. - (expand_builtin): Call get_memory_rtx for MEM arguments to builtin - string functions. + * expr.c (expand_assignment): Force pointers to proper mode if + POINTERS_EXTEND_UNSIGNED is defined. - * expmed.c (init_expmed): Initialize all elements of *_cost arrays. + * xm-alpha.h (alloca.h): Add Interix to list of special machines + that don't like alloca.h, pending using autoconf results. - * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...). - * expr.c: Likewise. - * explow.c: Likewise. - * combine.c: Likewise. - * reload1.c: Likewise. - * gcse.c: Likewise. + * except.c (start_catch_hadler): Be sure rtime_address is Pmode + if POINTERS_EXTEND_UNSIGNED. + + * except.c (expand_eh_return): Force pointers to proper mode if + POINTERS_EXTEND_UNSIGNED. + +Thu Apr 15 23:13:35 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Wed Jun 24 15:13:01 1998 Dave Brolley <brolley@cygnus.com> + * config/c4x/c4x.h: Tweaked comment formatting. + * config/c4x/c4x.c: Likewise. - * README.gnat: Add patch for new lang_decode_options interface. +Thu Apr 15 02:45:19 1999 Mumit Khan <khan@xraylith.wisc.edu> -Wed Jun 24 09:14:04 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define. + * configure.in: Use. + * configure: Rebuilt. + * acconfig.h (MKDIR_TAKES_ONE_ARG): Add. + * config.in: Rebuilt. + * system.h: Use. - * except.c (start_catch_handler): Do nothing if EH is not on. +Thu Apr 15 01:03:21 1999 Jan Hubicka <hubicka@freesoft.cz> + Jeff Law <law@cygnus.com> -1998-06-24 Manfred Hollstein <manfred@s-direktnet.de> + * i386.md (QImode add pattern): Support lea instruction. + (HImode add pattern): Likewise. + + * i386.md (ashlsi patterns): Call output_ashl instead of output_ashlsi3. + (ashlqi): Use expander, separate LEA and SAL / ADD patterns; call + output_ashl. + (ashlhi): Likewise. + * i386.h (output_ashl): Renamed from output_ashlsi3. + * i386.c (output_ashl): Likewise; support HImode and QImode operands + as well. + + * i386.md (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call + memory_address_displacement_length instead of memory_address_length. + * i386.c (memory_address_info): Renamed from memory_address_length. + Accept new argument DISP_LENGTH. All callers changed. If DISP_LENGTH, + then return the displacement length. Else return length of the + entire memory address. Handle MULT case correctly. + * i386.h (memory_address_info): Update declaration. + + * i386.md (memory_bit_test): Fix paren error. + +Wed Apr 14 21:29:18 1999 Andrew Haley <aph@cygnus.com> + + * flow.c: (make_edges): Always make edges from a basic block + to its exception handlers, even if the block ends with a jump. + +1999-04-14 23:26 -0400 Zack Weinberg <zack@rabi.columbia.edu> + + * graph.c (node_data): Return void. Ignore result of + print_rtl_single. Change caller to match. + * integrate.c (subst_constants): Initialize op0_mode to an + invalid mode, and abort before use if it's still invalid. + (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.) + * objc/objc-act.c (get_objc_string_decl, + build_selector_translation_table, generate_protocol_list, + synth_id_with_class_suffix, build_keyword_selector, + build_selector_expr, gen_declarator): Abort when the tree + structure is corrupted. + +Wed Apr 14 19:57:49 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha interix): Use symbolic names to set + target_cpu_default. + * configure: Rebuilt. - * configure.in (gxx_include_dir): Initialize default value depending on - new flag --enable-version-specific-runtime-libs; remove superfluous - default initialization afterwards. + * explow.c (allocate_dynamic_stack_space): Undo last change. Use + convert_memory_address instead. + +Wed Apr 14 19:42:02 1999 Donn Terry (donn@interix.com) + + * alpha/lib1funcs.asm: New file. + * alpha/t-interix (lib1funcs.asm): Add to build. + + * explow.c (allocate_dynamic_stack_space): Correctly convert TARGET + to Pmode. + +Wed Apr 14 14:26:36 1999 John Wehle (john@feith.com) + + * i386.md (truncxfdf): Output the template supplied + by output_move_double with the correct operands. + + * i386.md (extendsfdf, extendsfxf, extenddfxf): Use + output_float_extend instead specifying '#' as the template. + * i386.c (output_float_extend): Define. + * i386.h (output_float_extend): Declare. + +Wed Apr 14 10:48:03 1999 Catherine Moore <clm@cygnus.com> + + * config/mips/elf.h, config/mips/elf64.h + (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + (EXTRA_SECTIONS): Define. + (INVOKE__main): Define. + (NAME__MAIN): Define. + (SYMBOL__MAIN): Define. + (EXTRA_SECTIONS_FUNCTIONS): Define. + (SECTION_FUNCTION_TEMPLATE): Define. + (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + (CTOR_LIST_BEGIN): Define. + (CTOR_LIST_END): Define. + (DTOR_LIST_BEGIN): Define. + (DTOR_LIST_END): Define. + (LIB_SPEC): Define. + (STARTFILE_SPEC): Define. + (ENDFILE_SPEC): Define. + * config/mips/linux.h: Undefine all of the above. + * config/mips/rtems64.h: Likewise. + * config/mips/t-r3900: Likewise. + * config/mips/t-elf: New file. + * config/mips/vxworks.h: New file. + * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. + (mips*-*-*elf*): Use t-elf instead of t-ecoff. * configure: Regenerate. -Wed Jun 24 01:32:12 1998 David S. Miller <davem@pierdol.cobaltmicro.com> +Wed Apr 14 09:59:38 1999 Richard Henderson <rth@cygnus.com> - * toplev.c (rest_of_compilation): Revert May 15 change. + * reload1.c (emit_reload_insns): Also find equivalent mems + for subregs of pseudos. -Tue Jun 23 21:27:27 1998 Ken Raeburn <raeburn@cygnus.com> + * alpha.c (aligned_memory_operand): Recognize the output of + LEGITIMIZE_RELOAD_ADDRESS. Examine reg_equiv_memory_loc in + the event of a pseudo. + (unaligned_memory_operand): Likewise. Don't otherwise accept + completely illegal addresses. + (normal_memory_operand): Likewise. Handle subregs of pseudos. + (get_aligned_mem): Revert previous change. Abort if we don't have a + mem. During reload, call find_replacement on all illegal memories. + (get_unaligned_address): Likewise. + * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand + instead of unaligned_memory_operand. + * alpha.md: Revert extra argument to get_aligned_mem. + (reload_inqi): Use any_memory_operand in constraints. Abort if + we're not given some sort of mem. + (reload_inhi): Likewise. + (reload_outqi, reload_outhi): Likewise. - * reload.c (find_reloads): Fix check for failure to match any - alternative, to account for Mar 26 change in initial "best" cost. +Wed Apr 14 09:39:20 1999 Richard Henderson <rth@cygnus.com> -Tue Jun 23 16:44:21 1998 Dave Brolley <brolley@cygnus.com> + * i386.md (neghi): Use the whole register when widening the op. - * cpplib.c (do_line): Typo broke #line directive. - (cpp_message_from_errno): New function. - (cpp_error_from_errno): Call cpp_message_from_errno. - * cpplib.h (cpp_message_from_errno): New function. +1999-04-14 12:37 -0400 Zack Weinberg <zack@rabi.columbia.edu> -Tue Jun 23 13:38:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * cpperror.c, cppexp.c, cpplib.c: Never call abort. + * cpphash.c: Only call abort when we detect corruption of the + malloc arena. + * cppmain.c: Don't define fatal or fancy_abort. - * libgcc2.c (__get_eh_table_version, __get_eh_table_language): New - functions to return exception descriptor information. - (find_exception_handler): Pass match_info field to runtime matcher, - not a descriptor table entry. +Wed Apr 14 09:19:39 1999 Jan Hubicka <hubicka@freesoft.cz> -Tue Jun 23 09:30:58 1998 Dave Love <d.love@dl.ac.uk> + * i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst + requires value to be ready one extra cycle. - * cpp.texi, gcc.texi: Add @dircategory, @direntry meant to - accompany previous Makefile.in (install-info) change. +Wed Apr 14 11:28:34 1999 Dave Brolley <brolley@cygnus.com> -Tue Jun 23 10:06:07 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * config/i386/i386.c (memory_address_length): Add missing parenthesis. - * eh-common.h (struct __eh_info): Remove coerced value field. - * libgcc2.c (find_exception_handler): Don't set coerced_value field. - * except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use - POINTER_SIZE instead of Pmode. - (expand_start_all_catch): Call start_catch_handler() if we are not - using new style exceptions. +Wed Apr 14 13:59:27 1999 Martin von Loewis <loewis@informatik.hu-berlin.de> -Tue Jun 23 06:45:00 1998 Catherine Moore <clm@cygnus.com> + * extend.texi (Deprecated Features): New node. + * invoke.texi (-Wdeprecated): Document. - * varasm.c (assemble_variable): Remove reference to warn_bss_align. +Wed Apr 14 00:18:22 1999 Jan Hubicka <hubicka@freesoft.cz> -Mon Jun 22 23:57:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + * i386.md (SImode logical compare): Avoid outputing non-pariable testw + and testl on Pentium. + (register and memory bit tests): Likewise. + (setcc, normal and reversed conditional branches): Use shorter + sequence for testing flags stored in EAX. - * config/sparc/sparc.md (zero_extendhidi2, extendhisi2, - extendqihi2, extendqisi2, extendqidi2, extendhidi2, adddi3, - subdi3, negdi2, call, call_value, untyped_return, nonlocal_goto, - splits and peepholes): Change remaining generic gen_rtx calls to - specific genrtl ones. - * config/sparc/sparc.c: Likewise. - -Mon Jun 22 22:21:46 1998 Richard Henderson <rth@cygnus.com> + * i386.md (xorsi3): Do not output NOT instrctions on Pentium. + (xorqi3): Likewise. + (xorhi3): Likewise. + (notsi2): Likewise. + (notqi2): Likewise. + (nothi2): Likewise; do not output prefixed opcodes when possible. - * gcc.c (handle_braces): Recognize | between options as an or. + * i386.md (neghi2): Do not output prefixed opcode when possible. + (ashlhi3): Likewise. -Mon Jun 22 23:13:47 1998 John Wehle (john@feith.com) +Wed Apr 14 00:08:46 1999 Richard Henderson <rth@cygnus.com> - * i386/freebsd-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. - * i386/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. + * i386.c (memory_address_length): New function. + * i386.h (memory_address_length): Declare it. - * i386.md (exception_receiver): Define. +Tue Apr 13 22:52:04 1999 Donn Terry (donn@interix.com) + Martin Heller (Ing.-Buero_Heller@t-online.de) -Mon Jun 22 12:01:48 1998 Jim Wilson <wilson@cygnus.com> + * configure.in (interix Alpha): Add. + (winnt Alpha): Use alpha32.h + (interix i386): Parallel Alpha32. + * configure: Rebuilt. - * Makefile.in (PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, - PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): New variables. - (install-common): Use them. + * config/interix.h: Move common elements from i386-interix.h. + * config/i386/i386-interix.h: Delete same. + * config/alpha/alpha-interix.h: New file. - * gcse.c (add_label_notes): New function. - (pre_insert_insn): Call it. - * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and - pass the label to set_label_in_map. + * config/alpha/alpha32.h: New file, part fron win-nt.h. + * config/alpha/win-nt.h: Deletions (-> alpha32.h). + * config/alpha/interix.h: New file -Mon Jun 22 19:01:14 1998 Dave Love <d.love@dl.ac.uk> + * config/alpha/alpha.md (interix): Comment. - * Makefile.in (install-info): Fix typpo in previous change. + * config/alpha/xm-alpha-interix.h: New file. -Mon Jun 22 11:10:00 1998 Catherine Moore <clm@cygnus.com> + * config/alpha/t-interix: New file. - * varasm.c (assemble_variable): Emit alignment warning. + * fixinc/mkfixinc.sh (interix/Alpha): Add. -Mon Jun 22 08:18:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +1999-04-13 Mike Stump <mrs@wrs.com> - * Makefile.in (varasm.o): Depend on sdbout.h. - (sdbout.o): Depend on toplev.h. + * i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks. + (CPP_PREDEFINES, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): likewise. - * collect2.c (scan_prog_file): Cast fprintf argument to `long' and - use %ld specifier. +Tue Apr 13 21:01:36 1999 Jason Merrill <jason@yorick.cygnus.com> - * final.c (shorten_branches): Cast first arg of `bzero' to char *. + * c-common.c (default_valid_lang_attribute): New fn. + (valid_lang_attribute): New callback ptr. + (decl_attributes): Call it. Move init_priority support into + C++ frontend. - * genextract.c (main): When creating insn-extract.c, mark variable - `i' with ATTRIBUTE_UNUSED. +Tue Apr 13 17:47:14 1999 John Wehle (john@feith.com) - * genpeep.c (main): When creating insn-peep.c, mark variables - `insn', `x' and `pat' with ATTRIBUTE_UNUSED. + * i386.md (movdi): Add splitter. - * objc/init.c (__objc_tree_print): Wrap function definition in - macro `DEBUG'. +Wed Apr 14 10:04:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * objc/objc-act.c (encode_array): Cast sprintf argument to `long' - and use %ld specifier. - (adorn_decl): Likewise, twice. + * config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int, + loadqf_int_clobber): Add new patterns with corresponding splitters + to handle moves of floating point values into and out of intager + registers by using memory. - * reload1.c (reload_cse_regs): Cast first arg of `bzero' to char *. + * config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes + other than QFmode and QImode. + (mixed_subreg_operand): New function. + (c4x_emit_move_sequence): If moving a floating point value into or + out of an integer register, use the new patterns storeqf_int_clobber + or loadqf_int_clobber. + (reg_imm_operand, *_reg_operand): Call reg_operand instead of + register_operand. + (reg_operand, src_operand): Disallow operand if it satisifes + mixed_subreg_operand. - * sdbout.c: Include output.h and toplev.h. - (PUT_SDB_INT_VAL): Use HOST_WIDE_INT_PRINT_DEV to print argument - `a'. Cast `a' to HOST_WIDE_INT to force it to always be so. - (PUT_SDB_SIZE): Likewise. + * config/c4x/c4x.h (mixed_subreg_operand): Add prototype. - * sdbout.h (sdbout_mark_begin_function): Add prototype. +Tue Apr 13 14:49:13 1999 Jan Hubicka <hubicka@freesoft.cz> - * stmt.c (check_for_full_enumeration_handling): Cast argument of - `warning' to long and use %ld specifier. + * i386.c (agi_dependent): Handle push operation more correctly. - * toplev.c (main): Likewise for `fprintf'. +Tue Apr 13 14:45:17 1999 Jan Hubicka <hubicka@freesoft.cz> - * toplev.h (output_file_directive): Add prototype. + * i386.md (anddi3): Add % constraint. + (iordi3, xordi3): Likewise. - * unroll.c (unroll_loop): Use HOST_WIDE_INT_PRINT_DEC specifier in - call to `fprintf'. - (precondition_loop_p): Likewise. +Tue Apr 13 14:29:58 1999 Jan Hubicka <hubicka@freesoft.cz> - * varasm.c Include sdbout.h. - (assemble_static_space): Move sometimes-unused variable `rounded' - into the scope in which it is used. - - * mips.c (gpr_mode): Don't say `static' twice. + * i386.md (extendhisi2): Output mov instead of cw instruction for K6 + to improve decoding bandwidth. + * i386.md (extendhiqi2): Likewise. - * cpplib.c (cpp_handle_option): Don't pass unneeded NULL to cpp_fatal. +Tue Apr 13 14:26:31 1999 Jan Hubicka <hubicka@freesoft.cz> - * objc/objc-act.c (init_selector): Hide prototype and definition. + * i386.md (movsf_push): Handle memory to memory case too, new splitter. + (movdf_push, movxf_push): Likewise. + (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove. - * optabs.c (gen_cond_trap): Remove unused variable `icode'. - - * regmove.c (copy_src_to_dest): Likewise for `i'. +Tue Apr 13 14:14:06 1999 Jan Hubicka <hubicka@freesoft.cz> - * mips-tfile.c (add_local_symbol): Cast width format specifier to int. - (add_ext_symbol): Likewise. - (add_file): Likewise. - (parse_def): Likewise. - (write_varray): Use HOST_PTR_PRINTF to print a pointer. Fix - remaining format specifiers and arguments. - (write_object): Likewise, several times. - (read_seek): Likewise. - (out_of_bounds): Likewise. - (allocate_cluster): Likewise. - (xmalloc): Likewise. - (xcalloc): Likewise. - (xrealloc): Likewise. - (xfree): Likewise. - - * mips-tdump.c (print_symbol): Likewise. - -Sun Jun 21 17:05:34 1998 Dave Love <d.love@dl.ac.uk> + * i386.md: Do not output mov %0,reg on AMD K6. - * Makefile.in (install-info): Use install-info program if - available, per GNU standard. +Tue Apr 13 12:14:07 1999 Dave Brolley <brolley@cygnus.com> -Sun Jun 21 18:56:44 1998 Jeffrey A Law (law@cygnus.com) + * cppinit.c (cpp_start_read): Fix buffer overwrite. + * Makefile.in (cppinit.o): Typo in dependencies. - * invoke.texi: Document -mrelax for the mn10300 and mn10200. +Tue Apr 13 05:04:59 1999 Richard Earnshaw (rearnsha@arm.com) - * basic-block.h (init_regset_vector): Delete declaration. - * flow.c (init_regset_vector): Make it static and add a prototype. + * arm.h (function prototypes for arm.c): Ifdef these out if + HAVE_CONFIG_H is not defined. - * bitmap.h (debug_bitmap): Declare. +Tue Apr 13 02:11:11 1999 Jeffrey A Law (law@cygnus.com) - * haifa-sched.c (debug_ready_list): Make static. + * pa.c: Avoid Using immediate zero for register zero. + * pa.md: Likewise. - * toplev.h (fancy_abort): Declare. + * pa.c (print_operand, case 'f'): New case for FP register or 0.0. + (print_operand, case 'r'): Use %r0 for zero value. + * pa.md (move patterns, fcmp patterns): Use new %f output arg. -Sun Jun 21 18:30:13 1998 H.J. Lu (hjl@gnu.org) + * pa.c: Use a register name, not a raw immediate in branch, + compare/clear, sub, subb, uaddcm and vshd instructions. + * pa.md: Likewise. - * basic-block.h (init_regset_vector): New declaration. + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. - * Makefile.in (sdbout.o): Add insn-codes.h to dependency. + * pa.c: Use a register name, not a raw immediate in "bv" instructions. + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. - * global.c: Include machmode.h amd move hard-reg-set.h before - rtl.h. + * pa.c: Remove space register specification in memory addresses, + except where it is actually needed. + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. - * haifa-sched.c (insn_issue_delay, birthing_insn_p, - adjust_priority, print_insn_chaino): New declaration. - (schedule_insns): Remove declaration. - (init_target_units, get_visual_tbl_length, - init_block_visualization): Add prototype. +Mon Apr 12 23:34:35 1999 Jeff Law (law@cygnus.com) - * integrate.c (pushdecl, poplevel): Remove declaration. + * version.c: Bump for snapshot. - * rtl.h (expand_expr): Remove declaration. +Mon Apr 12 14:58:30 1999 Jan Hubicka <hubicka@freesoft.cz> - * loop.c (oballoc): Remove declaration. - (replace_call_address): Add prototype. + * reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE. -Sun Jun 21 01:08:17 PDT 1998 Jeff Law (law@cygnus.com) +Mon Apr 12 19:15:17 1999 Daniel Jacobowitz <dan@debian.org> - * version.c: Bump for snapshot. + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash. + +Mon Apr 12 19:11:38 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix + -mno-nop-fun-dllimport and minor doc fixes. + (STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0. + (LINK_SPEC): Add -mconsole support. + * i386/mingw32.h (LIB_SPEC): Make libraries consistent with + Cygwin. + (LINK_SPEC): Remove. Use Cygwin's version. + (MATH_LIBRARY): Make it null. + * i386/crtdll.h (MATH_LIBRARY): Likewise. + +Fri Apr 12 15:00:52 1999 Stan Cox <scox@cygnus.com> + + * c-decl.c (c_decode_option, start_decl, start_function, + finish_function) : Recognize -Wno-main so we can avoid warnings. + +1999-04-12 Zack Weinberg <zack@rabi.columbia.edu> + + * cpphash.c (collect_expansion, macroexpand, + push_macro_expansion): Make the escape character in macro + buffers '\r', not '@'. Remove code to protect literal + occurences of the escape character; '\r' cannot appear + in a macro buffer unless we put it there. + * cpplib.c (skip_comment, copy_comment, cpp_skip_hspace, + copy_rest_of_line, cpp_get_token, parse_string, + parse_assertion): '\r' might be a backslash-newline marker, or + it might be a macro escape marker, depending on + CPP_BUFFER (pfile)->has_escapes. '@' is not a special + character. + * cpplib.h: Update commentary. + +Mon Apr 12 09:30:03 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (target_fp_name, structure_size_string, arm_cpu_select): + Const-ify. + * arm.c (target_fp_name, structure_size_string): Const-ify. + + * arm.md (reload_inhi, reload_outhi): Make the scratch DImode. + * arm.c (arm_reload_in_hi): Handle cases when the input is still + a pseudo, make use of scratch registers for reloading the address + as appropriate. + (arm_reload_outhi): Similarly for when the output is still a pseudo. + + * riscix.h (SUBTARGET_SWITCHES): Document. + +1999-04-12 Bruce Korb <ddsinc09@ix.netcom.com> + + * fixincludes: + make fixincludes behave like the scripts in fixinc/ + + * Makefile.in( stmp-fixinc ): + ensure the SHELL value is that of the make + + * fixincl/inclhack.tpl: + the file name lists ought to be restricted to "*.h" anyway + C++ files may be named .../[a-z]++/... also + Adding copyright year and attribution to output + + * fixincl/inclhack.def: + fixed broken expression + Clarify a some comments + + * fixincl/fixincl.tpl: + Clarify a some comments + Remove dead template text + Correct the counting of regular expressions + +Mon Apr 12 03:07:44 1999 Richard Henderson <rth@cygnus.com> + + * alpha.c (aligned_memory_operand): Handle out of range stack slots. + Take a new SCRATCH argument for the occasion. Update all callers. + (get_unaligned_address): Abort on out of range stack slots. + * alpha.md (adddi3 splitter): Check s_p_rtx not REGNO. + (reload_inqi): Check for aligned mems before unaligned. + (reload_inhi): Likewise. + +Mon Apr 12 03:11:30 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove + it from the nonlocal_goto_handler_labels list. + * jump.c (delete_insn): Likewise. + (jump_optimize_1): Also recompute LABEL_NUSES when we are just + marking labels. + * rtl.h (remove_node_from_expr_list): Declare. + * rtlanal.c (remove_node_from_expr_list): New function. + +Mon Apr 12 02:37:02 1999 Jan Hubicka <hubicka@freesoft.cz> + + * reg-stack.c: Update comment, include varray.h. + (stack_regs_mentioned_data): New global variable. + (check_stack_regs_mentioned): New function. + (stack_regs_mentioned): New function. + (reg_to_stack): Initialize and free stack_regs_mentioned_data, + use stack_regs_mentioned. + (record_asm_reg_life): Change insn type cache for changed insn. + (record_reg_life): Do not change the insn mode. + (emit_pop_insn): Likewise. + (emit_swap_insn): Likewise. + (move_for_stack_reg): Likewise. + (stack_reg_life_analysis): Use stack_regs_mentioned. + (emit_swap_insn): Likewise. + (subst_stack_regs): Likewise. + (convert_regs): Likewise. + * jump.c (find_cross_jump): Use stack_regs_mentioned. + * rtl.h (stack_regs_mentioned): Declare. -Sun Jun 21 01:16:38 1998 John Wehle (john@feith.com) +Mon Apr 12 00:57:10 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - * i386.c (output_fp_conditional_move): Don't bother handling - (cc_prev_status.flags && CC_NO_OVERFLOW) since the INSN patterns - prevent this from happening. + * integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment. - * i386.md (nonlocal_goto_receiver): Delete. +Sun Apr 11 10:24:18 1999 Mark Mitchell <mark@codesourcery.com> -Sun Jun 21 00:42:20 1998 H.J. Lu (hjl@gnu.org) + * rtl.h (rtx_def): Update documentation for jump and call. - * Makefile.in (crtbeginS.o, crtendS.o): Add -fno-exceptions and - -DCRTSTUFFS_O. - (INSTALL): cd $(srcdir) before make. +Sun Apr 11 07:43:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * flow.c (allocate_for_life_analysis, init_regset_vector): - Remove declaration. + * jump.c (jump_optimize_1): Make the definition static to match + the prototype. - * function.h (get_first_block_beg): New declaration. +Sat Apr 10 22:51:53 1999 Jan Hubicka <hubicka@limax.paru.cas.cz> - * gbl-ctors.h (__do_global_dtors): Add prototype. + * flow.c (life_analysis): New parameter remove_dead_code. + (life_analysis_1): Likewise. + (propagate_block): Likewise; use it. + * output.h: Update prototype. + * toplev.c: Update calls to life_analysis. - * gcov-io.h (__fetch_long): New declaration. - (__store_long): Likewise. - (__read_long): Likewise. - (__write_long): Likewise. +Sat Apr 10 22:12:12 1999 Jan Hubicka <hubicka@freesoft.cz> - * gcov.c (print_usage): New declaration. + * recog.c (constrain_operands): Ignore unary operators when + matching operands. Recognize '5'..'9' as well. - * Makefile.in (c-iterate.o): Depend on insn-codes.h too. +Sat Apr 10 21:53:02 1999 Philipp Thomas (kthomas@gwdg.de) + Richard Henderson <rth@cygnus.com> -Sat Jun 20 00:36:16 1998 Jeffrey A Law (law@cygnus.com) + * configure.in: Set target_cpu_default2 for target_alias k6. + * i386.h (TARGET_SWITCHES): Remove no-<cpu> entries. + (CC1_CPU_SPEC): Likewise. + (CPP_CPU_DEFAULT_SPEC): Streamline definition. Add K6 version. + (CPP_K6_SPEC): New. + (CPP_CPU_SPEC): Add K6 variant. + (EXTRA_SPECS): Likewise. - * calls.c (expand_call): Initialize "src" and "dest". - * stmt.c (expand_return): Likewise. - * expmed.c (extract_split_bit_field): Similarly for "result" - * gcse.c (compute_hash_table): Mark first arg as unused. - * jump.c (jump_optimize): Initialize reversep. - * tree.c (make_node): Initialize length. +Fri Apr 9 11:29:17 1999 Richard Henderson <rth@cygnus.com> - * c-common.c (check_format_info): Initialize length_char and - fci to keep -Wall quiet. + * flow.c (merge_blocks_nomove): Rewrite to properly handle two + blocks that vanish entirely during merging. - * except.c (jumpif_rtx): Put declaration and definition - inside a suitable #ifdef. - (jumpifnot_rtx): Delete dead function. +Sat Apr 10 20:09:55 1999 John Wehle (john@feith.com) - * i386.h (output_int_conditional_move): Declare. - (output_fp_conditional_move): Likewise. - (ix86_can_use_return_insn_p): Likewise. + * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, + floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc, + movxfcc, movdicc): Remove unused register constraints from + the splitters. - * optabs.c (init_traps): Put prototype inside a suitable #ifdef. + * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2, + fixuns_truncxfsi2): Delete. -Sat Jun 20 00:27:40 1998 Graham <grahams@rcp.co.uk> + * reg-stack.c (delete_insn_for_stacker): Ensure that + the only side effects of a PARALLEL are clobbers. + (subst_stack_regs): Handle subst_stack_regs_pat deleting + a PARALLEL. + * i386.md (extendsfdf2, extenddfxf2, + extendsfxf2): Rewrite using a splitter. + * i386.c (output_op_from_reg): Remove. + * i386.h: Likewise. - * alias.c: Include toplev.h - * caller-save.c: Include toplev.h - * combine.c: Include toplev.h - * flow.c Include toplev.h - * global.c: Include toplev.h - * jump.c: Include toplev.h - * local-alloc.c: Include toplev.h - * loop.c: Include toplev.h - * regmove.c: Include toplev.h - * stupid.c: Include toplev.h - * unroll.c: Include toplev.h - * Makefile.in: Add toplev.h dependencies. +Sat Apr 10 13:09:18 1999 Nick Clifton <nickc@cygnus.com> -Fri Jun 19 22:40:25 1998 Jason Merrill <jason@yorick.cygnus.com> + * config/arm/arm.c (di_operand): Allow SUBREGs as well. + (soft_df_operand): Allow SUBREGs as well. - * regmove.c (copy_src_to_dest): Add decl for loop_depth. +Sat Apr 10 06:14:31 1999 Jan Hubicka <hubicka@paru.cas.cz> - * svr4.h (ASM_GENERATE_INTERNAL_LABEL): Cast arg to unsigned. - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA1): Likewise. - Add parens to various macros. + * extend.texi (Assembler Instructions with C Expression Operands): + Document the i386 floating point operands. -Fri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> +1999-04-10 Mike Stump <mrs@wrs.com> - * c-typeck.c (pop_init_level): Warn about implicit zero initialization - of struct members. + * configure.in (*-*-vxworks): Add vxWorks thread support for all + vxWorks targets. + * configure.in (thumb-wrs-xvworks): Add vxWorks support for thumb. + * configure: Rebuilt. -Fri Jun 19 23:06:33 1998 Jason Merrill <jason@yorick.cygnus.com> +Sat Apr 10 06:04:50 1999 Donn Terry (donn@interix.com) + + * i386/t-interix: Use mostly system headers unchanged. + Use system assert.h + * fixinc/fixinc.interix: Ditto (make almost no-op). + * config/x-interix.h (_ALL_SOURCE): add -D + * config/x-interix.h (crti.o): Delete dependency. + * config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping. + * i386/xm-i386-interix.h: New file. + * i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings. + * i386/i386-interix.h: Renamed from interix.h. + * configure.in (interix): Use new files. + * configure: Rebuilt. - * varasm.c (assemble_start_function): Add weak_global_object_name. - * tree.c (get_file_function_name): Use it. +Sat Apr 10 05:25:28 1999 Daniel Jacobowitz <dan@debian.org> + + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions + for -Dunix and -Dlinux, and remove duplicate definition. + Change -Asystem(linux) to -Asystem(posix). + (CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun, + -DSVR4, -D__EXTENSIONS__. + + * rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix, + -Dlinux, -Asystem(linux), and -Asystem(unix). + +Sat Apr 10 05:14:50 1999 Mark Elbrecht <snowball3@usa.net> + + * i386/djgpp.h (SET_ASM_OP): Define. + + * cccp.c (DIR_SEPARATOR): Move to the top of the file. + (is_dir_separator): New function. + (simplify_filename): Use it. + * collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place + of the DIR_SEPARATOR test. + Consider any file starting with a drivename to be absolute. + If the absolute filename test fails and EXECUTABLE_SUFFIX is + defined, append EXECUTABLE_SUFFIX to the file and try again. + * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM + in place of __MSDOS__ and _WIN32. + * cppfiles.c (simplify_pathname): Likewise. + * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a + character is a directory separator. + (find_a_file): Use it. + (convert_filename): Likewise. + (process_command): Likewise. + (do_spec_1): Likewise. + (is_directory): Likewise. + (main): Likewise. + * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is + a directory separator. + (translate_name): Use it. + (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix + warning in block where '/' is changed to DIR_SEPARATOR. + * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'. + (DIR_SEPARATOR_2): New macro. Set to '\'. + (HAVE_DOS_BASED_FILESYS): Define. + * i386/xm-mingw32.h: Updated copyright. Set + DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM. + * i386/xm-os2.h: Likewise. + * winnt/xm-winnt.h: Likewise. + * i386/xm-dos.h: Likewise. Add copyright. + +1999-04-10 Joseph S. Myers <jsm28@cam.ac.uk> + + * pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax. + (TARGET_DEFAULT): Possibly use UNIX syntax. + (TARGET_UNIX_ASM, TARGET_UNIX_ASM_DEFAULT): New macros. + (REGISTER_NAMES): Use "r5" instead of "fp". + (ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any + greater alignment. + * 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler + syntax for 2BSD. + * pdp11.c (output_ascii): Use working syntax for ".byte". + (print_operand_address): Use "*" instead of "@" when using UNIX + assembler syntax. + +Sat Apr 10 03:50:12 1999 Jeffrey A Law (law@cygnus.com) + + * rtl.h (rebuild_jump_labels): Declare. + * jump.c (jump_optimize_1): Renamed from jump_optimize. Make static. + Add new argument MARK_LABELS_ONLY. Quit after mark_all_labels if + requested. + (jump_optimize, rebuild_jump_labels): New wrapper functions for + jump_optimize_1. + * toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of + running the entire jump optimizer. + + * rtl.h (local_alloc): Returns an integer now. + * local-alloc.c (recorded_label_ref): New file scoped variable. + (local_alloc): Initialize recorded_label_ref to zero. Return its + value when local allocation has completed. + (update_equiv_regs); If we create an equivalence for a LABEL_REF, + set recorded_label_ref. + * toplev.c (rest_of_compilation): Run the jump optimizer after + register allocation and reloading if needed. + +Fri Apr 9 21:02:57 1999 Krister Walfridsson (cato@df.lth.se) + + * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo. + * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +1999-04-09 Zack Weinberg <zack@rabi.columbia.edu> + + * cpphash.c (special_symbol): When expanding __LINE__, use the + top file buffer, not the top buffer. + +Fri Apr 9 13:41:04 1999 Jim Wilson <wilson@cygnus.com> + + * Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add + cd .. to TCL_LIBRARY command. + +Fri Apr 9 13:04:52 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if + not already specified. + +Fri Apr 9 11:18:55 1999 Jason Merrill <jason@yorick.cygnus.com> + + * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays + of classes, too. + +Fri Apr 9 10:40:10 1999 Kaveh R. Ghazi <ghazi@snafu.rutgers.edu> + + * rs6000.c (rs6000_override_options, ptt, rs6000_file_start, + rs6000_float_const, rs6000_replace_regno, debug_stack_info, + rs6000_output_load_toc_table, output_prolog, output_epilog): + Const-ify a char*. + (output_mi_thunk): Likewise. Mark parameter `thunk_fndecl' with + ATTRIBUTE_UNUSED. Hide unused variables `r0', `sp', `toc', + `schain', `r12', `buf' and `labelno'. + (output_ascii): Const-ify a char*. + (rs6000_gen_section_name): Initialize variable `last_period'. + (rs6000_adjust_priority): Mark parameter `insn' with + ATTRIBUTE_UNUSED. + (rs6000_trampoline_template, rs6000_dll_import_ref, + rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*. -Fri Jun 19 22:55:14 1998 Jeffrey A Law (law@cygnus.com) + * rs6000.h (offsettable_mem_operand, optimization_options): Add + prototypes. - * except.c (jumpif_rtx): Make static and add prototype. - (jumpifnot_rtx): Likewise. + * rs6000.md (movdi, define_split): Cast a value to HOST_WIDE_INT + when comparing against one. - * README.gnat: Add a build patch from Fred Fish. +Thu Apr 8 19:20:18 1999 Jeffrey A Law (law@cygnus.com) - * c-lang.c (GNU_xref_begin, GNU_xref_end): Deleted. + * expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF): + Do not try to optimize a aggregate address which has VOIDmode. + Mirrors March 23 change to expand_assignment. - * Makefile.in (c-iterate.o): Depend on expr.h. + * flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU + for an edge when tidying an edge which connects consecutive basic + blocks. -Fri Jun 19 20:38:34 1998 H.J. Lu (hjl@gnu.org) + * flow.c (can_delete_label_p): Do not convert a label into a + deleted label here. - * except.h (emit_unwinder, end_eh_unwinder): Removed. + * cse.c (flush_hash_table): New function. + (cse_insn): Flush the hash table when we encounter a volatile asm. + (cse_basic_block): Use flush_hash_table instead of doing it + inline. - * dwarfout.c (getpwd): Add prototype. - (is_pseudo_reg, type_main_variant, is_tagged_type, - is_redundant_typedef): New declaration. - (output_decl): Add prototype for FUNC. - (type_main_variant): Make it static. - (is_tagged_type): Likewise. - (is_redundant_typedef): Likewise. + * reload1.c (reload_cse_regs_1): Flush known register values if + we encounter a volatile asm. - * expr.c (do_jump_by_parts_greater_rtx): Removed. - (truthvalue_conversion): Likewise. + * loop.c (strength_reduce): Re-enable Joern's loop improvements. - * c-iterate.c: Include "expr.h". - (expand_expr): Use proper values when calling the function. +Thu Apr 8 09:37:40 1999 Nick Clifton <nickc@cygnus.com> - * explow.c (emit_stack_save): Add prototype for FCN. - (emit_stack_restore): Likewise. + * config/arm/arm.c (arm_print_operand): Undo previous change - + always print large constants in decimal. - * dwarf2out.c (getpwd): Add prototype. +Thu Apr 8 10:22:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * dwarf2out.h (debug_dwarf, debug_dwarf_die): New declarations. + * configure.in (host_xm_file, build_xm_file): Include hwint.h. + Use case statements instead of "if test -a ... -a ... -a ..." - * c-typeck.c (c_expand_asm_operands): Use proper values when calling - expand_expr. + * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of + HOST_WIDE_INT in #ifdef. - * c-lex.c (yyprint): Add prototype. - (check_newline, build_objc_string): Remove declaration. + * mips.h: Include hwint.h instead of providing definitions for + HOST_WIDE_INT, etc. Wrap uses of HOST_WIDE_INT in #ifdef. - * c-tree.h (comptypes_record_hook): Removed. - (finish_incomplete_decl): New prototype. +Thu Apr 8 06:16:14 1999 John Wehle (john@feith.com) - * alias.c (find_base_value): Add prototype. - (true_dependence): Add prototype for function argument. + * i386.md (truncdfsf2, truncxfsf2, + truncxfdf2): Rewrite using a splitter. - * c-aux-info.c (xmalloc): Remove declaration. +Thu Apr 8 01:26:05 1999 Arg Haas (ahaas@neosoft.com) + Jeffrey A Law (law@cygnus.com) -Fri Jun 19 20:23:05 1998 Robert Lipe <robertl@dgii.com> + * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous + else statement. + * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * i386.c: Include system.h. Remove redundant includes. - (optimization_options): Mark param 'size' with ATTRIBUTE_UNUSED. - (i386_cc_probably_useless_p): Likewise for 'decl', 'attributes', - 'identifier', 'args'. - (i386_valid_type_attribute_p): Likewise for 'attributes'. - (i386_comp_type_attribute_p): Likewise for 'type1', 'type2'. - (function_arg_partial_nregs): Likewise for 'cum', 'mode', 'type', - and 'named'. - (symbolic_operand): Likewise for 'mode'. - (call_insn_operand): Likewise. - (expander_call_insn_operand): Likewise. - (ix86_logical_operator): Likewise. - (ix86_binary_operator_ok): Likewise. - (emit_pic_move): Likewise. - (VOIDmode_compare_op): Likewise. - (is_mul): Likewise. - (str_immediate_operand): Likewise. - (ix86_uary_operator_ok): Likewise for 'code', 'mode', and 'operands'.yy - (asm_output_function_prefix): Likewise for 'name'. - (function_prologue): Likewise for 'file', and 'size'. - (function_epilogue): Likewise. +Wed Apr 7 22:40:19 1999 Jim Wilson <wilson@cygnus.com> -1998-06-19 Jim Wilson <wilson@cygnus.com> + * i960/i960.c (i960_function_prologue): Don't save static chain + pointer. + * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12. + (TRAMPOLINE_TEMPLATE): Likewise. + (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto. + * i960/i960.md (nonlocal_goto): Rewrite. - * loop.h (struct induction): Clarify comment for unrolled field. - * unroll.c (find_splittable_givs): Move set of unrolled field - after address validity check. +Tue Apr 6 17:49:49 1999 Philip Blundell <pb@nexus.co.uk> -Fri Jun 19 18:38:04 1998 Michael Meissner <meissner@cygnus.com> + * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__. - * config/fp-bit.c (INLINE): Only define if not already defined. +Wed Apr 7 14:07:34 1999 Jeffrey A Law (law@cygnus.com) -1998-06-19 Manfred Hollstein <manfred@s-direktnet.de> + * h8300.c (h8300_adjust_insn_length): Also avoid recognizing + ADDR_VEC and ADDR_DIFF_VEC insns. - * Makefile.in (installdirs): Loop over directories in $(libsubdir) - creating probably missing ones, instead of single if statements. + * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize + USE, CLOBBER or SEQUENCE insns. -Fri Jun 19 10:43:52 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid + to account for the uncopied insn that sets cc0 at the end of the loop. - * c-common.c (truthvalue_conversion): Protect side effects in the - expression when splitting a complex value. - * fold-const.c (fold): Likewise. + * unroll.c (copy_loop_body): Always ensure at least two insns + are in the copied loop. -Fri Jun 19 02:31:16 1998 Klaus Kaempf (kkaempf@progis.de) +Wed Apr 7 14:52:18 1999 Catherine Moore <clm@cygnus.com> - * cccp.c (hack_vms_include_specification): rewrite to handle - '#include <dir/file.h>' correctly. + * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P): Define. -Fri Jun 19 02:24:11 1998 H.J. Lu (hjl@gnu.org) +1999-04-07 Bruce Korb <ddsinc09@ix.netcom.com> - * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Defined. + * fixinc/inclhack.tpl & fixincl.tpl: + Remove dynamic content from generated files -Fri Jun 19 02:10:10 1998 John Wehle (john@feith.com) +Wed Apr 7 13:16:22 1999 John Wehle (john@feith.com) - * i386.c (notice_update_cc): Integer conditional moves don't - affect cc0. + * i386.c (output_move_memory): Remove. + * i386.h: Likewise. - * i386.md (movsfcc, movdfcc, movxfcc): Use emit_store_flag - to support LT, LE, GE, and GT signed integer comparisons. - (movsfcc+1, movsfcc+2, movdfcc+1, movdfcc+2, - movxfcc+1, movxfcc+2): Pattern doesn't match if the comparison - is LT, LE, GE, or GT. - (movdicc): Remove code resulting from an earlier patch which - didn't apply correctly. + * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi, + movsf, movdf, movxf, movdi): Check no_new_pseudos instead + of (reload_in_progress | reload_completed). -Fri Jun 19 02:00:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> +Wed Apr 7 03:16:45 1999 Richard Henderson <rth@cygnus.com> - * reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't - consider a MEM in FP mode as equal. + * alpha.c (reg_no_subreg_operand): New function. + * alpha.h (PREDICATE_CODES): Add it. + * alpha.md (floatdi?f patterns): Use it for op1. -Fri Jun 19 01:02:17 1998 Jeffrey A Law (law@cygnus.com) + * alpha.c (alpha_end_function): Don't flag weak functions. - * c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for - duplicate declarations of a function. +Wed Apr 7 02:11:55 1999 Richard Henderson <rth@cygnus.com> -Fri Jun 19 00:33:33 1998 H.J. Lu (hjl@gnu.org) + * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use + copy_to_mode_reg; don't force constants into a register. - * config/float-i386.h: New. +Tue Apr 6 22:55:25 1999 Richard Henderson <rth@cygnus.com> - * configure.in (i[34567]86-*-linux-*): Set float_format to i386. + * toplev.c (compile_file): Typo flow_dump -> flow2_dump. -Thu Jun 18 20:11:00 1998 Jim Wilson <wilson@cygnus.com> +1999-04-06 Joseph S. Myers <jsm28@cam.ac.uk> - * sched.c (schedule_insns): Use xmalloc not alloca for max_uid - indexed arrays. Call free at the end of the function for them. - * haifa-sched.c (schedule_insns): Likewise. + * pdp11.c (simple_memory_operand): Add default case in switch. + * pdp11.h (TARGET_SWITCHES): Add help strings. + (NOTICE_UPDATE_CC): Don't include excess argument to format. + (ASM_OUTPUT_DOUBLE_INT): Remove. -Thu Jun 18 18:16:01 1998 Jim Wilson <wilson@cygnus.com> +Tue Apr 6 22:09:40 1999 Richard Henderson <rth@cygnus.com> - * dwarf2out.c (size_of_string): Do count backslashes. + * expr.c (expand_builtin_setjmp): Put setjmp return label on + nonlocal_goto_handler_labels for flow. -Thu Jun 18 11:43:54 1998 Nick Clifton <nickc@cygnus.com> +Tue Apr 6 22:05:21 1999 Jan Hubicka <hubicka@paru.cas.cz> + Richard Henderson <rth@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. + * flow.c (verify_flow_info): New function. + (find_basic_blocks): Call it if ENABLE_CHECKING. + (merge_blocks): Don't merge if there are non-deletable labels. + * toplev.c (fatal_insn): Allow a printf-style arg list. + * toplev.h (fatal_insn): Update prototype. -Thu Jun 18 17:30:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Tue Apr 6 16:18:58 1999 Jan Hubicka <hubicka@paru.cas.cz> - * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to - RELOAD_FOR_INSN. + * flow.c (split_edge) update correctly flow graph, disable + EDGE_CRITICAL flag on the split edge, update NUSES for new label. -Thu Jun 18 09:36:50 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Tue Apr 6 15:47:51 1999 Richard Henderson <rth@cygnus.com> - * Makefile.in (c-lang.o): Depend on output.h. + * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT. + Clear third and following slots, if they exist. - * c-lang.c: Include output.h. +Tue Apr 6 15:45:28 1999 Richard Henderson <rth@cygnus.com> - * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. + * flow.c (create_basic_block): Make sure the bb note is in the block. + (can_delete_note_p): Rename from delete_note_p. + (delete_insn_chain): Preserve undeleteable labels too. + (tidy_fallthru_edge): Use next_real_insn instead of confusing + inline code. - * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. +1999-04-06 Zack Weinberg <zack@rabi.columbia.edu> - * genrecog.c (write_subroutine): When writing insn-recog.c, mark - variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' - with ATTRIBUTE_UNUSED. + * cppexp.c (parse_charconst): Initialize c. + (cpp_parse_expr): Initialize rprio. + * cppfiles.c (merge_include_chains): Initialize prev. + (finclude): Set fp->line_base to fp->buf before returning. + * cpphash.c (macroexpand): Initialize token. + * cppspec.c (lang_specific_driver): Change suff to + const char *const *. - * regmove.c (copy_src_to_dest): Make function static to match its - prototype. +1999-04-06 Zack Weinberg <zack@rabi.columbia.edu> - * reload1.c Include hard-reg-set.h before rtl.h to get macro - HARD_CONST. Include machmode.h before hard-reg-set.h. + * cppinit.c (install_predefs): Delete function. + (cpp_start_read): Don't call install_predefs. + (cpp_handle_option): Remove case 'u' and all refs to + opts->inhibit_predefs. + (print_help): Don't mention -undef. + (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to + match cccp. + * cpplib.h (struct cpp_options): Remove inhibit_predefs + member. - * rtl.h: Prototype `retry_global_alloc' and wrap with macro - HARD_CONST to protect usage of typedef HARD_REG_SET. + * cccp.c (predefs): Delete variable. + (main): Remove case 'u' in argument parse loop, + 'inhibit_predefs' variable, and the code block that would + process CPP_PREDEFINES. + (initialize_builtins): Don't define __OBJC__, the driver will + do that. - * tree.c: Prototype `_obstack_allocated_p'. + * gcc.c (default_compilers): Remove -undef from all specs that + invoke a C preprocessor. + * ch/lang-specs.h: Likewise. + * cp/lang-specs.h: Likewise. + * f/lang-specs.h: Likewise. + * objc/lang-specs.h: Likewise. - * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro - BSS_SECTION_ASM_OP. +Mon Apr 5 11:55:31 1999 Donn Terry (donn@interix.com) -Thu Jun 18 09:20:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch. - * pa.c: Include system.h and toplev.h. Remove redundant code. - (call_operand_address): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_operand): Likewise. - (symbolic_memory_operand): Likewise. - (pic_label_operand): Likewise. - (fp_reg_operand): Likewise. - (pre_cint_operand): Likewise. - (post_cint_operand): Likewise. - (ireg_or_int5_operand): Likewise. - (int5_operand): Likewise. - (uint5_operand): Likewise. - (int11_operand): Likewise. - (uint32_operand): Likewise. - (ior_operand): Likewise. - (lhs_lshift_cint_operand): Likewise. - (pc_or_label_operand): Likewise. - (legitimize_pic_address): Likewise. - (hppa_legitimize_address): Likewise for parameter `old'. - (output_block_move): Likewise for parameter `size_is_constant'. - (output_function_prologue): Likewise for parameter `size'. - (output_function_epilogue): Likewise. - (return_addr_rtx): Likewise for parameter `count'. - (output_mul_insn): Likewise for parameter `unsignedp'. - (hppa_builtin_saveregs): Likewise for parameter `arglist'. - (output_bb): Likewise for parameter `operands'. - (output_bvb): Likewise. - (function_label_operand): Likewise for parameter `mode'. - (plus_xor_ior_operator): Likewise. - (shadd_operand): Likewise. - (non_hard_reg_operand): Likewise. - (eq_neq_comparison_operator): Likewise. - (movb_comparison_operator): Likewise. - (pa_combine_instructions): Likewise for parameter `insns'. +Mon Apr 5 11:51:38 1999 Jeffrey A Law (law@cygnus.com) - * pa.h: Add prototypes for functions `output_deferred_plabels', - `override_options', `output_ascii', `output_function_prologue', - `output_function_epilogue', `print_operand', - `symbolic_expression_p', `reloc_needed', `compute_frame_size', - `hppa_address_cost', `and_mask_p', `symbolic_memory_operand', - `pa_adjust_cost', `pa_adjust_insn_length' and - `secondary_reload_class'. + * m68k.md (movdf): Hide GPR sources & destinations from regclass. -Wed Jun 17 22:28:48 1998 Jason Merrill <jason@yorick.cygnus.com> +Mon Apr 5 09:54:42 1999 Jeff Law (law@cygnus.com) - * configure.in: Don't turn on collect2 unconditionally. + * version.c: Bump for snapshot. -Wed Jun 17 20:20:48 1998 Mark Mitchell <mark@markmitchell.com> +Mon Apr 5 05:55:15 1999 Bruce Korb <ddsinc09@ix.netcom.com> - * cse.c (cse_basic_block): Don't include NOTE insns in the count - that is used to decide whether or not it is time to erase the - equivalence table. + * fixincl.tpl: Separate "-e" from its argument, a la + the Sat Apr 3 17:05:13 1999 fix. + * genfixes: Ensure that the server shell is _NOT_ csh. -Wed Jun 17 18:30:43 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> +Mon Apr 5 03:52:30 1999 Jeff Law (law@cygnus.com) - * rs6000/linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define to zero. + * version.c: Bump for snapshot. -Wed Jun 17 19:05:03 1998 John Carr <jfc@mit.edu> +Mon Apr 5 04:47:14 1999 Jeffrey A Law (law@cygnus.com) - * haifa-sched.c (haifa_classify_insn): TRAP_IF is risky. - (sched_analyze_2): Allow scheduling TRAP_IF. + * i386.c (x86_double_with_add): Turn off for Pentium and PPro. + (small_shift_operand, output_ashlsi3): New functions. + * i386.h (small_shift_operand, output_ashlsi3): Declare. + * i386.md (ashlsi3): Simplify ahlsi3 patterns. Remove splitters + that are no longer needed. - * reorg.c (mark_referenced_resources): Examine operands of TRAP_IF. +Sun Apr 4 04:05:04 1999 Jeffrey A Law (law@cygnus.com) - * rtl.h (TRAP_CODE): New macro. + * stmt.c (expand_loop_end): When copying the loop exit test, + do not walk into a nested loop. - * rtl.def (TRAP_IF): Change second operand type to rtx. +Sun Apr 4 00:14:54 1999 Jeffrey A Law (law@cygnus.com) - * optabs.c (gen_cond_trap): New function. - (init_traps): New function. - (init_optabs): Call init_traps. - * expr.h: Declare gen_cond_trap. + * fixinc/hackshell.tpl: Skip links to directories, to avoid + removing them. + * fixinc/inclhack.tpl: Likewise. + * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - * jump.c (jump_optimize): Optimize jumps to and around traps. +Sat Apr 3 23:46:13 1999 David Edelsohn <edelsohn@gnu.org> - * sparc.md: Define trap instructions. + * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3, + movsi_got, movsi, movsf): Use no_new_pseudos. + * rs6000.c (rs6000_got_register): Likewise. + (offsettable_mem_opereand): Use || not |. - * rs6000.md: Define trap instructions. - * rs6000.c (print_operand): New code 'V' for trap condition. - (trap_comparison_operator): New function. +Sat Apr 3 22:02:56 1999 Jeffrey A Law (law@cygnus.com) - * m88k.md: Update use of TRAP_IF. + * acconfig.h (ENABLE_CHECKING): Remove redundant #undef. + * config.in: Rebuilt. - * tree.h (enum built_in_function): New function code BUILT_IN_TRAP. - * c-decl.c (init_decl_processing): New builtin __builtin_trap. - * expr.c (expand_builtin): Handle BUILT_IN_TRAP. +Sat Apr 3 16:22:59 1999 Toshiyasu Morita (tm@netcom.com) - * expr.c (expand_builtin): Error if __builtin_longjmp second argument - is not 1. + * gcc.texi: Add info on regmove pass. -Wed Jun 17 15:20:00 PDT 1998 Catherine Moore <clm@cygnus.com> + * regmove.c (fixup_match_1): Consistently evaluate + HAVE_POST_INCREMENT and HAVE_POST_DECREMENT. - * reload1.c (spill_hard_reg): Check mode of register when - spilling from scratch_list. - -Wed Jun 17 16:25:38 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) +Sat Apr 3 19:21:05 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * except.c (add_new_handler): fix bug in finding last region handler. - * libgcc2.c (find_exception_handler): Pass exception table pointer - to runtime type matcher, not the match info field. + * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep + instead of test and sed to check whether they're GNU programs. + * configure: Rebuilt. -Wed Jun 17 15:57:48 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) +Sat Apr 3 17:57:35 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * eh-common.h (struct eh_context): Add comment for hidden use of - field dynamic_handler_chain. - * except.c (get_dynamic_handler_chain): Comment on, and use the - correct offset of the dynamic_handler_chain field. + * Makefile.in (install-headers-tar, install-headers-cpio): Avoid + problems with CDPATH. + Reported by Ralf Canis <canis@bigfoot.com> -1998-06-17 12:46:56 1998 Jim Wilson <wilson@cygnus.com> +Sat Apr 3 13:50:16 1999 Jeffrey A Law (law@cygnus.com) - * mips/iris6.h (LINK_SPEC): Add -woff 131. + * fixinc.x86-linux-gnu: Deleted. -1998-06-17 Jason Merrill <jason@yorick.cygnus.com> +Sat Apr 3 17:05:13 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * dwarf2out.c: Disable EH_FRAME_SECTION if we don't have .init. + * inclhack.tpl: Insert spaces between `sed -e' and '...'. + Reported by Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Regen. - * configure.in: Don't disable collect2 when we have GNU ld. +Sat Apr 3 14:54:46 1999 Craig Burley <craig@jcb-sc.com> -Wed Jun 17 08:38:13 1998 Jeffrey A Law (law@cygnus.com) + * tree.def (BLOCK): Fix typo in comment. - * fold-const.c (make_range): Do not widen the type of the expression. +Sat Apr 3 00:53:29 1999 John Wehle (john@feith.com) - * expr.c (check_max_integer_computation_mode): New function. - (expand_expr): Avoid integer computations in modes wider than - MAX_INTEGER_COMPUTATION_MODE. - * fold-const.c (fold): Likewise. - * tree.h (check_max_integer_computation_mode): Declare. - * tm.texi (MAX_INTEGER_COMPUTATION_MODE): Document it. + * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, + floatsixf2, floatdixf2): Rewrite using a splitter. - * configure.in (nm): Make a link to "nm" in the build tree too. +Fri Apr 2 17:36:10 1999 Nick Clifton <nickc@cygnus.com> - * mn10300.md (andsi3): Fix typo. + * config/arm/arm.c (arm_print_operand): Print large constants in + hex rather than decimal. -Tue Jun 16 22:58:40 1998 Richard Henderson <rth@cygnus.com> +Fri Apr 2 17:23:58 1999 Nick Clifton <nickc@cygnus.com> - * reload1.c (reload_cse_regs): Call bzero instead of looping. + * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC + and HOST_WIDE_INT_PRINT_HEX to display constants. -Tue Jun 16 18:30:35 1998 Jim Wilson <wilson@cygnus.com> +1999-04-02 Zack Weinberg <zack@rabi.columbia.edu> - * dwarf2out.c (stripattributes): Prepend '*' to the section name. + * config/i386/i386.h: Document all TARGET_SWITCHES or add + explicit null initializer. -Tue Jun 16 16:49:26 1998 Richard Henderson <rth@cygnus.com> + * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES. + * config/i386/dgux.h: Likewise. + * config/i386/osf1elf.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i386/osfrose.h: Likewise. Drop obsolete -mno-ident option. - * alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns. - (output_prologue, output_epilogue): Merge VMS and OSF versions; - Remove anything related to the actual code generation. - (output_end_prologue): New function. - (alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions. - (alpha_does_function_need_gp): Return false for VMS. - (alpha_function_needs_gp): Make static. - (add_long_const): Delete. - (summarize_insn): Don't assume a SUBREG is of a REG. - Prototype all static functions. Rename VMS-specific global - variables vms_*. - * alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0. - (FUNCTION_BOUNDARY): Align to cache line. - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword. - (FUNCTION_END_PROLOGUE): New macro. - * alpha.md (attribute length): New. Mark all insns. - (return_internal, prologue_stack_probe_loop) New patterns. - (prologue, init_fp, epilogue): New patterns. - Disable peepholes. - * linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define. +Fri Apr 2 17:49:44 1999 Toshiyasu Morita <tm@netcom.com> -Tue Jun 16 17:36:35 1998 Dave Brolley <brolley@cygnus.com> + * regmove.c (fixup_match_1): Remove now useless if (0). - * toplev.c (lang_options): Add -trigraphs option for cpplib. +Sat Apr 3 11:37:20 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Tue Jun 16 23:33:24 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, + USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document. + (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation. - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS - is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS - is earlier than RELOAD_FOR_INPUT_ADDRESS. + * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, + USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT, + USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default + definition. -Tue Jun 16 13:15:16 1998 Jim Wilson <wilson@cygnus.com> + * expr.c (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default + definition. - * libgcc1-test.c (memcpy): Define. +Fri Apr 2 16:03:05 1999 Jeffrey A Law (law@cygnus.com) -Tue Jun 16 13:44:02 1998 Michael Meissner <meissner@cygnus.com> + * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted. + * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise. - * genattrtab.c (struct attr_desc): Change int flags to bit - fields. Add bit fields for this being function_units_used - or *_blockage_range attributes. - (write_unit_name): New function to print a function unit name - given unit #. - (expand_units): Indicate whether this is function_units_used or - *_blockage_range attributes. - (write_toplevel_expr): Print function_units_used and - *_blockage_range attributes in a more friendly fashion. - (make_internal_attr): Indicate whether this attribute is either - function_units_used or *_blockage_range. +Fri Apr 2 15:46:25 1999 Donn Terry (donn@interix.com) -Mon Jun 15 17:06:43 1998 Michael Meissner <meissner@cygnus.com> - Jim Wilson <wilson@cygnus.com> + * configure.in: Set and substitute quoted_cc_set_by_configure. + * configure: Rebuilt. + * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``. - * regmove.c (copy_src_to_dest): Do not copy src to dest if either - the source or destination is special. +Fri Apr 2 14:35:45 1999 Stan Cox <scox@cygnus.com> + + * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead + of a hardcoded path for -mno-cygwin. + (mingw_include_path): New. + +1999-04-02 Joseph S. Myers <jsm28@cam.ac.uk> -Mon Jun 15 13:20:33 1998 Jim Wilson <wilson@cygnus.com> + * pdp11.c: Include "recog.h". + (output_function_prologue): Remove unused variables `nregs', `i', + `offset'. + (output_function_epilogue): Remove unused variables + `may_call_alloca', `nregs', `regno', `adjust_fp'. + (output_ascii): Mark as returning void. + (print_operand_address: Likewise. + (simple_memory_operand): Remove unused variables `plus0', `plus1', + `offset'. + * pdp11.h: Declare functions `arith_operand', + `const_immediate_operand', `expand_shift_operand', + `legitimate_address_p', `notice_update_cc_on_set', `output_ascii', + `output_function_epilogue', `output_function_prologue', + `print_operand_address', `register_move_cost', + `simple_memory_operand'. + (HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg. + (REGNO_REG_CLASS): Likewise. + * pdp11.md: Add explicit `int' to `static count' (in two places). + (addhi3): Add explicit braces to avoid ambiguous else. + (addqi3): Likewise. + (ashlhi3): Likewise. - * c-decl.c (shadow_tag_warned): Use specs not declspecs in for loop. +Fri Apr 2 14:17:10 1999 Jerry James <jerry@cs.ucsb.edu> -Mon Jun 15 07:16:29 PDT 1998 Jeff Law (law@cygnus.com) + * gcc/invoke.texi: Add documentation for additional supported + MIPS CPU types, options -mips16 and -mentry, and ABI and ISA + defaults. - * version.c: Bump for snapshot. +Fri Apr 2 14:12:06 1999 John Wehle (john@feith.com) -Sat Jun 13 13:10:40 1998 Krister Walfridsson <cato@df.lth.se> - - * config/sparc/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Undefine before - redefining it. - -Fri Jun 12 18:06:45 1998 Doug Evans <devans@egcs.cygnus.com> - - * m32r/m32r.h (STARTFILE_SPEC): Delete crtsysc.o. - (ENDFILE_SPEC): Add -lgloss. - -Fri Jun 12 14:57:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (large_int): Likewise. - (pc_or_label_operand): Likewise. - (call_insn_operand): Likewise. - (consttable_operand): Likewise. - (m16_uimm3_b): Likewise. - (m16_simm4_1): Likewise. - (m16_nsimm4_1): Likewise. - (m16_simm5_1): Likewise. - (m16_nsimm5_1): Likewise. - (m16_uimm5_4): Likewise. - (m16_nuimm5_4): Likewise. - (m16_simm8_1): Likewise. - (m16_nsimm8_1): Likewise. - (m16_uimm8_1): Likewise. - (m16_nuimm8_1): Likewise. - (m16_uimm8_m1_1): Likewise. - (m16_uimm8_4): Likewise. - (m16_nuimm8_4): Likewise. - (m16_simm8_8): Likewise. - (m16_nsimm8_8): Likewise. - (m16_usym8_4): Likewise. - (m16_usym5_4): Likewise. - (mips_move_1word): Change type of variable `i' from int to size_t. - (mips_move_2words): Likewise. - (output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED. - (function_arg_advance): Use HOST_PTR_PRINTF to print an address. - (function_arg): Likewise. - (function_arg_partial_nregs): Mark parameter `named' with - ATTRIBUTE_UNUSED. - (override_options): Use ISDIGIT instead of isdigit. - (mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED. - (final_prescan_insn): Likewise for parameters `opvec' and `noperands'. - (save_restore_insns): Cast HOST_WIDE_INT arguments passed to - function `fatal' to long before printing. Use - HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several - times in this function. - (function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED. - (function_epilogue): Likewise for parameters `file' and `size'. - Print an int with "%d" not "%ld". - (mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED. - (mips_function_value): Likewise for parameter `func'. - (function_arg_pass_by_reference): Likewise for parameters `cum' - and `named'. - (extend_operator): Likewise for parameter `mode' - (highpart_shift_operator): Likewise. + * i386.md: Delete floating point compare, add, subtract, + multiply, and divide patterns which allowed integer + operands. + * i386.c (output_387_binary_op): Delete unused code. + (output_float_compare): Likewise. - * mips.md (mul_acc_si): Remove unused variable `macc'. +Fri Apr 2 11:53:37 1999 John Wehle (john@feith.com) -Fri Jun 12 09:33:44 1998 Richard Henderson <rth@cygnus.com> + * i386.md (movsf+1, movdf+1, movxf+1): Update constraints + so that SECONDARY_MEMORY_RELOAD is used. Remove dead code. - * fold-const.c (fold): Revert last change. It breaks constant - expressions somehow. +1999-04-02 Bruce Korb <ddsinc09@ix.netcom.com> -Fri Jun 12 10:23:36 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * fixinc/mkfixinc.sh: Added support for x86-interix. + * fixinc/fixinc.interix: Fixincludes script, slight changes + from ./fixinc.interix. Untested (needs interix box). + * fixinc/inclhack.def: + Complete the change to the 'fixinc.tmp' file. + Fixed regex for finding C++ headers. + * fixincl.x, fixincl.sh, inclhack.sh: Regenerate. - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): When comparing complex - prevent operands from being evaluated twice. +Fri Apr 2 11:36:12 1999 Jan Hubicka (hubicka@paru.cas.cz) -Fri Jun 12 00:50:27 1998 Sergey Okhapkin <sos@prospect.com.ru> + * i386.c (print_operand_address, case REG): Do not use ESI addressing + mode for the K6. - * toplev.c (lang_options): Add -remap as a preprocessor option. + * i386.c (print_operand_address, case MULT): Use more efficient + encoding (mult (reg) (const_int 2)). -Fri Jun 12 00:30:32 1998 John Wehle (john@feith.com) +Thu Apr 1 17:01:50 1999 Richard Henderson <rth@cygnus.com> - * i386.md (cmpsi_1, cmphi_1, cmpqi_1): Remove code - which set CC_REVERSED since reload should ensure that - the operands are already the correct type. + Move over patch from Bernd Schmidt from GC branch: + * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function. + (gen_rtx): Call it. Tidy cases. + * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it. + * gengenrtl.c: Add commentary. + (special_rtx): Also match CONST_DOUBLE. + (gencode): Emit call to memset instead of bzero. -Thu Jun 11 17:14:15 1998 Jim Wilson <wilson@cygnus.com> +Fri Apr 2 12:58:26 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * except.c (expand_builtin_eh_stub): Call emit_move_insn rather than - calling gen_rtx_SET. + * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1 + into a register if shift count not constant. + (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1 + is a register. -Thu Jun 11 18:45:49 1998 David Edelsohn <edelsohn@mhpcc.edu> +Fri Apr 2 12:19:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * config/rs6000/x-aix43 (AR): Delete. - (AR_FOR_TARGET_FLAGS): Add -X32_64 here. + * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED + is non-zero. + (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address + register constraints. + (*movhi_clobber+1): Modify splitter pattern to handle destination + register that is used in the source address. + (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands. -Thu Jun 11 16:19:17 1998 David W. Schuler <schuld@btv.ibm.com> +Fri Apr 2 12:16:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * config/i386/aix386ng.h (CPP_SPEC): Remove extraneous quote. + * config/c4x/c4x.h: Added more comments. -Thu Jun 11 12:40:27 1998 Jim Wilson <wilson@cygnus.com> +Fri Apr 2 11:58:22 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * mips.c (override_options): Replace word_mode with explicit - TARGET_64BIT check. + * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode + constants into memory if we get called directly from gen_move_insn + rather than emit_move_insn. + (c4x_legitimize_address): Fix up LABEL_REF addresses. -Thu Jun 11 14:50:02 1998 Michael Meissner <meissner@cygnus.com> +Thu Apr 1 12:04:05 1999 Jim Wilson <wilson@cygnus.com> - * regmove.c (regmove_optimize): If we can't replace the - destination in an insn that sets the source, generate an explicit - move of the source to the destination. - (copy_src_to_dest): New function. - (toplevel): Include basic-block.h + * expr.c (store_field): When check direct_store, assume all complex + modes can be directly stored. - * Makefile.in (regmove.o): Add basic-block.h dependencies. +1999-04-01 Bruce Korb <ddsinc09@ix.netcom.com> -Thu Jun 11 10:30:09 1998 Dave Brolley <brolley@cygnus.com> + * fixinc/genfixes: New shell script that runs autogen + to create the generated files. - * toplev.c (lang_options): Add missing options (nostdinc, idirafter). +1999-04-01 Manfred Hollstein <manfred@s-direktnet.de> -Wed Jun 10 23:39:32 1998 Mark Mitchell <mark@markmitchell.com> + * Makefile.in (cppmain$(exeext)): Depend on intl.o. Link in intl.o. - * rtl.h (rtx_def): Improve documentation. - (MEM_IN_STRUCT_P): Likewise. +Thu Apr 1 03:48:34 1999 H.J. Lu (hjl@gnu.org) -Wed Jun 10 23:23:17 1998 Graham <grahams@rcp.co.uk> + * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT + signed integer comparisons. - * c-decl.c (start_decl): Correct test for -Wmain. + * i386.c (output_int_conditional_move): Use "enum rtx_code" for code + type. - * c-decl.c (grokdeclarator): Remove unused variable "last". + * i386.c (notice_update_cc): No need to check the INT mode for + conditional moves since FLOAT conditional moves don't affect cc0. -Wed Jun 10 14:52:27 1998 Jim Wilson <wilson@cygnus.com> +Thu Apr 1 02:17:18 1999 Jeffrey A Law (law@cygnus.com) - * expr.c (expand_builtin_setjmp): Store const1_rtx in target. - (expand_builtin_longjmp): Abort if value isn't const1_rtx. - Delete code storing value in static_chain_rtx. - (expand_builtin, case BUILT_IN_LONGJMP): Pass NULL_RTX for target - to second expand_expr call. + * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger + string to only match on hpux11. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. -Wed Jun 10 13:08:41 1998 Mark Mitchell <mark@markmitchell.com> +Thu Apr 1 01:09:27 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * mips/mips.c: Remove -mabi=o32 and -mabi=n64. + * fixinc/hackshell.tpl: Complete transition to fixinc.tmp. + * fixinc/inclhack.sh: Rebuilt. -Wed Jun 10 13:41:23 1998 Dave Brolley <brolley@cygnus.com> + * fixinc/inclhack.def: Fix typos in c_asm.h fix. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. - * cppmain.c (fatal): New function. - * configure.in (cpp_main): New configuration variable. - * configure: Regenerated. - * Makefile.in (CCCP): Use a configuration variable to select basex - for cccp. - (cppmain$(exeext)): Add @extra_cpp_objs@. +Wed Mar 31 17:20:11 1999 Jeffrey A Law (law@cygnus.com) -Wed Jun 10 13:07:02 1998 Dave Brolley <brolley@cygnus.com> + * toplev.c (rest_of_compilation): Allow dbr_schedule to write to + the dump file too. - * objc/objc-act.c: Add cpplib declarations. - (lang_decode_option): Initialize cpplib if necessary. - (lang_decode_option): New argc/argv interface. - * tree.h (lang_decode_option): New argc/argv interface. - * toplev.c (lang_options): Add cpp options. - (main): New interface for lang_decode_option. - * gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler - unless -E, -M or -MM is specified. - * cpplib.h (cpp_handle_option): New function. - * cpplib.c (cpp_handle_option): New function. - (cpp_handle_options): Now calls cpp_handle_option. - * c-tree.h (c_decode_option): New argc/argv interface. - * c-lex.c (init_parse): cpplib now initialized in c_decode_option. - * c-lang.c (lang_decode_option): New argc/argv interface. - * c-decl.c: Add cpplib declarations. - (c_decode_option): New argc/argv interface. - (c_decode_option): Call cpp_handle_option. - (c_decode_option): Now returns number of strings processed. +Wed Mar 31 12:32:43 1999 Richard Henderson <rth@cygnus.com> -Wed Jun 10 09:47:13 1998 Richard Earnshaw (rearnsha@arm.com) + * flow.c (find_basic_blocks): New argument `do_cleanup'. + Conditionally call delete_unreachable_blocks. + (free_basic_block_vars): Zero ENTRY/EXIT data. + (allocate_for_life_analysis): Kill. Split into... + (allocate_bb_life_data, allocate_reg_life_data): ... new functions. + (life_analysis_1): Update. + * gcse.c (gcse_main): Update find_basic_blocks call. + * toplev.c (rest_of_compilation): Likewise. + * stupid.c (stupid_life_analysis): Update life data calls. + * rtl.h, output.h: Update prototypes. - * unroll.c (verify_addresses): Use validate_replace_rtx to undo the - changes. Abort if the undo fails. +Wed Mar 31 12:10:00 1999 Bruce Korb <ddsinc09@ix.netcom.com> -1998-06-10 Vladimir N. Makarov <vmakarov@cygnus.com> + * inclhack.def (several): Added spaces in tests to ensure + correct shell syntax. Added c_asm.h fix from fixincludes. + Also corrected the corrected fix to C++ comments :-} - * config/rs6000/rs6000.c (output_prolog): Change locations and - directions of saving and restoring arguments of main on the stack. + * inclhack.tpl: Changed method of traversing symlink trees + so that file name matching will work correctly. -Wed Jun 10 08:56:27 1998 John Carr <jfc@mit.edu> + * fixincl.c, hackshell.tpl: Fallout from above. + * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. - * reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG - for each alternative. Do not replace a CONST_INT with a REG unless - the reg is cheaper. +Tue Mar 30 10:43:49 1999 Philip Blundell <pb@nexus.co.uk> -Wed Jun 10 02:11:55 1998 Jeffrey A Law (law@cygnus.com) + * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if + dbxelf.h was previously included. + (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine. - * decl.c (init_decl_processing): Fix typo. + * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the + definition from arm.h. - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. +Wed Mar 31 10:33:37 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reload.c (find_reloads_toplev): Use gen_lowpart common to convert - between constant representations when we have (SUBREG (REG)) with - REG equivalent to a constant. + * Makefile.in (c-gperf.h): Generate using gperf language 'C', not + 'KR-C', so gperf uses the `const' keyword on strings. -Wed Jun 10 01:39:00 1998 Juha Sarlin <juha@c3l.tyreso.se> + * c-parse.gperf (resword): Const-ify a char*. - * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. +Wed Mar 31 01:49:31 1999 Ian Lance Taylor <ian@zembu.com> -Tue Jun 9 22:05:34 1998 Richard Henderson <rth@cygnus.com> + * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. - * fold-const.c (fold): Even with otherwise constant trees, look for - opportunities to combine integer constants. +Wed Mar 31 00:50:48 1999 Jeffrey A Law (law@cygnus.com) -Wed Jun 3 23:41:24 EDT 1998 John Wehle (john@feith.com) + * system.h (STDERR_FILENO): Fix typo. - * i386.c (notice_update_cc): Clear cc_status.value2 in the - case of UNSPEC 5 (bsf). + * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h. + * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. - * i386.md (movsfcc, movdfcc, movxfcc): The floating point - conditional move instructions don't support signed integer - comparisons. +Tue Mar 30 20:51:40 1999 Mark Mitchell <mark@codesourcery.com> -Tue Jun 9 14:31:19 1998 Nick Clifton <nickc@cygnus.com> + * alias.c (alias_set_compare): Remove. + (record_alias_subset): Use splay_tree_compare_ints instead of + alias_set_compare. + (init_alias_once): Likewise. + * cse.c: Include splay-tree.h. + (reg_qty): Remove. + (reg_tick): Likewise. + (reg_table): Likewise. + (cse_reg_info): New structure. + (cse_reg_info_free_list): New variable. + (cse_reg_info_tree): Likewise. + (cached_regno): Likewise. + (cached_cse_reg_info): Likewise. + (all_minus_one): Remove. + (consec_ints): Likewise. + (GET_CSE_REG_INFO): New macro. + (REG_TICK): Likewise. Use throughout instead of reg_tick. + (REG_IN_TABLE): Likewise. Use throughout instead of reg_in_table. + (REG_QTY): Likewise. Use throughout instead of reg_qty. + (get_cse_reg_info): New function. + (free_cse_reg_info): Likewise. + (new_basic_block): Reinitialize cse_reg_info_tree instead of + reg_tick, all_minus_one, and consec_ints. + * Makefile.in (cse.o): Depend on splay-tree.h - * config/v850/t-v850 (TCFLAGS): Add assembler options to warn of - overlfows. +Tue Mar 30 13:19:36 1999 Jason Merrill <jason@yorick.cygnus.com> - * config/v850/lib1funcs.asm (__return_interrupt): Use 'addi - 16,sp,sp' ratehr than 'add 16,sp'. Patch courtesy of Biomedin - <glctr@abc.it>. + * libgcc2.c (throw_helper): Just return the SP offset, rather than + a whole udata. Include args_size in the offset. + (__throw, __rethrow): Adjust. -Tue Jun 9 16:23:13 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Tue Mar 30 11:39:27 1999 Craig Burley <craig@jcb-sc.com> - * except.c (expand_start_catch): Rename to start_catch_handler. - (expand_end_catch): Delete function. - (expand_end_all_catch): Remove catch status that expand_end_catch - use to do. - * except.h (expand_start_catch): Rename prototype. - (expand_end_catch): Delete prototype. + * extend.texi (Extended Asm): Delete spurious `b' before + `@end example', which was confusing texi2html. -Tue Jun 9 12:57:32 1998 Mark Mitchell <mark@markmitchell.com> +Tue Mar 30 00:26:34 1999 Jason Merrill <jason@yorick.cygnus.com> - * invoke.texi: Add documentation for -mips4 and -mabi=*. + * dwarf2out.c (output_line_info): Don't emit redundant info. + Do start a new row if the file changes and the line # doesn't. -Tue Jun 9 12:12:34 1998 Klaus Kaempf (kkaempf@progis.de) +Mon Mar 29 15:48:39 1999 Jason Merrill <jason@yorick.cygnus.com> - * alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors. - (EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + * invoke.texi (Invoking G++, C++ Dialect Options): Update. -Tue Jun 9 12:10:27 1998 John Carr <jfc@mit.edu> +Mon Mar 29 15:05:39 1999 Richard Henderson <rth@cygnus.com> - * haifa-sched.c (update_flow_info): Use UNITS_PER_WORD, not MOVE_MAX, - as the threshold to permit splitting memory operations. + * except.c (start_dynamic_handler): Force jmp_buf address to + and operand before moving to memory. -Tue Jun 9 12:36:16 1998 Jeffrey A Law (law@cygnus.com) +Mon Mar 29 15:11:10 1999 Craig Burley <craig@jcb-sc.com> - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. + * invoke.texi (Code Gen Options): Attempt to clarify + -fcheck-memory-usage. Minor edits to -fprefix-function-name. - * Makefile.in (LIB2FUNCS_EH): Define. Just "_eh" for now. - (LIBGCC2_CFLAGS): Remove -fexceptions. - (LIB2FUNCS): Remove "_eh". - (libgcc2.a): Iterate over LIB2FUNCS_EH and build everything in - it with -fexceptions. +Mon Mar 29 20:52:47 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * Makefile.in (local-alloc.o): Depend on insn-attr.h. - * local-alloc.c (block_alloc): Avoid creating false - dependencies for targets which use instruction scheduling. + * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to + end of libcall. -Tue Jun 9 02:40:49 1998 Richard Henderson <rth@cygnus.com> +Mon Mar 29 20:35:49 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * mips/elf.h (ASM_DECLARE_OBJECT_NAME): Define. - (ASM_FINISH_DECLARE_OBJECT): Define; - * mips/elf64.h: Likewise. + * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn. -Tue Jun 9 01:08:47 1998 Richard Henderson <rth@cygnus.com> +Mon Mar 29 11:50:34 1999 Jerry Quinn <jquinn@nortelnetworks.com> - * toplev.c (flag_new_exceptions): Remove extraneous `extern'. + * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000 + class machine. + (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise. + (HAVE_POST_DECREMENT): Likewise. -Mon Jun 8 23:24:48 PDT 1998 Jeff Law (law@cygnus.com) +Mon Mar 29 08:24:43 1999 Bruce Korb <korb@datadesign.com> - * version.c: Bump for snapshot. + * fixinc/mkfixinc.sh: Fix portability problems with old shells. -Mon Jun 8 23:24:58 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (mulsidi3): Add !TARGET_POWERPC64 constraint. - (mulsidi3_ppc64): Delete. - -Mon Jun 8 20:57:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (varasm.o): Depend on dbxout.h. - (cse.o): Depend on toplev.h and output.h. - (gcse.o): Depend on output.h. - - * mips.c: Include system.h and toplev.h and remove redundant code. - Include output.h after tree.h so all its prototypes get activated. - * mips.md (table_jump): Remove unused variable `dest'. - - * sparc.h: Add prototype for `v8plus_regcmp_op'. - - * crtstuff.c (fini_dummy, init_dummy): Mark function definitions - with __attribute__ ((__unused__)). - (__frame_dummy): Provide prototype before use, wrap it with - EH_FRAME_SECTION_ASM_OP. - - * cse.c: Move inclusion of <setjmp.h> above local headers. - Include toplev.h and output.h. - - * dbxout.h: Add prototype for `dbxout_begin_function'. - - * final.c (final_scan_insn): Wrap variable `max_skip' in macro - ASM_OUTPUT_MAX_SKIP_ALIGN. - - * gcse.c: Include system.h and output.h. - (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): - Make extern instead of static. - (compute_can_copy): Only declare variables `reg' and `insn' when - AVOID_CCMODE_COPIES is not defined. - (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. - (hash_scan_clobber): Likewise for `x' and `insn'. - (hash_scan_call): Likewise. - (record_last_set_info): Likewise for `setter'. - (mark_call): Likewise for `pat'. - (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. - - * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the - length parameter so that it multiplies the number of elements by - the sizeof(element). - - * output.h: Add prototype for `weak_finish'. - - * recog.h: Likewise for `validate_replace_src'. - - * rtl.h: Likewise for `optimize_save_area_alloca', - `fix_sched_param', `purge_addressof', `gcse_main', - `regmove_optimize', `dbr_schedule', `branch_prob' and - `end_branch_prob'. - - * toplev.h: Likewise for `set_float_handler' and - `output_quoted_string'. - - * varasm.c: Include dbxout.h. - -Mon Jun 8 18:12:06 1998 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of - GP_REG_P. Use gr_regs instead of GR_REGS. - -Mon Jun 8 16:54:12 1998 Ken Raeburn <raeburn@cygnus.com> - Jeff Law <law@cygnus.com> - - * Revamped multiply support for MIPS chips. - * mips.c (extend_operator): New function. - (highpart_shift_operator): Likewise. - * mips.h: Declare new functions. - (PREDICATE_CODES): Add support for new predicates. - * mips.md (mulsi3 expander): Simplify. - (mulsi_mult3): Add another constraint alternative. Support - 3 operand multiply instructions as found on various mips - parts. - (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3. - (mul_acc_si): New pattern and associated splitters. - (mulsidi3 expander): Rework to use mulsidi3_64bit and - mulsidi3_internal. - (umulsidi3): New expander. - (mulsidi3_internal): Accept either sign or zero extended - operands and generate code as appropriate appropriately. - (mulsidi3_64bit): Similarly. - (smulsi3_highpart): Turn into an expander and generate code - to match new patterns. - (umulsi3_highpart): Likewise. - (xmulsi3_highpart_internal): New pattern. - (maddi patterns): Delete. Replace with: - (mul_acc_di, mul-acc_64bit_di): New patterns. - -Mon Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with - flag_new_exceptions runtime flag. - (struct old_exception_table): New struct which represents what - the exception table looks like without the new model. - (NEW_EH_RUNTIME): New value used as a tag in the exception table to - flag that this is a new style table. - * except.h: Remove compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): New prototype. - * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD. - * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD. - * c-decl.c (init_decl_processing): Add new builtin function - __builtin_eh_stub_old. - * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL. - * flags.h (flag_new_exceptions): New runtime flag. - * toplev.c (flag_new_exceptions): Initialize default to 0, - -fnew-exceptions sets to 1. - * except.c (output_exception_table_entry): Output New style exception - identifier into table, and replace compile time flag NEW_EH_MODEL - with runtime flag flag_new_exceptions. - (output_exception_table): Replace compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): Duplicates original functionality of - expand_builtin_eh_stub. - (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL. - * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs. - (old_find_exception_handler): New func, same as find_exception_handler - except it works on the old style exception table. - (__throw): Replace NEW_EH_MODEL. Detect new model based on presence - of identifier in the exception table, and call appropriate routines. - -Mon Jun 8 01:21:13 1998 Jason Merrill <jason@yorick.cygnus.com> - - * function.c: Define current_function_cannot_inline. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - * function.h (struct function): Provide it a home. - * output.h: Declare it. - * integrate.c (function_cannot_inline_p): Check it. + * fixinc/README: Updated for release announcement -Mon Jun 8 10:43:15 1998 Richard Henderson <rth@cygnus.com> +Sun Mar 28 20:26:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * expr.c (force_operand): Detect PIC address loads before - splitting arithmetic. + * recog.h (insn_outfun, insn_operand_predicate): Add prototype + arguments. -Mon Jun 8 09:22:38 PDT 1998 Jeff Law (law@cygnus.com) + * rtl.h (note_stores): Likewise. - * version.c: Bump for snapshot. + * rtlanal.c (note_stores): Likewise. -Mon Jun 8 02:55:56 1998 Graham <grahams@rcp.co.uk> +Sun Mar 28 15:34:28 1999 Richard Henderson <rth@cygnus.com> - * tree.c (tree_class_check): Add braces to eliminate ambigious - else warning. - (tree_check): Likewise. + * varasm.c (output_constant_pool): Always mark the constant pool. -Mon Jun 8 02:49:23 1998 H.J. Lu (hjl@gnu.org) +Sun Mar 28 16:09:01 1999 Jerry Quinn <jquinn@nortelnetworks.com> - * reg-stack.c (subst_stack_regs_pat): Make sure the top of - stack is the destination for conditional move insn. + * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity. Use + shift/mem ops in pa7100LCalu. -Mon Jun 8 01:21:13 1998 Jason Merrill <jason@yorick.cygnus.com> + * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000. + (pa_reorg): Don't call pa_combine_instructions on pa8000. - * tree.h (TREE_VEC_END): Cast unused value to void. +Sun Mar 28 15:27:26 1999 Jeffrey A Law (law@cygnus.com) - * i386.c (print_operand): Use %lx for long operand. + * reload1.c (reload): Remove accidental code duplication. -Mon Jun 8 00:04:07 1998 Richard Henderson <rth@cygnus.com> +Sun Mar 28 12:22:12 1999 Robert Lipe (robertlipe@usa.net) - * alpha.c (summarize_insn): Ignore rtl slot format 'i'. + * i386/sysv5.h: New file to describe UnixWare7/SVR5. + * configure.in (i?86-UnixWare7*-sysv): Use it. + * i386/udk.h: Use sysv5.h. Now uses Dwarf-2. -Sun Jun 7 14:15:45 1998 John Carr <jfc@mit.edu> +Sun Mar 28 01:15:04 1999 Jeff Law (law@cygnus.com) - * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long - conversion functions. + * version.c: Bump for snapshot. -Sun Jun 7 14:02:58 1998 Richard Henderson <rth@cygnus.com> +Sun Mar 28 00:44:27 1999 Jeffrey A Law (law@cygnus.com) - * toplev.c (flag_exceptions): Default to 0. - (compile_file): Remove flag_exceptions == 2 hack. - (main): Call lang_init_options. - * tree.h: Declare it. - * c-lang.c: Implement it. - * objc/objc-act.c: Likewise. - -Sun Jun 7 12:27:30 1998 David Edelsohn <edelsohn@mhpcc.edu> + * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build + one on the fly and do not cache the result. - * rs6000.md (restore_stack_block): Generate MEM and specify mode. - * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode. - * rs6000.c (rs6000_output_load_toc_table): Use fputs. - (output_function_profiler): Use asm_fprintf and fputs. + * gcc.cps, cpp.cps: Delete unwanted files. -Sat Jun 6 12:17:12 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Sat Mar 27 23:37:40 1999 John Wehle (john@feith.com) - * gencheck.c: Remove redundant stdio.h include. Add a definition - of xmalloc for when we are forced to link with alloca.o. + * i386.md (movdicc+3, movdicc+4): Rewrite using split_di. + * i386.c (output_int_conditional_move): Delete unused code. - * reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1' - instead of `1U'. +Sat Mar 27 21:17:36 1999 David Edelsohn <edelsohn@gnu.org> - * fold-const.c (constant_boolean_node): Make definition static to - match the prototype. + * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e. -Fri Jun 5 15:53:17 1998 Per Bothner <bothner@cygnus.com> +Sat Mar 27 16:13:50 1999 Jeffrey A Law (law@cygnus.com) - * gcc.c (lang_specific_pre_link): New LANG_SPECIFIC_DRIVER function. - (lang_specific_extra_outfiles): New LANG_SPECIFIC_DRIVER variable. - (do_spec, input_filename, input_filename_length): Make public. - (main): Adjust outfiles allocation by lang_specific_extra_outfiles. - Call lang_specific_pre_link befor elinking. + * flow.c (mark_used_regs): Improve handling of ASMs. -Fri Jun 5 12:29:28 1998 Jeffrey A Law (law@cygnus.com) +1999-03-26 Zack Weinberg <zack@rabi.columbia.edu> - * haifa-sched.c (rank_for_schedule): For "equally good insns", prefer - the insn which has the most insns dependent on it. + * Makefile.in (xcpp, cppspec.o): New targets. + (CPP_INSTALL_NAME): New macro. + (install-cpp): Install xcpp. Use CPP_INSTALL_NAME. + (all.build, start.encap): Build xcpp. -Fri Jun 5 09:03:22 1998 John Carr <jfc@mit.edu> + * cppspec.c: New file, implements argument filtering for a + user-visible C preprocessor. + * cpp.sh: Removed. - * alias.c (find_base_value): Avoid reading past end of reg_base_value. +Fri Mar 26 20:41:46 1999 Jim Wilson <wilson@cygnus.com> -Fri Jun 5 03:05:34 1998 Richard Henderson <rth@cygnus.com> + * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir. - * alpha.md (insxh-1): New insxl pattern for combine. +Fri Mar 26 16:02:37 1999 Nick Clifton <nickc@cygnus.com> -Fri Jun 5 01:12:15 1998 H.J. Lu (hjl@gnu.org) + * configure.in (arm-*-vxworks*): Just include arm/vxarm.h. + * configure: Regenerate. + * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before + including arm/coff.h - * i386/i386.c (output_fp_conditional_move): New function - to output floating point conditional move. - (output_int_conditional_move): New function to output integer - conditional move. +1999-02-16 Scott Bambrough <scottb@corelcomputer.com> - * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call - output_int_conditional_move () to output int conditional move. - (movsfcc+5, movdfcc+5, movxfcc+5): Call - output_fp_conditional_move () to output floating point - conditional move. + * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if + --enable-threads[={yes,pthreads,posix}] is passed as a command + line parameter to configure. - * i386/i386.c (put_condition_code): In INT mode, check - cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT. - -Thu Jun 4 16:09:51 1998 Dave Brolley <brolley@cygnus.com> - - * dbxout.c (dbxout_type): Output arrays of bits as if - they were bitstrings for Chill - -Thu Jun 4 14:35:27 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * tree.c (get_inner_array_type): New function. - * tree.h (get_inner_array_type): Prototype. - * expr.h (STACK_SAVEAREA_MODE): New macro. - * expr.c (expand_builtin_setjmp): Initialize sa_mode using - STACK_SAVEAREA_MODE. - (expand_builtin_longjmp): Likewise. - * explow.c (emit_stack_save): Likewise. - (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. - - * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. - (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. - * rs6000/aix43.h: New file. - * rs6000/t-aix43: New file. - * rs6000/x-aix41: New file. - * rs6000/x-aix43: New file. - * configure.in (rs6000-ibm-aix*): Use them. - * rs6000/powerpc.h: Delete. - * rs6000/sysv4.h: Move necessary powerpc.h definitions to here. - * rs6000/netware.h: and here. - * rs6000/win-nt.h: and here. - - * rs6000/rs6000.c (processor_target_table, 620): Do not affect - MASK_POWERPC64. - (rs6000_override_options): Ignore flag_pic for AIX. - (rs6000_immed_double_const): Delete. - (u_short_cint_operand): Don't assume 32-bit CONST_INT. - (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. - (num_insns_constant): mask64_operand() is 2 insns. - (logical_operand): Don't assume 32-bit CONST_INT. - (non_logical_cint_operand): Don't assume 32-bit CONST_INT. - (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. - (mask_constant): HOST_WIDE_INT parameter. - (non_and_cint_operand): Delete. - (mask64_operand): New function. - (and64_operand): New function. - (function_arg_advance): DImode arguments do not need special - alignment when 64-bit. - (function_arg): Likewise. - (setup_incoming_varargs): Reverse reg_size assignment. - (print_operand): HOST_WIDE_INT second parameter. - (print_operand, 'B'): New case. - (print_operand, 'M'): Fix typo in lossage string. - (print_operandm 'S'): New case. - (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size - to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. - (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use - TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - (rs6000_allocate_stack_space): Use {cal|la}. - (output_epilog): Use {cal|la} - (output_function_profiler): Add call glue to mcount call. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - - * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. - (STACK_BOUNDARY): Depend on TARGET_32BIT. - (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. - (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. - (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with - 64-bit mask operand. - (RS6000_SAVE_TOC): Depend on TARGET_32BIT. - (STACK_SAVEAREA_MODE): New macro. - (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. - (LEGITIMIZE_RELOAD_ADDRESS): New macro. - (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. - (ASM_FILE_START): Emit 64-bit ABI directive. - (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. - (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". - Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. - - * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. - Restore define_splits. - (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. - (floatsidf2_internal, floatunssidf2_internal2): Likewise. - Do not specify base register operand mode. - (floatsidf2_loadaddr): Do not specify base register operand mode. - (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base - register; do not specify mode. Remove !TARGET_POWERPC64 final - constraint. - (floatsidf2_load): Do not specify base register operand mode. Remove - !TARGET_POWERPC64 final constraint. - (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify - base register operand mode. - (adddi3): Split large constants early. - (absdi3): Shift by 63, not 31. - (*mulsidi3_ppc64): New pattern. - (rotldi3): Add masking combiner patterns. - (anddi3): Add rldic{r,l} masking. Remove split of large constants - because PPC insns zero-extend. - (iordi3, xordi3): Split large constants early. - (movsi matcher): Remove S and T constraints. - (movsf const_double): create SImode constant from TARGET_DOUBLE. - (movdf_hardfloat32): Add default abort() case. - (movdf easy_fp_const): create DImode constant from TARGET_DOUBLE. - (movdi): Remove 64-bit constant generator. Try to convert - CONST_DOUBLE to CONST_INT. Handle TOC memory constants. - (movdi_32): Add default abort() case. - (movdi_64): Add numerous ways to split 64-bit constants. - Make catch-all define_split more optimal and never FAIL. - (movti_ppc64): Add default abort() case. - (allocate_stack): Remove operand modes. Use Pmode. - (restore_stack_block): Remove operand modes. Generate Pmode - temporary. - (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode - temporary. Save area is double Pmode. - (call_indirect_aix64, call_value_indirect_aix64): New patterns. - (call, call_value): Do not specify address operand mode. Choose - appropriate AIX ABI. - (*call_local64, *ret_call_local64): New patterns. - (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. - (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. - (compare): Materialize DImode truthvalues. + * configure: Regenerate. -Thu Jun 4 01:26:57 1998 Craig Burley <burley@gnu.org> + * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC. - * expr.c (safe_from_p): Avoid combinatorial explosion - over duplicate SAVE_EXPRs by ensuring we never recurse - on one that has already been visited. +Fri Mar 26 19:42:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Thu Jun 4 00:54:21 1998 Graham <grahams@rcp.co.uk> + * loop.c (combine_givs): Fix index into can_combine when doing + benefit adjustment for remaining givs when having combined a giv. - * loop.c (check_dbra_loop): Initialise final_value before - normalizing the loop. +Fri Mar 26 11:38:01 1999 Nick Clifton <nickc@cygnus.com> -Wed Jun 3 20:00:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define. - * reload1.c (reload_reg_free_for_value_p): New arguments out and - reloadnum. Changed all callers. +Fri Mar 26 10:48:27 1999 Nick Clifton <nickc@cygnus.com> -1998-06-03 Ulrich Drepper <drepper@cygnus.com> + * config/arm/linux-elf.h: Include dbxelf.h - * system.h: Add _() and N_() macros in preparation for gettext. +Fri Mar 26 10:43:47 1999 Nick Clifton <nickc@cygnus.com> -Wed Jun 3 11:02:24 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * config/svr4.h: Include new header file dbxelf.h. + (DBX_DEBUGGING_INFO): Remove definition. + (DBX_USE_BINCL): Remove definition. + (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. + (ASM_IDENTIFY_GCC): Remove definition. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. + (ASM_OUTPUT_SOURCE_LINE): Remove definition. + (DBX_FUNCTION_FIRST): Remove definition. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition. - * c-common.c (check_format_info): Put back check for C9x `hh' - length modifier. Warn about %n format writing into const. Remove - obsolete comment. - (format_char_info): Fix comments. + * config/elfos.h: Include new header file dbxelf.h. + (DBX_DEBUGGING_INFO): Remove definition. + (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. + (ASM_IDENTIFY_GCC): Remove definition. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. + (ASM_OUTPUT_SOURCE_LINE): Remove definition. + (DBX_FUNCTION_FIRST): Remove definition. - * configure.in: Set float_format to m68k for all m68k targets that - do not override LONG_DOUBLE_TYPE_SIZE. - * config/float-m68k.h: New file. + * config/dbxelf.h: New header file. + (DBX_DEBUGGING_INFO): Define. + (DBX_BLOCKS_FUNCTION_RELATIVE): Define. + (DBX_FUNCTION_FIRST): Define. + (DBX_USE_BINCL): Define. + (DBX_CONTIN_LENGTH): Define. + (ASM_IDENTIFY_GCC): Define. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define. + (ASM_OUTPUT_SOURCE_LINE): Define. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. -Tue Jun 2 23:14:01 1998 Richard Henderson <rth@cygnus.com> +Fri Mar 26 01:59:15 1999 "Charles M. Hannum" <root@ihack.net> - * jump.c (jump_optimize): Remove debug messages accidentally left in - with the previous change. + * fold-const.c (fold_truthop): Optimize bitfield references with + different masks as long as their size and bit position are the same. -Tue Jun 2 22:46:08 1998 Richard Henderson <rth@cygnus.com> + * fold-const.c (fold_truthop): Build a type for both the lhs and + rhs and use it appropriately. - * expr.c (store_expr): Revert stray patch associated with - 1998-05-23 commit. + * fold-const.c (fold_truthop): Mask the lhs and rhs after merging + adjacent bitfield references. -Tue Jun 2 21:59:01 1998 Richard Henderson <rth@cygnus.com> + * fold-const.c (fold_truthop): Verify that the lhs and rhs are + in the same bit position when optimizing bitfield references + which have the same mask. - * jump.c (rtx_unsafe_p): New function. - (jump_optimize): Use it on if/then/else transformations and - conditional move transformations. +Thu Mar 25 22:53:27 1999 Martin von Löwis <loewis@informatik.hu-berlin.de> -Tue Jun 2 22:50:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * gcc.texi (Copy Assignment): New node. - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST - or VAR-- == CONST construct a proper mask if VAR is a bitfield. - Cope with CONST being out of range for the bitfield. +1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> -Tue Jun 2 22:28:31 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> + * gcc.c: Compile unconditionally all code formerly dependent + on #ifdef LANG_SPECIFIC_DRIVER. + * gccspec.c: New file with stub lang_specific_driver, + lang_specific_pre_link. + * Makefile.in: Link gccspec.o into xgcc. Add rule to compile - * expr.c (emit_move_insn_1): When moving complex values in several - steps, emit a CLOBBER to show the destination dies. +Thu Mar 25 21:08:02 1999 Jason Merrill <jason@yorick.cygnus.com> -Tue Jun 2 22:17:26 1998 Jeffrey A Law (law@cygnus.com) + * gcc.texi (Temporaries): Update. - * Makefile.in (site.exp): Use the object testsuite directory as - the temporary directory. +Thu Mar 25 16:53:53 1999 Richard Henderson <rth@cygnus.com> - * expr.c (expand_expr, case ADDR_EXPR): Handle taking the - address of an ADDRESSOF rtx. + * combine.c (distribute_notes): Place REG_LABEL also where + REG_EQUAL indicates. -1998-06-02 Mike Stump <mrs@wrs.com> +Thu Mar 25 12:46:37 1999 Jim Wilson <wilson@cygnus.com> - * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. - * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. - * i960.md (ret, flush_register_windows): Define. - (nonlocal_goto): Likewise. Nested function nonlocal gotos don't - work yet. - * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro. + * a29k/a29k.h (TARGET_SWITCHES): Add doc strings. + * i960/i960.h (TARGET_SWITCHES): Add doc strings. + * invoke.texi (a29k): Add documentation for -mno-multm option. -Tue Jun 2 14:02:38 1998 Richard Henderson <rth@cygnus.com> +Thu Mar 25 14:04:54 1999 Andrew MacLeod <amacleod@cygnus.com> - * alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and work - around an OSF/1 library bug wrt sign-extension of inputs. + * rtl.texi (RTX_FRAME_RELATED_P): Add documentation. + * rtl.h (struct rtx_def): Update comment for frame_related field. + (set_unique_reg_note): Declare prototype. + * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from + 'dwarf2out_frame_debug' to handle only expressions, and process + component parts of a PARALLEL expression. + (dwarf2out_frame_debug): Process insns only, and call + new function 'dwarf2out_frame_debug_expr' for patterns. + * emit-rtl.c (set_unique_reg_note): New function to add a reg note, + but if there is an existing one, delete it first. + * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note. + * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note. + (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note. + (expand_fix): Use set_unique_reg_note. -Tue Jun 2 13:02:44 1998 Richard Henderson <rth@cygnus.com> +Thu Mar 25 11:47:49 1999 Art Haas <ahaas@neosoft.com> - * vax/netbsd.h (DWARF2_UNWIND_INFO): Must be undef, not defined 0. + * tlink.c (symbol_hash_newfunc): Remove redundant call to + hash_newfunc. + (file_hash_newfunc, demangled_hash_newfunc): Likewise. -Mon Jun 1 03:44:03 1998 Catherine Moore <clm@cygnus.com> +Thu Mar 25 10:05:56 1999 Richard Henderson <rth@cygnus.com> - * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. + * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128. - * varasm.c (assemble_variable): Augment alignment warning. +1999-03-25 Philip Blundell <pb@nexus.co.uk> -Mon Jun 1 12:14:28 1998 Michael Meissner <meissner@cygnus.com> + Based on patch from Jim Studt <jim@federated.com>: + * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy + definitions from config/linux.h. + (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1. - * config/fp-bit.c (_fp{add,div}_parts): Return correct IEEE result - in the presence of IEEE negative 0's. +Thu Mar 25 02:12:42 1999 Finn Hakansson <finn@axis.com> -Sun May 31 16:11:41 1998 John Wehle (john@feith.com) + * loop.c (strength_reduce): Correct a comment. - * reload.c (find_reloads): Record the existing mode if - operand_mode == VOIDmode before replacing a register with - a constant. - * i386.md (tstsi, tsthi, tstqi, tstsf, tstdf, tstxf): Set - i386_compare_op1 to const0_rtx for the benefit of the - conditional move patterns. - (movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Rewrite - based on suggestions from Jim Wilson. + * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash. -Sun May 31 00:44:02 PDT 1998 Jeff Law (law@cygnus.com) +Thu Mar 25 02:02:13 1999 Axel Thimm <Axel.Thimm@physik.fu-berlin.de> - * version.c: Bump for snapshot. + * Makefile.in (RANLIB_TEST): Improve test. + +Thu Mar 25 01:15:33 1999 Donn Terry <donn@interix.com> + + * combine.c (force_to_mode, case PLUS): Use sign extended mask + when masking the low bits out of a constant. -Sun May 31 00:34:17 1998 Bruce Korb <korbb@datadesign.com> +Tue Mar 23 15:45:25 1999 Richard Earnshaw (rearnsha@arm.com) + Jeff Law <law@cygnus.com> - * Makefile.in (fixinc.sh): Update rules again. + * fold-const.c (make_range): If orig_type is unset, set it as soon + as we know the type. Remove now unnecessary set of orig_type for + conversions. -Sun May 31 00:27:47 1998 Jeffrey A Law (law@cygnus.com) +Wed Mar 24 23:27:25 1999 Mark Elbrecht <snowball3@usa.net> + Jeff Law <law@cygnus.com> - * extend.texi: Bring back reference to trampoline paper. + * system.h (STDIN_FILENO): Provide default definition if one is not + provided by the system header files. + (STDOUT_FILENO, STDERR_FILENO): Likewise. -Sun May 31 00:22:34 1998 Ulrich Drepper <drepper@cygnus.com> + * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro. + * collect2.c (main): Use it. + (pexecute_pid): New variable. Holds return value from call to pexecute. + (collect2_execute): Rework to use pexecute instead of fork. + (collect2_wait): Use pwait() instead of wait(). - * Makefile.in (USER_H): Add stdbool.h. - * ginclude/stdbool.h: New file. + * i386/djgpp.h: Fix typo. -Fri May 29 01:48:25 1998 Jeffrey A Law (law@cygnus.com) +Wed Mar 24 23:24:30 1999 Jeffrey A Law (law@cygnus.com) - * jump.c (thread_jumps): Do not look at the NOTE_LINE_NUMBER - of a non-note insn. + * fixinc/mkfixinc.sh: Recognize cygwin* instead of only + cygwin32. - * gcse.c (pre_delete): Fix code to determine the mode of - the reaching pseudo register. +Wed Mar 24 15:44:12 1999 Nick Clifton <nickc@cygnus.com> -Fri May 29 01:07:28 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> + * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__ + versions of attribute names and values. + (m32r_valid_machine_decl_attribute): Likewise. + (m32r_encode_section_info): Likewise. - * Makefile.in (GEN): Add gencheck - (STAGESTUFF): Add tree-check.h and gencheck. +Wed Mar 24 21:42:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Fri May 29 00:57:37 1998 Bruce Korb <korbb@datadesign.com> + * reload1.c (choose_reload_regs): If output-reloading for a + simple move insn, try to inherit an equivalence for the input. - * Makefile.in (cstamp-h.in): Remove before trying to recreate. - (fixinc.sh): Set some additional environment variables before - calling mkfixinc.sh. +1999-02-24 Mike Stump <mrs@wrs.com> -Thu May 28 12:57:05 1998 Jeffrey A Law (law@cygnus.com) + * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting. - * reload.c (find_reloads): Do not force a reloads of match_operators. +1999-03-24 Jim Blandy <jimb@zwingli.cygnus.com> -Thu May 28 10:22:22 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all + platforms. - * except.h (remove_handler): Add new prototype. - * except.c (remove_handler): New function to remove handlers - from an exception region. - * flow.c (find_basic_blocks_1): Remove handlers from regions when - handler label is deleted; remove exception regions with no handlers. +Wed Mar 24 01:35:01 1999 Geoff Keating <geoffk@ozemail.com.au> -Thu May 28 09:36:39 1998 Michael Meissner <meissner@cygnus.com> + * fold-const.c (fold): Recognize a rotate by an unsigned amount. - * except.h (rtx): Define rtx type correctly if needed. - * function.h (rtx): Ditto. - (tree): Define tree type correctly if needed. +Tue Mar 23 23:32:14 1999 Jeffrey A Law (law@cygnus.com) - * c-pragma.c (toplevel): Include rtl.h. + * pa.md (rotlsi3): New expander. Synthesize a variable rotate + left using a variable rotate right. Provide anonymous pattern for + rotate left by a constant value. - * stor-layout.c (toplevel): Move include of rtl.h before - except.h. + * expr.c (expand_assignment): Do not try to optimize a aggregate + address which has VOIDmode. - * Makefile.in (c-pragma.o): Add except.h, rtl.h dependencies. - (tree.o): Add except.h dependency. +Tue Mar 23 22:51:48 1999 Mumit Khan <khan@xraylith.wisc.edu> + Donn Terry <donn@interix.com> -Wed May 27 22:02:40 1998 Jeffrey A Law (law@cygnus.com) + * protoize.c (abspath): Preserve multiple leading slashes for + _WIN32 and Interix. - * reload1.c: Revert accidental checkin. +1999-01-23 Mike Stump <mrs@wrs.com> - * configure.lang: Fix thinko when adding a definition for - target_alias to the Makefile. + * arm/vxarm.h: Split out vxWorks support into separate headerfile + and vxify. + * arm/arm.c (cpu_defaults): Allow arm710 as default. -Wed May 27 02:50:00 1998 Catherine Moore (clm@cygnus.com) + * configure.in: Split out vxWorks support for Arm. + * configure: Rebuilt. - * config/sparc/lb1spc.asm (.rem and .urem): Replace - routines. +Tue Mar 23 11:20:03 1999 Per Bothner <bothner@cygnus.com> + + * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR. + +Tue Mar 23 09:00:39 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string. + * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string. + +Tue Mar 23 07:50:20 1999 Mark Mitchell <mark@codesourcery.com> + + * function.c: Include hash.h. + (insns_for_mem_entry): New struct. + (put_reg_into_stack): Take an optional hash-table mapping MEMs to + the INSNs that use them. + (fixup_var_refs): Likewise. + (put_addressof_into_stack): Likewise. + (purge_addressof_1): Likewise. Keep the hash-table up to date if + we add new instructions. + (fixup_var_refs_insns): Use it to avoid searching the entire + instruction chain. + (insns_for_mem_newfunc): New function. + (insns_for_mem_comp): Likewise. + (insns_for_mem_walk): Likewise. + (compute_insns_for_mem): Likewise. + (pop_function_context_from): Pass NULL for the hash-table. + (put_var_into_stack): Likewise. + (gen_mem_addressof): Likewise. + (flush_addressof): Likewise. + (purge_addressof): Call compute_insns_for_mem to pre-compute the + hash table. + * Makefile.in (OBJS): Include hash.o. + (function.o): Depend on hash.h. -Wed May 27 02:48:31 1998 Richard Earnshaw (rearnsha@arm.com) +Tue Mar 23 00:39:14 1999 Jeffrey A Law (law@cygnus.com) - * arm.c (arm_gen_constant): Rework to eliminate uninitialized - variable warnings. Don't generate scratch registers if only - counting insns. - (find_barrier): Eliminate unused variable SRC. + * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of + numbers. + * i386/netbsd.h, i386/freebsd.h: Likewise. -1998-05-27 Manfred Hollstein <manfred@s-direktnet.de> + * crtstuff.c: Use ANSI function definitions. Fix minor whitespace + problems. - * toplev.h (rtx_def): Provide global declaration to avoid - `limited scope' warnings. + * i386/openbsd.h (TARGET_DEFAULT): Define. + * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD + configurations. + * configure: Rebuilt. -Tue May 26 23:47:52 1998 Mumit Khan <khan@xraylith.wisc.edu> +Tue Mar 23 00:39:10 1999 John Wehle (john@feith.com) - * Makefile.in (gencheck.o): Use HOST_CC. - * i386/t-mingw32: New file. - * configure.in (i386-*-mingw32*): Use. + * i386/freebsd.h (TARGET_DEFAULT): Define instead + of TARGET_CPU_DEFAULT. + * i386/netbsd.h (TARGET_DEFAULT): Likewise. -Tue May 26 07:31:04 1998 Richard Earnshaw (rearnsha@arm.com) +Mon Mar 22 23:52:01 1999 Mumit Khan <khan@xraylith.wisc.edu> + Donn Terry <donn@interix.com> - * arm.c (bad_signed_byte_operand): New predicate function. - * arm.h (PREDICATE_CODES): Add it to the list. - * arm.md (*extendqi[sh]i_insn): Split any addresses that ldrsb - can't handle. - (define_split): Two new splits for above insns. + * sdbout.c (syms.h): Don't include on Interix. + * toplev.c (main): No sbrk on Interix. - * arm.c: Include toplev.h. - (arm_override_options): Add parentheses around use of tune_flags. - (arm_split_constant): Remove unused variable. - (arm_gen_constant, arm_gen_movstrqi, add_constant): Likewise. - (output_func_prologue, arm_expand_prologue): Likewise. - (arm_canonicalize_comparison): Make I unsigned; rework constants - accordignly. Add missing paratheses around << operation. - (arm_rtx_costs): Correctly parenthesise MULT costs. Add a DEFAULT - clause. - ({load,store}_multiple_sequence): Initialize BASE_REG. - (select_dominance_cc_mode): Add DEFAULT clauses. - (broken_move): Return zero if the destination is not a register. - (arm_reorg): Move unused REGNO declaration into the dead code. - * arm.h (CANONICALIZE_COMPARISON): Ensure OP1 is updated. + * configure.in: Add i386-pc-interix support. + * configure: Regenerate. + * fixinc.interix: New file. + * config/interix.h: New file. + * config/x-interix: New file. + * config/xm-interix.h: New file. + * i386/interix.h: New file. + * i386/interix.c: New file. + * i386/t-interix: New file. + +Mon Mar 22 23:41:49 1999 Jeffrey A Law (law@cygnus.com) -Mon May 25 22:49:56 PDT 1998 Jeff Law (law@cygnus.com) + * i386.h (PREFERRED_STACK_BOUNDARY): Define. + +Mon Mar 22 23:41:31 1999 John Wehle (john@feith.com) + + * i386.c (ix86_compute_frame_size): New function. + (ix86_prologue, ix86_epilogue): Use it. + * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise. + * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY. + +Mon Mar 22 18:06:59 1999 Jim Wilson <wilson@cygnus.com> + + * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc + strings. + * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise. + +Mon Mar 22 16:18:27 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother + passing ATTRIBUTES to arm_valid_machine_decl_attribute. + + * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother + passing ATTRIBUTES to arm_valid_machine_decl_attribute. + + * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing + OUTER_CODE to arm_rtx_costs - it is not used. + (arm_compare_fp): Delete declaration. + (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to + arm_final_prescan_insn - they are not used. + (const_ok_for_op): Remove prototype. + (arm_rtx_costs): Fix prototype. + (arm_valid_machine_decl_attribute): Fix prototype. + (final_prescan_insn): Fix prototype. + + * config/arm/arm.md: Remove references to arm_compare_fp. + + * config/arm/arm.c (arm_compare_fp): Delete. + (const_ok_for_op): Make function static. Add prototype. Remove + mode parameter - it is unused. + (arm_rtx_costs): Remove outer_code parameter. + (reload_memory_operand): Declare mode parameter unused. + (power_of_two_operand): Declare mode parameter unused. + (equality_operator): Declare mode parameter unused. + (load_multiple_operation): Declare mode parameter unused. + (store_multiple_operation): Declare mode parameter unused. + (multi_register_push): Declare mode parameter unused. + (arm_valid_machine_decl_attribute): Remove attributes parameter - + it is unused. + (select_dominance_cc_mode): Remove op parameter - it is unused. + (gen_compare_reg): Remove fp parameter - it is unused. + (final_prescan_insn): Remove opvec and noperands parameters - they + are unused. + +Mon Mar 22 14:35:28 1999 Nick Clifton <nickc@cygnus.com> + + * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis. + +Mon Mar 22 22:24:30 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_as_needed): Set reload_is_output_reload / + reload_has_output_reload for auto_inc expressions that could be + reloaded. Call forget_old_reloads for REG_INC notes. + +Mon Mar 22 21:51:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * cse.c (cse_insn): Don't change the result register of a libcall. + +Mon Mar 22 21:08:59 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * rtl.h (shallow_copy_rtx): Declare. + * rtl.c (shallow_copy_rtx): New function. + * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of + copy_rtx. + +Mon Mar 22 10:44:33 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> + + * config/h8300/h8300.md (adjust_length): New attribute. + (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn + default value of attribute "adjust_length" onto "no". + + * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust + length only if the attribute "adjust_length" value is "yes". + Use 0 if the shift is negative. + + * final.c (shorten_branches): Check insn length after its + adjusting. + +Sun Mar 21 17:33:48 1999 Jeffrey A Law (law@cygnus.com) + + * i860.h (TARGET_SWITCHES): Add documentation for default case. + * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case. + * i370.h (TARGET_SWITCHES): Add documentation for default case. + * fx80.h (TARGET_SWITCHES): Add documentation for default case. + * elxsi.h (TARGET_SWITCHES): Add documentation for default case. + * clipper.h (TARGET_SWITCHES): Add documentation for default case. + * 1750a.h (TARGET_SWITCHES): Add documentation for default case. + * pa.h (TARGET_SWITCHES): Add documentation for default case. + (TARGET_OPTIONS): Likewise for default case. + * mn10300.h (TARGET_SWITCHES): Add documentation for default case. + * h8300.h (TARGET_SWITCHES): Add documentation for default case. - * version.c: Bump for snapshot. + * gcse.c (dump_hash_table): Fix whitespace in declaration. + (compute_transpout): Renamed from pre_compute_transpout. + (compute_pre_*): Deleted. + (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP. All + callers changed. + (insert_insn_end_bb): Renamed from pre_insert_insn. + (pre_*): Delete unused variables. Only leave local properties and + global redundant/optimal computation points. + (alloc_pre_mem, free_pre_mem): Corresponding changes. + (compute_pre_data): Simplify and call pre_lcm to run the lazy + code motion dataflow analysis. + (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM + based redundant and optimal computation points. + + * basic-block.h (pre_lcm, pre_rev_lcm): Declare. + + * toplev.c (main): A debug option without a level defaults to + level 2. + +Sun Mar 21 12:13:01 1999 Nick Clifton <nickc@cygnus.com> + + * flow.c (can_delete_label_p): Do not allow user specified + labels to be deleted. + * dwarf2out.c (gen_label_die): Generate addresses for deleted + (programmer specified) labels. + * dwarfout.c (output_label_die): Generate addresses for deleted + (programmer specified) labels. + +1999-03-21 Manfred Hollstein <manfred@s-direktnet.de> + + * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be + linked with. -Mon May 25 11:56:24 PDT 1998 Jeff Law (law@cygnus.com) +Sun Mar 21 01:15:03 1999 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Mon May 25 14:00:13 1998 Dave Brolley <brolley@cygnus.com> +Sat Mar 20 22:26:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * cpperror.c (v_cpp_message): Remove static prototype. - * cpplib.c (v_cpp_message): Move prototype to cpplib.h. - * cpplib.h (v_cpp_message): Add protoptype. - (stdarg.h,varargs.h): Needed for v_cpp_message prototype. + * sparc.h (TARGET_SWITCHES): Add null description to default case. -Sun May 24 20:36:15 PDT 1998 Jeff Law (law@cygnus.com) +Sat Mar 20 21:46:06 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * version.c: Bump for snapshot. + * c-lex.c (yylex): Remove unused variable `bytes'. -Sun May 24 02:08:57 PDT 1998 Jeff Law (law@cygnus.com) + * flow.c (print_rtl_with_bb): Cast the return value of alloca. - * version.c: Bump for snapshot. + * function.c (assign_parms): Wrap variable `varargs_setup' in + macro SETUP_INCOMING_VARARGS. + (thread_prologue_and_epilogue_insns): Mark parameter `f' with + ATTRIBUTE_UNUSED. -1998-05-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * local-alloc.c (no_equiv): Likewise for parameter `store'. - * m68k.h: Declare more functions used in macros. - (REG_CLASS_CONTENTS): Completely embrace initializer. - * m68k.md (adddi3, subdi3): Add abort call to avoid warning - about returning no value. - * cse.c (find_best_addr): Declare p and found_better only if - needed. - * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0. - * dwarfout.c (string_length_attribute): #if 0 away. - * function.c (expand_function_end): Define varible blktramp only - if needed. - * jump.c (find_insert_position): Define only if !HAVE_cc0. - * loop.c (combine_givs_p): Define variable tem only if needed. - * real.c: Comment out unused functions eabs, eround, - e{24,53,64,113}toasc and eiinfin. + * sched.c (schedule_insns): Remove unused variables `insn' and `next'. + + * tlink.c (symbol_hash_newfunc, symbol_hash_lookup, + file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc, + demangled_hash_lookup, symbol_push, symbol_pop, file_push, + file_pop, tlink_init, tlink_execute, frob_extension, + obstack_fgets, tfgets, pfgets, freadsym, read_repo_file, + maybe_tweak, recompile_files, read_repo_files, + demangle_new_symbols, scan_linker_output): Add static prototype. + (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc): + Make the third argument a `hash_table_key'. -Sat May 23 23:44:53 1998 Alexandre Oliva <oliva@dcc.unicamp.br> + * toplev.c (debug_start_source_file): Mark parameter `filename' + with ATTRIBUTE_UNUSED. - * Makefile.in (boostrap2-lean, bootstrap3-lean, - bootstrap4-lean): New targets. +Sun Mar 21 02:28:21 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Sat May 23 23:35:14 1998 Jeffrey A Law (law@cygnus.com) + * tm.texi (Varargs): Don't split argument of @item across lines. - * warn_summary, test_summary: Moved into the contrib directory. + * invoke.texi: Fix use of @item vs @itemx. -1998-05-23 Manfred Hollstein <manfred@s-direktnet.de> +Sun Mar 21 09:59:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): Move down to the end - of the Makefile. - (FLOAT_H_TEST): Likewise. - (ENQUIRE): Likewise. - (float.h-nat): Likewise. - (float.h-cross): Likewise. - (enquire): Likewise. - (enquire.o): Likewise. - (stmp-int-hdrs): Fix comment about enquire; depend upon gfloat.h. - (stmp-headers): Move actions to stmp-int-hdrs, retaining only a - no-op. - (FLOAT_H): Remove old float.h-nat version; move current definition - to CROSS_FLOAT_H location. - (all.cross): Remove comments about enquire stuff. + * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to + default case. - * Makefile.in (all.cross): Swap $(LIBGCC) and $(STMP_FIXPROTO). - (rest.encap): Likewise. - (libgcc2.ready): Depend upon $(STMP_FIXPROTO) +Sat Mar 20 23:33:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * toplev.h (tree_node): Provide global declaration to avoid - `limited scope' warnings. + * loop.c (check_dbra_loop): Fix debug message. -Sat May 23 23:23:35 1998 Robert Lipe <robertl@dgii.com> +Sat Mar 20 15:54:35 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * test_summary: Display section breaks for each entry - in a multilibbed target's output. + * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end + pattern instead of decrement_and_branch_until_zero pattern. -1998-05-23 Richard Henderson <rth@cygnus.com> +Sat Mar 20 11:39:58 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. + * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation. + * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation. -1998-05-22 Jason Merrill <jason@yorick.cygnus.com> +Fri Mar 19 23:26:29 1999 Martin von Löwis <loewis@informatik.hu-berlin.de> - * fold-const.c (ssize_binop): New fn. - * tree.h: Declare it. + * expr.c (expand_expr): Handle ERROR_MARK much earlier. -Fri May 22 03:42:05 1998 Richard Earnshaw (rearnsha@arm.com) +Fri Mar 19 15:28:38 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * genextract.c (print_path): Handle zero-length path as a special - case. + * cccp.c (create_definition): Cast to U_CHAR* when assigning to one. -Fri May 22 01:38:07 1998 Hans-Peter Nilsson <hp@axis.se> + * cppfiles.c (read_and_prescan): Likewise. + Start a #define in column 0. - * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. + * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one. + (cpp_push_buffer): Likewise for cpp_buffer*. + (do_include): Change the type of `fbeg' and `fend' to unsigned char*. + (do_endif): Cast to char* when assigning to one. + (do_assert): Likewise. + (do_unassert): Likewise. + (cpp_read_check_assertion): Change the type of `name' to U_CHAR*. + Don't do unnecessary cast to char* anymore. -Fri May 22 00:57:00 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> + * genrecog.c (make_insn_sequence): Cast to char** when assigning + to one. Cast the first argument of bzero to PTR. - * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value. - (shorten_branches, final_scan_insn): Test value of - JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it - is defined. - * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes. - * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1. - * arm/tcoff.h: Likewise. - * i386/386bsd.h: Likewise. - * i386/freebsd-elf.h: Likewise. - * i386/freebsd.h: Likewise. - * i386/netbsd.h: Likewise. - * i386/ptx4-i.h: Likewise. - * i386/sysv4.h: Likewise. - * pa/pa.h: Likewise. - * rs6000/linux.h: Likewise. - * rs6000/rs6000.h: Likewise. - * sh/sh.h: Likewise. - * sparc/sp64-elf.h: Likewise. - * v850/v850.h: Likewise. - * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0. - * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic). - -Thu May 21 19:50:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (gen_add3_insn): New function. - (fixup_match_2): Use it instead of calling gen_addsi3. - -Thu May 21 23:09:50 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gencheck): Depend on HOST_LIBDEPS. - - * alias.c (rtx_equal_for_memref_p): Handle SCRATCH as a memory - address. - -Thu May 21 20:18:13 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * Makefile.in (TREE_H): Add tree-check.h. - (tree-check.h, gencheck): New targets. - * gencheck.c: New file. - * tree.c (tree_check, tree_class_check): New functions. - * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. - (TYPE_CHECK, DECL_CHECK): Define. - Modify all access macros to use generated checking macros. - -Wed May 20 23:44:28 EDT 1998 John Wehle (john@feith.com) - - * acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag. - * configure.in: Check for it. - * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it. - * final.c (uid_align, uid_shuid, label_align): Make static. - (label_align): Change type to struct label_alignment pointer. - (LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change. - (LABEL_TO_MAX_SKIP): Define. - (LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults. - (shorten_branches): Record the maximum bytes to skip when - aligning a label. - (final_scan_insn): Use the maximum bytes to skip when aligning a label - if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * i386.h (LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. - * i386.c (override_options): i386_align_jumps and i386_align_loops - default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * invoke.texi: Document new i386 align-loops and align-jumps behavior. - -1998-05-21 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (do_type): Handle volatile qualification. - -Thu May 21 12:23:17 1998 Per Bothner <bothner@cygnus.com> - - * function.c (init_function_start): Don't call emit_line_note if - lineno is 0. (Can happen when compiling Java .class files.) - -Thu May 21 19:50:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): Fix RELOAD_FOR_INPUT - end of lifetime and RELOAD_FOR_OUTPUT start of lifetime. - -Thu May 21 19:32:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (nonzero_bits): For paradoxical subregs, take - LOAD_EXTENDED_OP into account. - -Thu May 21 11:51:15 1998 Dave Brolley <brolley@cygnus.com> - - * configure.in (extra_c_objs): add prefix.o. - (extra_cxx_objs): extra objects for C++ with cpplib. - * configure: Regenerate. + * loop.c (strength_reduce): Remove unused variable `note'. - * c-tree.h: (get_directive_line): Different prototype for cpplib. - (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. + * reload1.c (new_insn_chain): Cast to struct insn_chain* when + assigning to one. - * c-lex.h: (get_directive_line): Not needed here for cpplib. + * rtl.c (copy_rtx): Use memcpy instead of bcopy. - * c-lex.c: (yy_cur,yy_lim,yy_get_token): Move to c-common.c. - (GET_DIRECTIVE_LINE): Move to c-common.c and rename to get_directive_line. +Fri Mar 19 11:19:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * c-common.c (parse_in,parse_options,cpp_token): Declare for cpplib. - (yy_cur,yy_lim,yy_get_token,get_directive,line): Moved here from c-lex.c + * calls.c (initialize_argument_information): Mark parameters + `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED. -Thu May 21 09:04:42 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * dbxout.c (dbxout_start_new_source_file): Likewise for parameter + `filename'. + (dbxout_finish): Likewise for parameters `file' and `filename'. + (dbxout_prepare_symbol): Likewise for parameter `decl'. + (dbxout_begin_function): Likewise. - * gengenrtl.c (type_from_format, accessor_from_format): Change - type of parameter `c' from `char' to `int'. + * explow.c (hard_function_value): Likewise for parameter `func'. -Wed May 20 22:28:34 1998 Jeffrey A Law (law@cygnus.com) + * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'. - * warn_summary, test_summary: New scripts from - Kaveh Ghazi and Alexandre Oliva respectively. + * expmed.c (expand_divmod): Omit unused argument to `expand_abs'. + * expr.c (expand_expr): Likewise. + * expr.h (expand_abs): Delete unused argument from prototype. + * optabs.c (expand_abs): Remove unused parameter `unsignedp'. - * gcse.c (current_function_calls_longjmp): Declare. + * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED. + (sdbout_end_block): Likewise for parameter `n'. -1998-05-20 Jason Merrill <jason@yorick.cygnus.com> + * toplev.c (debug_define): Likewise for parameters `lineno' and + `buffer'. + (debug_undef): Likewise. - * dwarf2out.c (base_type_die): Use int_size_in_bytes. + * varasm.c (named_section): Likewise for parameter 'reloc'. + (assemble_external): Likewise for parameter `decl'. + (assemble_alias): Likewise for parameter `target'. -Wed May 20 01:11:02 1998 Doug Evans (devans@cygnus.com) - Jeff Law (law@cygnus.com) +Fri Mar 19 01:54:30 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - * Global CSE and constant/copy propagation. - * Makefile.in (OBJS): Add gcse.o - (STAGESTUFF): Add *.gcse. - (gcse.o): Add dependencies. - (mostlyclean): Remove *.gcse and */*.gcse. - * gcse.c: New file. - * loop.c (loop_optimize): Move call to init_alias_analysis. - * recog.c (validate_replace_src): New function. - * toplev.c (gcse_dump): New global variable. - (flag_gcse, gcse_time): Likewise. - (compile_file): Initialize gcse_time and clean out the gcse dump - file if necessary. - (rest_of_compilation): Call gcse_main as requested. Dump RTL - after gcse if requested. - (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse - dumps for -da. - * gcc.texi: Add gcse related internal documentation. - * invoke.texi: Note new command line options for gcse. - * tm.texi: Document AVOID_CCMODE_COPIES. - * mips.h (AVOID_CCMODE_COPIES): Define. + * toplev.c (read_integral_parameter): Constify. Better control of + error messages. + (main): Use read_integral_parameter to set optimize, id_clash_len, + larger_than_size, and the debugging level. + * toplev.h (read_integral_parameter): Update prototype. -Tue May 19 22:31:20 1998 Jeffrey A Law (law@cygnus.com) +Fri Mar 19 01:42:05 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - * Makefile.in (deduced.h): Only run scan-types if $(SYSTEM_HEADER_DIR) - exists. - (stmp-fixproto): Simlarly for running fixproto. - * cross-make (SYSTEM_HEADER_DIR): Now $(tooldir)/sys-include. + * system.h: Use putc_unlocked, fputc_unlocked, and + fputs_unlocked only if putc_unlocked has a prototype already. + Prototype fputs_unlocked if necessary. + * configure.in: Check for prototypes of putc_unlocked and + fputs_unlocked. + * acconfig.h: Updated. + * config.in, configure: Rebuilt. -Tue May 19 19:08:52 1998 Jim Wilson <wilson@cygnus.com> +Fri Mar 19 02:45:12 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * config/mips/mips.c (double_memory_operand): Accept any MEM during - reload when TARGET_64BIT. + * Makefile.in (INTL_TARGETS): New macro. + ($(INTL_TARGETS)): Depend on generated sources; drop dependencies + on cp/parse.c and objc/objc-parse.c. + ($(srcdir)/cp/parse.c): Move to cp/Make-lang.in. + * objc/Make-lang.in ($(INTL_TARGETS)): Depend on objc/objc-parse.c. -Tue May 19 18:21:25 1998 Jim Wilson <wilson@cygnus.com> +Thu Mar 18 22:28:53 1999 Jeffrey A Law (law@cygnus.com) - Finish incomplete change started by Kenner. - * configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines. - (powerpcle-*-cygwin32): Delete xm_defines. - * final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use - HAVE_STAB_H instead of NO_STAB_H. - * config/xm-linux.h (NO_STAB_H): Delete. - (HAVE_STAB_H): Undefine. - * config/i386/xm-go32.h (NO_STAB_H): Delete. + * i860.h (TARGET_SWITCHES): Add documentation. + * i860/paragon.h (TARGET_SWITCHES): Add documentation. + * i370.h (TARGET_SWITCHES): Add documentation. + * fx80.h (TARGET_SWITCHES): Add documentation. + * elxsi.h (TARGET_SWITCHES): Add documentation. + * clipper.h (TARGET_SWITCHES): Add documentation. + * 1750a.h (TARGET_SWITCHES): Add documentation. + * pa.h (TARGET_SWITCHES): Add documentation. + (TARGET_OPTIONS): Likewise. + * mn10300.h (TARGET_SWITCHES): Add documentation. + * h8300.h (TARGET_SWITCHES): Add documentation. -1998-05-19 Jim Wilson <wilson@cygnus.com> +Thu Mar 18 15:58:26 1999 Nick Clifton <nickc@cygnus.com> - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore - LANG_TYPE trees with DECL_SOURCE_LINE of 0. + * loop.c (strength_reduce): Do not perform pseudo replacements + if the loop contains volatile memory references. -Tue May 19 15:07:54 1998 Todd Vierling <tv@netbsd.org> +Thu Mar 18 19:09:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined. + * reload.c (find_reloads_toplev): When processing X recursively, + don't alter it destructively except by filling in constants. -Tue May 19 17:19:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu Mar 18 10:14:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reload1.c (reload_reg_free_for_value_p): New function. - (allocate_reload_reg, choose_reload_regs): Use it. + * cccp.c (default_include): Initialize structure members. + (pass_thru_directive): Change the type of 'keyword_length' to int. + (main): Cast `bindtextdomain' and `textdomain' to (void). -Tue May 19 11:51:00 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) + * collect2.c (main): Likewise. - * except.c (expand_start_catch): Correct logic for when to - generate a new handler label, and when to use the old one. + * cppmain.c (main): Likewise. -Tue May 19 11:08:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * gcc.c (main): Likewise. - * Makefile.in (print-rtl.o): Depend on bitmap.h. - (dbxout.o): Depend on toplev.h. - ($(SCHED_PREFIX)sched.o): Likewise. - ($(out_object_file)): Likewise for system.h and toplev.h. - (cppmain.o): Depend on gansidecl.h. - (cpplib.o): Likewise. - (cpperror.o): Likewise. - (cppexp.o): Likewise. - (cpphash.o): Likewise. - (cppalloc.o): Likewise. - (fix-header.o): Depend on cpplib.h and cpphash.h. - (scan-decls.o): Depend on gansidecl.h. + * gcov.c (main): Likewise. - * basic-block.h (free_regset_vector): Add prototype. + * protoize.c (main): Likewise. - * cccp.c (check_precompiled): Mark parameter `fname' with - ATTRIBUTE_UNUSED. - (do_assert): Likewise for `op' and `keyword'. - (do_unassert): Likewise. - (do_line): Likewise for `keyword'. - (do_error): Likewise for `op' and `keyword'. - (do_warning): Likewise. - (do_ident): Likewise for `keyword'. - (do_pragma): Likewise for `limit', `op' and `keyword'. - (do_sccs): Likewise. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (do_else): Likewise. - (do_endif): Likewise. - - * collect2.c (getenv): Remove redundant prototype. - (collect_exit, collect_execute, dump_file): Likewise. - (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. - (dump_prefix_list): Hide prototype and definition. - - * sparc.c: Include toplev.h. - (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_memory_operand): Likewise. - (sp64_medium_pic_operand): Likewise. - (data_segment_operand): Likewise. - (text_segment_operand): Likewise. - (splittable_symbolic_memory_operand): Likewise. - (splittable_immediate_memory_operand): Likewise. - (eq_or_neq): Likewise. - (normal_comp_operator): Likewise. - (noov_compare_op): Likewise. - (v9_regcmp_op): Likewise. - (v8plus_regcmp_op): Likewise. - (extend_op): Likewise. - (cc_arithop): Likewise. - (cc_arithopn): Likewise. - (small_int): Likewise. - (uns_small_int): Likewise. - (clobbered_register): Likewise. - (legitimize_pic_address): Likewise. - (delay_operand): Likewise. - (sparc_builtin_saveregs): Remove unused variable `stdarg'. + * toplev.c (main): Likewise. - * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, - sparc_issue_rate, v8plus_regcmp_p): Add prototypes. +1999-03-18 Gavin Romig-Koch <gavin@cygnus.com> - * sparc.md (cmpdi_v8plus): Add abort for default case in switch. + * config/mips/mips.c (mips_explicit_type_size_string): Correct + its type. - * cppalloc.c: Include gansidecl.h. +Thu Mar 18 01:24:25 1999 Jeffrey A Law (law@cygnus.com) - * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. - (cpp_file_line_for_message): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - (v_cpp_message): New function. - (cpp_message): Use it. Also convert to variable arguments. - (cpp_fatal): Likewise. - (cpp_pfatal_with_name): Constify parameter `name'. + * configure.in: Use "exit 1", not "exit (1)". + * configure: Rebuilt. - * cppexp.c: Move gansidecl.h before cpplib.h. - * cpphash.c: Likewise. - * cpphash.h (hashf, delete_macro): Add prototypes. - - * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before - cpplib.h. Don't include errno.h. - (update_path): Add arguments to prototype. - (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, - cpp_print_containing_files): Remove redundant prototypes. - (cpp_hash_cleanup, add_import, append_include_chain, - make_assertion, path_include, initialize_builtins, - initialize_char_syntax, finclude, validate_else, comp_def_part, - lookup_import, redundant_include_p, is_system_include, - read_name_map, read_filename_string, open_include_file, - check_macro_name, compare_defs, compare_token_lists, - eval_if_expression, change_newlines): Add prototype arguments. - (hashf): Remove redundant prototype. - (read_token_list, free_token_list, safe_read, xcalloc, savestring, - conditional_skip, skip_if_group): Add prototype arguments. - (fdopen): Remove redundant prototype. - (do_define, do_line, do_include, do_undef, do_error, do_pragma, - do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, - do_once, do_assert, do_unassert, do_warning): Add prototype arguments. - (struct directive): Add prototype arguments to function pointer - member `func'. - (handle_directive): Add missing arguments to call to `do_line'. - (do_include): Mark parameters `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_line): Likewise for `keyword' and new parameters `unused1' and - `unused2'. - (do_error): Likewise for `keyword'. - (do_warning): Likewise. Also add missing argument `pfile' in call - to cpp_pedwarn. - (do_once): Mark parameter `keyword', `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_ident): Likewise for `keyword', `buf' and `limit'. - (do_pragma): Likewise. Also add missing arguments in call to do_once. - (do_sccs): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (eval_if_expression): Likewise for `buf' and `length'. - (do_xifdef): Likewise for `unused1' and `unused2'. - (do_else): Likewise for `keyword', `buf' and `limit'. - (do_endif): Likewise. - (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. - (cpp_handle_options): Remove superfluous NULL argument in call to - cpp_fatal. - (cpp_handle_options): Likewise. - (do_assert): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_unassert): Likewise. - (cpp_print_file_and_line): Add missing argument `pfile' in call to - cpp_file_line_for_message. - (v_cpp_error): New function. - (cpp_error): Use it. Also accept variable arguments. - (v_cpp_warning): New function. - (cpp_warning): Use it. Also accept variable arguments. - (cpp_pedwarn): Accept variable arguments. - (v_cpp_error_with_line): New function - (cpp_error_with_line): Use it. Accept variable arguments. - (v_cpp_warning_with_line): New function. - (cpp_warning_with_line): Use it. Accept variable arguments. Hide - definition. - (cpp_pedwarn_with_line): Accept variable arguments. - (cpp_pedwarn_with_file_and_line): Likewise. - (cpp_error_from_errno): Constify parameter `name'. Add missing - argument `pfile' in call to cpp_file_line_for_message. - (cpp_perror_with_name): Constify parameter `name'. - - * cpplib.h: Define PARAMS() in terms of PROTO(). - (fatal): Remove redundant prototype. - (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, - cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, - cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, - cpp_fatal, cpp_message, cpp_pfatal_with_name, - cpp_file_line_for_message, cpp_print_containing_files): Add - arguments to prototypes. - (scan_decls, cpp_finish): Add prototypes. - - * cppmain.c: Include gansidecl.h. - (main): Remove unused variable `i'. - - * dbxout.c: Include toplev.h. - - * demangle.h (do_tlink, collect_execute, collect_exit, - collect_wait, dump_file, file_exists): Add prototype. - - * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide - prototype and definition. - (gen_unspecified_parameters_die): Don't assign results of call to - function new_die() to unused variable `parm_die'. - (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. - (dwarf2out_define): Likewise for `lineno' and `buffer'. - - * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide - prototype and definition. - (output_die): Add prototype arguments to function pointer arg. - (output_unspecified_parameters_die): Mark parameter `arg' with - ATTRIBUTE_UNUSED. +Wed Mar 17 23:17:42 1999 Mark Kettenis <kettenis@gnu.org> + + * config/t-gnu (SYSTEM_HEADER_DIR): New variable. Set to + `/include' in order to find the system's limits.h. + +Wed Mar 17 23:00:18 1999 Robert Lipe <robertlipe@usa.net> + + * fixinc/fixincl.c: Include auto-host.h instead of config.h. + * fixinc/procopen.c: Likewise. + * fixinc/regex.c: Likewise. + * fixinc/server.c: Likewise. + +Wed Mar 17 22:46:13 1999 Mark Elbrecht <snowball3@usa.net. + + * config/i386/go32.h: Delete. + * config/i386/djgpp.h: New. Renamed from go32.h. + Added -DDJGPP=2 to CPP_PREDEFINES. + * config/i386/go32-rtems.h: Delete. + * config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h. + Added -DDJGPP=2 to CPP_PREDEFINES. + * config/i386/xm-go32.h: Delete. + * config/i386/xm-djgpp.h: New. Renamed from xm-go32.h. + * config/i386/x-go32: Delete. + * config/i386/x-djgpp: New. Renamed from x-go32. + * config/i386/t-go32: Delete. + * config/i386/t-djgpp: New. Renamed from t-go32. + * configure.in(pc-msdosdjgpp): Set xm_file to i386/xm-djgpp.h. + Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp. + Set xmake_file to i386/x-djgpp. + (*-go32-msdos, *-go32*): Remove entries. Warn that GO32/DJGPP V1.X + is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be + used instead. + * configure: Rebuilt. + + * gcc.c (process_command): Dump link_command_spec too. - * except.c (output_exception_table_entry): Remove unused variable - `eh_entry'. +Wed Mar 17 20:38:08 1999 Jerry Quinn <jquinn@nortelnetworks.com> + Jeff Law <law@cygnus.com> - * except.h (expand_fixup_region_start, expand_fixup_region_end): - Add prototypes. + * pa.md: Add real PA8000 scheduling information. - * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. + * pa.h (processor_type): Add PROCESSOR_8000 symbol. + (ISSUE_RATE): Revamp, including PA8000 support. + * pa.c (override_options): Add 8000 as -mschedule= option. + Do not call strcmp if pa_cpu_string is null. + * pa.md (attr cpu): Add 8000. + * invoke.texi: Add documentation for PA8000 scheduling. - * expr.h (do_jump_by_parts_equality_rtx): Add prototype. +Wed Mar 17 18:20:24 1999 David S. Miller <davem@redhat.com> - * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h - before cpplib.h, include cpphash.h, remove redundant prototype of - cpp_fatal, don't define `const', add a prototype for `fatal'. - (cpp_file_line_for_message): Add missing arguments `pfile'. - (v_cpp_message): New function. - (cpp_message): Use it. - (v_fatal): New function. - (fatal, cpp_fatal): Use it. - (cpp_pfatal_with_name): Constify parameter `name'. + * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS): + Add descriptions. + * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise. + * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise. - * flow.c (free_regset_vector): Remove redundant prototype. +Wed Mar 17 14:51:19 1999 Richard Henderson <rth@cygnus.com> - * function.c (round_down): Wrap prototype and definition with - macro ARGS_GROW_DOWNWARD. - (record_insns): Wrap prototype and definition with - defined (HAVE_prologue) || defined (HAVE_epilogue). + * flow.c (compute_immediate_dominators): New function. + * basic-block.h (compute_immediate_dominators): Declare it. - * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. + * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes + in FP regs. + (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs. - * gen-protos.c: Include gansidecl.h. - (hashf): Don't make it static, constify parameter `name'. +Wed Mar 17 14:41:41 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile + time warning. + * config/arm/arm.md: Fix various compile time warnings. + * config/arm/arm.h: Fix various compile time warnings. Add + function prototypes. + * config/arm/arm.c: Fix various compile time warnings. + (arm_override_options): Reorganize to separate tuning from + targetting. + (bit_count): New function: Return a count of the number of bits + set in a word. + +Wed Mar 17 21:29:12 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for + things that were eliminated. + +Wed Mar 17 12:16:26 1999 Richard Henderson <rth@cygnus.com> + + * function.c (fixup_var_refs_1): First try moving the expression + directly into a register. Don't separate cc0 setter and user. + +Wed Mar 17 11:20:29 1999 Dave Brolley <brolley@cygnus.com> + + * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already. + +Wed Mar 17 09:25:06 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-lex.c: Don't include setjmp.h. + (parse_float): New static function. + (pf_args): New struct. + (yylex): Use them in call to `do_float_handler'. + +1999-03-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * cexp.y (yyerror): Call verror to get a useful error message. + * cexp.c: Rebuilt. + + * .gdbinit: Move command to put breakpoint at abort to end of file + so that gdb does not bail out early. + +Tue Mar 16 15:30:19 1999 Nick Clifton <nickc@cygnus.com> + + * rtl.h: Rename prototype for free_bb_memory to free_bb_mem. + +Tue Mar 16 23:40:09 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (movsi_i): Move t/r alternative after r/rI alternative. + +Tue Mar 16 13:44:50 1999 Jim Wilson <wilson@cygnus.com> + + * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3): + Delete emit_library_call_value declaration. + +1999-03-16 Zack Weinberg <zack@rabi.columbia.edu> + + * cppfiles.c (read_and_prescan): Map backslash-newline to '\r' + (which cannot otherwise appear in the processed buffer) and + move it out of tokens that it appears in the middle of. + Improve performance. + (find_position): New function. + + * cpplib.c: \r (one character) indicates backslash + newline, not \\\n (two characters). It cannot appear in the + middle of a token. Call CPP_BUMP_LINE (pfile) whenever + parsing moves past \n or \r. Increment pfile->lineno whenever + a \n is placed into token_buffer. Only one mark can exist at + a time, and CPP_BUMP_LINE must not be used while it is + active. It is automatically cleared by cpp_pop_buffer and + parse_goto_mark. \r is not in is_hor_space or is_space. + + (NEWLINE_FIX, NEWLINE_FIX1, adjust_position, + update_position, count_newlines, parse_move_mark): Removed. + (parse_string, copy_comment): New functions. + (parse_name): Returns void. + (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only + one argument, a cpp_reader *. Change for new marking scheme. + (skip_comment): Handle CHILL line comments too. Second + argument is now first character of comment marker; all callers + changed. Issue error for unterminated block comment here. + (cpp_skip_hspace): Recognize CHILL comments. + (copy_rest_of_line): Likewise. Call skip_comment and + parse_string directly, don't go through cpp_get_token. Emit + "/**/" for block comments if -traditional (create_definition + needs this). + (do_define): Don't play with put_out_comments. + (cpp_push_buffer): Initialize ->mark to -1. + (cpp_buf_line_and_col): Just read out the values in the buffer + structure. + (output_line_command): Use cpp_buf_line_and_col. Fix + formatting. Remove stale code. + (cpp_get_token): Break out string parsing code to + parse_string. Use skip_comment for CHILL comments too. Use + copy_comment for put_out_comments instead of dinking with + marks. Remove stale code. Don't call output_line_command + unless it's necessary. + + * cpplib.h (parse_marker): Removed. + (struct cpp_buffer): Line_base is now a unsigned char *; add + `mark' [long], remove `marks' [struct parse_marker *]. + (parse_set_mark, parse_clear_mark, parse_goto_mark): Update + prototypes. + (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros. + * cppinit.c (is_hor_space, is_space): '\r' is not considered + whitespace. + * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not + SKIP_WHITE_SPACE. + * cpphash.c (macarg): Disable line commands while expanding. + +Tue Mar 16 11:30:19 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * c-lex.c (yylex) : Remove warning for integer literals being + larger than the largest target int. Add warning for integer + literal being larger than than its chosen type. + +Tue Mar 16 10:53:17 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * invoke.texi: Add -mlong32 documentation. + * config/mips/mips.h (mips_explicit_type_size_string): New. + (TARGET_SWITCHES): Add 'long32'. + (TARGET_OPTIONS): Add 'explicit-type-size'. + (CC1_SPECS): Set -mexplicit-type-size. + (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'. + * config/mips/abi64.h (LONG_MAX_SPEC): Same. Add 'mabi=32'. + * config/mips/mips.c (mips_explicit_type_size_string): New. + (override_options): Use it. + * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size. + + * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): + Pointer size now depends on both size longs and size of GP + registers. + +Tue Mar 16 10:22:22 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP, + dtors_section): Use Pmode == DImode rather than TARGET_LONG64. + * config/mips/mips.c (override_options): Allow -mlong64 and + -mint64 with -mips2 or less. + * config/mips/mips.h (MASK_LONG64): Fix comment. + (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64. + (Pmode): Make Pmode the smaller of longs or gp registers. + * invoke.texi: Note the new size for pointers. + +Mon Mar 15 22:45:25 1999 David Edelsohn <edelsohn@gnu.org> + + * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754 + bit-pattern directly. + (ASM_OUTPUT_REG_{PUSH,POP}): Delete. + * rs6000.c (first_reg_to_save): If profiling and context needed, + allocate a reg to save static chain for all ABIs. For AIX + profiling, calculate parameter registers to save based on need. + (output_function_profiler): Save and restore static chain around + profile call for all ABIs. + +1999-03-15 Zack Weinberg <zack@rabi.columbia.edu> + + * cppinit.c: Instead of one pending list, keep separate lists + for each category of pending option: -D/-U, -A, -include, + -imacros. Move the four partial include-path lists into the + pending block. Use head and tail pointers so we don't ever + have to reverse the lists. + + (cpp_start_read): Break out blocks of code to their own + functions: install_predefs and initialize_dependency_output. + Use path_include for C_INCLUDE_PATH and friends as well as + CPATH. Remove include_defaults gunk. Warn about the + combination of -lang-chill and -trigraphs. Optimize string + bashing. Walk each pending list once, deallocating as we go. + + (append_include_chain): Brought over from cppfiles.c. Mark + dirs as system include dirs if and only if appending to + system include path. If opts->verbose, print a notice when a + dir is dropped from the include path because it doesn't + exist. Fix memory leak: this function is not supposed to copy + its DIR argument. + + (nreverse_pending, push_pending): Removed. + (APPEND): New macro for adding to pending lists. + (path_include): Can now add to any partial include path. + (base_name): Bring over from cccp.c. + (cpp_options_init): Allocate the pending block. + (cpp_handle_option): Add --version. Exit after --help. Fix + formatting. Order -ifoo options by frequency of usage. + (install_predefs): New function, simplified version of code + that was in cpp_start_read. + (initialize_dependency_output): Likewise. Understand OBJECT_SUFFIX. + + * cppfiles.c (simplify_pathname): Export. + (merge_include_chains): Don't nreverse the lists. If + opts->verbose, print a notice when a duplicate dir is detected + and dropped from the include path. + (finclude): Fix excessive cleverness in setting + fp->system_header_p. + (actual_directory): Set x->sysp from + CPP_BUFFER (pfile)->system_header_p so that one system header + may include another with "". + (deps_output): Fix double adjustment of deps_size which would + cause all dependencies after the first two lines to be lost. + + * cpplib.c (cpp_unassert): New function. + * cpplib.h: Lay out struct cpp_pending here. Adjust + prototypes. Add include_prefix_len to struct cpp_options. + +Mon Mar 15 16:01:52 1999 Jim Wilson <wilson@cygnus.com> + + * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving + from HI/LO/HILO/MD into general registers the same as for one + of moving general registers to HI/LO/HILO/MD. + +Mon Mar 15 12:39:38 1999 Nick Clifton <nickc@cygnus.com> + + * config/m32r/m32r.c (init_idents): New function. Initialize + static tree nodes for m32r specific attribute identifiers. Remove + leading and trailing double underscores from the attribute names. + (m32r_valid_machine_decl_attribute): Call init_idents. + (m32r_encode_section_info): Call init_idents. + +Mon Mar 15 10:20:20 1999 Mark Mitchell <mark@markmitchell.com> + + * reload.c (find_reloads): Add a REG_LABEL note if we substitute a + LABEL_REF for something else. + +Mon Mar 15 08:24:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fold-const.c (exact_real_inverse): Move variable `float_error' + into the scope where it is used. + (const_binop_1): New static function. + (cb_args): New struct. + (const_binop): Use them in call to `do_float_handler'. + (fold_convert_1): New static function. + (fc_args): New struct. + (fold_convert): Use them in call to `do_float_handler'. + +Mon Mar 15 22:50:18 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * rtlanal.c (auto_inc_p): New function. + * rtl.h (auto_inc_p): Prototype it. + * reload1.c (add_auto_inc_notes): New function. + (reload): Strip REG_INC notes and call add_auto_inc_notes + for each insn to restore them correctly. + +1999-03-15 Manfred Hollstein <manfred@s-direktnet.de> + + * fixinc/Makefile.in (procopen.o): List the actual + dependencies. + +Sun Mar 14 16:22:10 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cse.c (check_fold_consts): New static function. + (cfc_args): New struct. + (simplify_relational_operation): Use them in call to + `do_float_handler'. + + * toplev.c (do_float_handler): New function to wrap calls to + setjmp/set_float_handler. + + * toplev.h (do_float_handler): Add extern prototype. + + * tree.c (build_real_from_int_cst_1): New static function. + (brfic_args): New struct. + (build_real_from_int_cst): Use them in call to + `do_float_handler'. + +Sun Mar 14 01:15:06 1999 Jeff Law (law@cygnus.com) - * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match - specifier %s in calls to function `fatal'. + * version.c: Bump for snapshot. - * haifa-sched.c: Include toplev.h. - (find_rgns): Remove unused variable `j'. +Sat Mar 13 17:37:18 1999 Richard Henderson <rth@cygnus.com> - * integrate.c (note_modified_parmregs): Mark parameter `x' with - ATTRIBUTE_UNUSED. - (mark_stores): Likewise. + * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET. - * jump.c (mark_modified_reg): Likewise. +Sat Mar 13 11:36:16 1999 Richard Earnshaw (rearnsha@arm.com) - * output.h (insn_current_reference_address): Add prototype. - (eh_frame_section): Likewise. + * arm.c (arm_split_constant): Don't try to force a constant to + memory after arm_reorg has run. + (after_arm_reorg): New static variable. + (arm_reorg): Set it. + (output_func_epilogue): Clear it. - * print-rtl.c: Include bitmap.h. +Fri Mar 12 20:26:32 1999 David Edelsohn <edelsohn@gnu.org> - * reload1.c (reload): Wrap variables `note' and `next' in macro - PRESERVE_DEATH_INFO_REGNO_P. - (forget_old_reloads_1): Mark parameter `ignored' with - ATTRIBUTE_UNUSED. - (choose_reload_regs): Remove unused variable `in'. - (reload_cse_invalidate_mem): Mark parameter `ignore' with - ATTRIBUTE_UNUSED. - (reload_cse_check_clobber): Likewise. + * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none. + * configure: Rebuilt. - * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. - (mark_elimination): Fix typo in prototype. +Fri Mar 12 20:45:30 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * scan-decls.c: Include gansidecl.h. + * unroll.c (loop_iterations): Don't return a final value for EQ + comparison loops. - * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. +Fri Mar 12 12:35:01 1999 Jim Wilson <wilson@cygnus.com> -Mon May 18 22:37:33 1998 Jeffrey A Law (law@cygnus.com) + * reload1.c (calculate_needs_all_insns): When ignore equivalence + setting insn, clear need_elim, need_reload, and need_operand_change. - * function.c (identify_blocks): Fix thinko when setting the - block number for NOTE_INSN_BLOCK_END. +Fri Mar 12 07:54:43 1999 Bruce Korb <korb@datadesign.com> -Mon May 18 15:30:42 1998 Nick Clifton <nickc@cygnus.com> + * fixinc/fixinc.*: Some changes from the fixincl-branch + were not applied (??!!). Corrected. - * config/v850/lib1funcs.asm: Add .text pseudo op to start of - ___udivsi3. + * fixinc/Makefile.in: Same thing. - * config/v850/lib1funcs.asm: Fix .size pseudo ops to use three - underscores for the prefixes to the names of the maths functions. +Fri Mar 12 00:51:43 1999 Jeffrey A Law (law@cygnus.com) - * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE. Add - comment explaining why. + * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than + MAX_INTEGER_COMPUTATION_MODE. -Mon May 18 13:20:23 1998 Richard Henderson <rth@cygnus.com> +Thu Mar 11 14:00:58 1999 Richard Henderson <rth@cygnus.com> - * tree.h (TYPE_SIZE_UNIT): New. - (struct tree_type): Add size_unit member. - * stor-layout.c (layout_type): Initialize it. - * expr.c (get_inner_reference) [ARRAY_REF]: Use it. - * tree.c (size_in_bytes, int_size_in_bytes): Likewise. + * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs. + (MODES_TIEABLE_P): Update. -Mon May 18 12:07:37 1998 Richard Earnshaw (rearnsha@arm.com) + * alpha.md (ev5_e0): Conflict loads and stores. - * stor-layout.c (layout_record): Fix off-by-one error when checking - length of the TYPE_BINFO vector. +Thu Mar 11 13:55:52 1999 Richard Henderson <rth@cygnus.com> -Mon May 18 10:59:23 1998 Nick Clifton <nickc@cygnus.com> + * machmode.h (smallest_mode_for_size): Prototype. + * stor-layout.c (smallest_mode_for_size): Remove static. - * dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a - function parameter passed in memory. +Thu Mar 11 21:25:59 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon May 18 09:02:09 1998 Robert Lipe <robertl@dgii.com> + * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv + conversion if we don't know the lifetime. - * dwarfout.h, dwarf2out.h, dbxout.h, sdbout.h: New files. - Prototypes for externally used functions in respective C files. - * dwarfout.c, dbxout.c, dwarf2out.c, sdbout.c, toplev,c, - final.c: Include above files. - * Makefile.in (toplev.o): Add dependency for above four headers. - (final.o): Likewise. - (dwarfout.o, dbxout.o, dwarf2out.o, sdbout.o): Depend on four - respective header files. +Thu Mar 11 20:37:59 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon May 18 01:23:33 1998 Jeffrey A Law (law@cygnus.com) + * reload.1c (delete_address_reloads_1): Check for reloads of + CURRENT_INSN even if it sets DST. - * Makefile.in (TARGET_TOOLPREFIX): No longer define. - (AR_FOR_TARGET, RANLIB_FOR_TARGET): Define to use versions in - the build tree if they exist. - (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Update - appropriately. - (objdir): Let configure substitute value. - (FLOAT_H): Let configure select a pre-built version from the - config subdir. - * build-make (INSTALL_TARGET, ALL): Disable, no longer needed. - * configure.in: Substitute for objdir. +Thu Mar 11 10:29:50 1999 Jason Merrill <jason@yorick.cygnus.com> - * Makefile.in (build_canonical, host_canonical): Let configure - substitute values for these variables. - * configure.in: Substitute for build_canonical, host_canonical - and target_subdir in generated Makefile. + * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset. + (print_die, size_of_die, value_format, output_die): Adjust. - * output.h (find_basic_blocks): Declare. - (free_basic_block_vars, set_block_num, life_analysis): Likewise. +Thu Mar 11 10:27:42 1999 Robert Lipe <robertlipe@usa.net> - * Makefile.in (BISON): Use bison from the build tree if it exists. - (FLEX): Similarly. + * dwarf2out.c (TEXT_SECTION_LABEL, DEBUG_LINE_SECTION_LABEL, + DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL, + text_section_label, debug_line_section_label, + debug_info_section_label, abbrev_section_label): New. + (output_compilation_unit_header): Emit label associated + with section instead of section name itself. + (out_pubnames, output_aranges, output_line_info, + dwarf2out_finish): Likewise. + (dwarf2out_init): Build internal label names for sections + from static labels. -Mon May 18 00:08:19 1998 Nick Clifton <nickc@cygnus.com> +Thu Mar 11 17:28:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * 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. + * sh.md (mulsi3): End mul.l sequence with a no-op move. - * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new - driver macro. +Thu Mar 11 08:52:02 1999 Bruce Korb <korb@datadesign.com> -Sun May 17 23:59:45 1998 John Wehle (john@feith.com) + * Makefile.in: Activated fixinc/mkfixinc.sh. + * configure.in: Activated fixinc/mkfixinc.sh. - * i386.h (ALIGN_DFmode): Delete. - (CONSTANT_ALIGNMENT): Define. - * varasm.c (force_const_mem): Use it. +Thu Mar 11 01:38:02 1999 Mumit Khan <khan@xraylith.wisc.edu> -Sun May 17 19:31:05 1998 Richard Henderson <rth@cygnus.com> + * cppfiles.c (INO_T_EQ): Handle UWIN. - * alpha.c (alpha_emit_conditional_branch): Clear cmp_code after - using it with swap_condition, not before. + * c-common.c (decl_attributes): Flag unrecognized attribute + functions as warnings instead of as errors. -Sun May 17 13:44:32 1998 Jim Wilson <wilson@cygnus.com> + Support for i386-pc-uwin. + * i386/uwin.h: New file. + * i386/xm-uwin.h: New file. + * i386/t-uwin: New file. + * i386/uwin.asm: New file. + * configure.in (i[3456]86-*-uwin*): Define. + Add Workaround for vfork bug when hosted on uwin. + * configure: Regenerate. - * alias.c (mode_alias_check): Delete. - (true_dependence, anti_dependence, output_dependence): Revert April 21 - change. + * cccp.c (INO_T_EQ): Undefine. UWIN has inodes. + (absolute_filename): UWIN uses POSIX pathnames only. + * libgcc2.c (getpagesize): Do not define for UWIN. + (mprotect): Likewise. + * protoize.c (dirent.h): Conditionally include. + (fputc): Prototype only if it's not a macro. -Sun May 17 08:45:21 1998 Krister Walfridsson <cato@df.lth.se> +Wed Mar 10 02:49:04 1999 Jason Merrill <jason@yorick.cygnus.com> - * toplev.c (output_lang_identify): Enable prototype and definition. + * configure.in: Remove init_priority stuff. -Sun May 17 01:12:27 PDT 1998 Jeff Law (law@cygnus.com) +1999-03-11 Colin Smith <colin@wrs.com> - * version.c: Bump for snapshot. + * sdbout.c (plain_type_1): Make boolean types work better with sdb. -Sat May 16 23:20:32 1998 Richard Henderson <rth@cygnus.com> +Thu Mar 11 00:20:52 1999 Alexandre Oliva <oliva@dcc.unicamp.br> - * alpha/osf.h (HAVE_STAMP_H): Define. - * alpha.c: Use it. - * alpha/netbsd.h, alpha/netbsd-elf.h: New files. - * configure.in (alpha*-*-netbsd*): New. - Based on patches from Paul H. Anderson <pha@pdq.com>. + * gcc.texi: Update bug reporting instructions to match + current ezmlm list reality. - * configure.in (alpha*-*-linux-*): Kill xm_defines. - (alpha*-*-linux-gnulibc1*) [fixincludes]: Define. - * alpha/xm-linux.h: Remove file. +Wed Mar 10 23:11:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.c (print_file_name, print_prog_name, spec_machine, + read_specs, set_spec, lookup_compiler, build_search_list, + putenv_from_prefixes, find_a_file, record_temp_file, + delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file, + is_directory, validate_switches, used_arg, default_arg, + pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error, + notice, add_preprocessor_option, add_assembler_option, + add_linker_option, process_command, execute, + unused_prefix_warnings, clear_args, fatal_error, + lang_specific_driver, user_specs, compiler, link_command_spec, + option_map, translate_options, make_temp_file, temp_name, + programname, path_prefix, machine_suffix, just_machine_suffix, + gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1, + md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1, + standard_startfile_prefix, standard_startfile_prefix_1, + standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix, + multilib_dir, temp_filename, temp_file, command, switchstr, + infile, outfiles, input_filename, input_basename, input_suffix, + check_live_switch, main): Qualify a char* with the `const' keyword. + +Wed Mar 10 20:28:29 1999 Jeffrey A Law (law@cygnus.com) + + * lcm.c: New file. + * Makefile.in (OBJS): Add lcm.o. + (lcm.o): Add dependencies. + + * gcse.c (compute_pre_local_properties): Delete. + (compute_pre_data): Use compute_local_properties instead of + compute_pre_local_properties. + + * gcse.c: More comments, whitespace and similar fixes. + (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete. + (dump_pre_data, compute_cprop_local_properties): Likewise. + (one_classic_gcse_pass): Lose unused argument. All callers changed. + (compute_hash_table, compute_expr_hash_table): Likewise. + (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise. + (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS. + All callers changed. Only alter jumps if ALTER_JUMPS is nonzero. + Lose unused argument. + (gcse_main): Always run a cprop pass after finishing global cse. + (compute_local_properties): New function. + (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen. + (compute_cprop_data): Use compute_local_properties. + + * gcse.c: Update various comments. + (current_function_calls_longjmp): Delete declaration. + + * gcse.c (run_jump_opt_after_gcse): New variable. + (gcse_main): Returns an integer. + (hash_scan_set): Record initializations from CONST_DOUBLEs too. + (try_replace_reg): Update some comments. + (cprop_insn): Allow propagation into some JUMP_INSNs too. + * rtl.h (gcse_main): Update prototype. + * toplev.c (rest_of_compilation): If gcse_main returns nonzero, + then run a jump optimization pass. + * jump.c (delete_barrier_successors): Delete nop jumps too. + +Wed Mar 10 19:04:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.c (fp_arith_reg_operand): Actually test if reg is suitable + for FP arithmetic. Changed caller. + * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand. + +Wed Mar 10 18:56:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (choose_reload_regs): When inheriting from the frame + pointer, don't clobber it. + +Wed Mar 10 08:01:52 1999 Bruce Korb <korb@datadesign.com> + + * fixinc/fixinc.*: Resync-ed with the files in this + directory. -Sat May 16 18:32:45 1998 Doug Evans <devans@canuck.cygnus.com> + * fixinc/mkfixinc.sh: The machine case elements were + out-of-order. (the ix86-*-linux-gnu* entry needed to + be earlier). - * dbxout.c (dbxout_parms): If mode of type of parameter living - in memory doesn't match mode of DECL_RTL, make big endian correction. +Wed Mar 10 00:01:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Fri May 15 21:40:06 1998 John Wehle (john@feith.com) + * reload1.c (reload_combine_note_store): Fix calculation of number + of affected registers. - * i386.md (movdi-1, movdi): Rewrite based on SI move patterns. +Tue Mar 9 15:48:15 1999 Richard Henderson <rth@cygnus.com> -Fri May 15 18:55:22 1998 Jason Merrill <jason@yorick.cygnus.com> + * flow.c (tidy_fallthru_edge): Be more careful finding the last + BARRIER of a list. Delete the cc0 setter as well as a cond jump. - * tree.h (BINFO_SIZE, TYPE_BINFO_SIZE): New macros. - * stor-layout.c (layout_record): Set it. +Tue Mar 9 15:26:02 1999 Hans-Peter Nilsson <hp@bitrange.com> -Fri May 15 18:49:30 1998 Mark Mitchell <mmitchell@usa.net> + * i386.md (ashlsi3 splitter): Fix typo in last change. - * toplev.c (rest_of_compilation): Don't defer nested functions. +Tue Mar 9 11:35:20 1999 Richard Henderson <rth@cygnus.com> -Fri May 15 17:42:52 1998 Bob Manson <manson@charmed.cygnus.com> + * reg-stack.c (stack_reg_life_analysis): Use returnjump_p + instead of an explicit test for RETURN. - * config/rs6000/rs6000.c (rs6000_stack_info): Align the stack bottom - to an 8-byte boundary if info_ptr->fpmem_p. +Tue Mar 9 09:33:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Fri May 15 17:36:11 1998 Bill Moyer <ttk@cygnus.com> + * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H). - * loop.c (basic_induction_var): Added test preventing - CCmode parameter passed to convert_modes(). + * toplev.c: Include basic-block.h. -Fri May 15 17:26:18 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> +Tue Mar 9 02:08:17 1999 Jeffrey A Law (law@cygnus.com) - * expr.c (expand_expr, case EXPR_WITH_FILE_LOCATION): Save/restore - input_filename and lineno around expand_expr call. Set them to values - in WFL before expand_expr call. + * calls.c (load_register_parameters): New function. + (expand_call): Use it. -Fri May 15 12:44:57 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> + * calls.c (expand_call): Slightly reorganize code. - * stor-layout.c (set_sizetype): Set TYPE_NAME on bitsizetype. + * calls.c (compute_argument_addresses): New function. + (rtx_for_function_call): New function. + (expand_call): Use them. -Fri May 15 07:20:03 1998 Mark Mitchell <mmitchell@usa.net> + * i386.md (zero_extendhisi2): Split into an expander and anonymous + pattern. Add new anonymous pattern for use when optimizing for + size or for the PPro. + (zero_extendqihi2, zero_extendqisi2): Likewise. - * fold-const.c (constant_boolean_node): New function. - (fold): Use it. +Mon Mar 8 23:43:47 1999 Richard Henderson <rth@cygnus.com> -Fri May 15 11:21:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber + dependencies to sets in the non-hard-reg case too. - * sh.c (gen_shl_and): Don't sign extend constant for kind two. - Abort if trying to split kind 3 or 4 outside of combine. +Mon Mar 8 18:55:21 1999 Marc Espie <espie@cvs.openbsd.org> -Fri May 15 01:47:37 1998 Jeffrey A Law (law@cygnus.com) + * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define. - * mips.c (print_operand, case 'x'): Use HOST_WIDE_INT_PRINT_HEX. +Mon Mar 8 16:04:44 1999 Jim Wilson <wilson@cygnus.com> -Fri May 15 01:42:45 1998 Mumit Khan <khan@xraylith.wisc.edu> + * local-alloc.c (combine_regs): Don't combine if we have a hard reg + for which CLASS_LIKELY_SPILLED_P is true. - * objc/Make-lang.in (OBJC_O): Add missing exeext. - (libobjc.a, runtime-info.h): Likewise. + * unroll.c (loop_iterations): Only call loop_find_equiv_value if we + have a REG or SUBREG. -Fri May 15 01:29:39 1998 John Wehle (john@feith.com) +Mon Mar 8 15:27:42 1999 Jeffrey A Law (law@cygnus.com) - * i386.h (DATA_ALIGNMENT): Define. + * i386.md (ashlsi3): Revise comments. Provide new anonymous + pattern for Pentium and PPro/PII. Reverse constraints in + generic ashlsi3 anonymous pattern. -Fri May 15 05:35:37 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * calls.c (initialize_argument_info): Accept a pointer to + CUMULATIVE_ARGS. + (expand_call): Pass the address of CUMULATIVE_ARGS. - * reload1.c (delete_output_reload): Ignore single USE that - was emitted for the pseudo use of this INSN. - If the no reference to REG between OUTPUT_RELOAD_INSN and INSN - remains, we can always delete OUTPUT_RELOAD_INSN. + * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0. -Thu May 14 18:38:50 1998 Jim Wilson <wilson@cygnus.com> + * mn10300.h (CASE_DROPS_THROUGH): Delete. + * mn10200.h (CASE_DROPS_THROUGH): Delete. + * h8300.h (CASE_DROPS_THROUGH): Delete. - * reload.c (find_reloads): Don't penalize SCRATCH output reload. + * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure + to also delete the cc0 setter when deleting a conditional branch + to the next block. -Thu May 14 15:10:30 1998 Jeffrey A Law (law@cygnus.com) +Mon Mar 8 18:47:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * Makefile.in (expr.o): Remove dependency on deleted modemap.def file. + * regmove.c (copy_src_to_dest): New argument max_old_uid. -Thu May 14 16:30:47 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Mon Mar 8 08:23:00 1999 Bruce Korb <korb@datadesign.com> - * eh-common.h: New file for basic EH data structures. - * except.h: Various prototypes and structures for NEW_EH_MODEL - * function.h (struct function): Add a struct eh_stack for the catch - clause stack. - * except.c (gen_exception_label): New function to generate an - exception label. - (push_eh_entry): Use gen_exception_label() and init 'label_used' field. - (push_entry): New function to push an existing entry onto a stack. - (receive_exception_label): New function to emit the code required - at the start of all catch blocks. - (struct func_eh_entry): New structure for maintaining handlers - associated with EH regions. - (new_eh_region_entry): New function to register an EH region. - (add_new_handler): New function to register a handler with a region. - (get_new_handler): Creates anew handler entry for registering. - (find_func_region): New function to convert a NOTE eh region number - to an Eh region index. - (get_first_handler): New function to get the first handler in a region. - (clear_function_eh_region): New function to release memory. - (duplicate_handlers): New function to duplicate a list of handlers. - (expand_eh_region_end): Create a new region entry node as well. - (expand_leftover_cleanups): Call receive_exception_label() and - register the cleanup as a handler to the current region. - (expand_start_catch): New function to start a catch clause. - (expand_end_catch): New function to end a catch clause. - (expand_start_all_catch): restructure to not do the equivilent of - what expand_start_catch() does now. Push the exception region being - handled onto the catch stack. - (output_exception_table_entry): Issue an entry for each handler - associated with a region. - (set_exception_lang_code): New function for setting the language code. - (set_exception_version_code): New function to set the version number. - (output_exception_table): Output version and language codes. - (find_exception_handler_labels): Find handler labels using new scheme. - (is_exception_handler_label): New function, returns 1 if label is - present as a handler in some exception region. - (check_exception_handler_labels): Use the new scheme. - (init_eh_for_function): Initialize the catch stack. - (save_eh_status): Save the catch stack. - (restore_eh_status): Restore the catch stack. - (scan_region): Don't remove unreferenced handler label. Flow does it. - (get_reg_for_handler): New function to get the eh_context pointer - passed by __throw. - (expand_builtin_eh_stub): Changes required for NEW_EH_MODEL only. - * final.c (final_scan_insn): With NEW_EH_MODEL, add EH table - entry when processing END region rather that START region. - * flow.c (find_basic_blocks_1): Find all potential handler regions - now that we don't automatically know what the labels might be. - Let scan_region() remove unreferenced EH BEGIN/END labels. - * integrate.c (get_label_from_map): Put inlined labels onto the - permanent obstack since we dont know which ones might be exception - labels. - (save_for_inline_copying): Make new copies of all the handlers. - (expand_inline_function): Make new copies of all the handlers. - * libgcc2.c: Remove local struct decls, and include eh-common.h. - (find_exception_handler): With NEW_EH_MODEL the first matching - region we find is the right one. Add eh_info as a new parameter. - (__throw): Pass eh_info to find_exception_handler. Set handler - and pass use different regs under NEW_EH_MODEL. - -Thu May 14 12:58:21 1998 Jim Wilson <wilson@cygnus.com> - - * i960.h (hard_regno_mode_ok): Changed to function from array of - unsigned. - (HARD_REGNO_MODE_OK): Call function instead of testing bit. - * i960.c (hard_regno_mode_ok): Changed to function from array of - unsigned. - -Thu May 14 08:41:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (remove_replacements): New function. - * reload.h (remove_replacements): Declare. - * reload1.c (choose_reload_regs): Disable some reloads that - belong to inherited reloads. - -Thu May 14 02:17:17 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (scan_loop): Don't call move_moveables for optimize_size. - - * reload1.c (merge_assigned_reloads): When merging, reset - reload_spill_index for the eliminated reload. - -Wed May 13 17:51:13 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_insns): Fix merge goof. - -1998-05-13 Jim Wilson <wilson@cygnus.com> - - * varasm.c (make_decl_rtl): Revert April 1 change. - * alpha/alpha.h, alpha/win-nt.h, arm/arm.h, i386/unix.h, i960/i960.h, - m68k/linux.h, pa/pa.h, sparc/sparc.h, vax/vax.h (ASM_OUTPUT_MI_THUNK): - Get function name from the SYMBOL_REF in the DECL_RTL, not from - DECL_ASSEMBLER_NAME. - * i386/winnt.c (gen_stdcall_suffix): Comment for questionable use of - DECL_ASSEMBLER_NAME. - -Wed May 13 13:09:19 1998 Jim Wilson <wilson@cygnus.com> - - * i386.c (notice_update_cc, output_float_compare): Disable - TARGET_CMOVE support. - -Wed May 13 15:28:59 1998 Michael Meissner <meissner@cygnus.com> - Jeff Law <law@cygnus.com> + * ChangeLog: Merged entries from fixincl-branch. - * rtlanal.c (find_reg_note): Ignore notes that are not on on - insns of class 'i'. - (find_regno_note): Likewise. - - * Makefile.in (stor-layout.o): Depend on except.h - (varasm.o, function.o): Likewise. - (expr.o): Depend on except.h, modemap.def and hard-reg-set.h. - - * Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o. - (rtl.o, emit-rtl.o): Add dependency on bitmap.h. - ($(HOST_PREFIX_1)rtl.o): Likewise. - ($(HOST_PREFIX_1)bitmap.o): New host object. - * emit-rtl.c (toplevel): Include bitmap.h. - (gen_rtx): Handle 't' and 'b' nodes. - * print-rtl.c (print_rtx): Handle printing NOTE_INSN_LIVE notes. - Print block number for block begin/end notes. Print 't' type - nodes as a pointer. Know that the 3rd argument of live range - start/stop notes is really a range_info rtx. If type is 'b', print - out argument as a bitmap. - * rtl.c: Include bitmap.c. - (copy_rtx): Copy tree nodes as is. Copy bitmaps if type is 'b'. - (note_insn_name): Add NOTE_INSN_RANGE_{START,END}, NOTE_INSN_LIVE. - * rtl.def (RANGE_LIVE): New node to hold live information while we - recalculate the basic blocks. - (RANGE_REG, RANGE_INFO): New rtl types for live range splitting. - (RANGE_VAR): New node, to hold information saved in symbol node for New - communicating live range information to the debug output functions. - * rtl.h (rtunion_def): Add rttree and rtbit fields. - (XBITMAP, XTREE): New accessor macros. - (NOTE_LIVE_INFO): Overload NOTE_SOURCE_FILE for NOTE_INSN_LIVE notes. - (NOTE_RANGE_INFO): Similarly for NOTE_INSN_RANGE_{START,END} notes. - (NOTE_BLOCK_LIVE_RANGE_BLOCK): Define. - (NOTE_INSN_RANGE_START, NOTE_INSN_RANGE_END, NOTE_INSN_LIVE): New notes. - (RANGE_LIVE_{BITMAP,ORIG_BLOCK}): New accessor macros. - (RANGE_REG_{SYMBOL,BLOCK}_NODE, RANGE_VAR_*): New accessor macros. - (RANGE_INFO_*): Likewise. - * sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * haifa-sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * tree.h (BLOCK_LIVE_RANGE_{START,END,VAR_FLAG}): New accessor macros. - (BLOCK_LIVE_RANGE_FLAG): Likewise. - (DECL_LIVE_RANGE_RTL): Likewise. - (struct tree_block): Add live_range_flag, live_range_var_flag, - live_range_start and live_range_end. - (struct tree_decl): Add live_range_rtl field. - * gengenrtl.c (type_from_format): Handle 'b' and 't'. - (accessor_from_format): Likewise. - - * haifa-sched.c (schedule_block): Make verbose output line up. - Also add a blank line in printing the individual ready lists. - -Wed May 13 15:43:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h. - (c-lex.o): Depend on output.h. - (c-common.o): Likewise. - (stmt.o): Likewise. - (calls.o): Likewise. - (integrate.o): Depend on toplev.h. - (regclass.o): Depend on output.h. - (final.o): Depend on reload.h. - - * c-common.c: Include output.h. - (check_format_info): Remove unused variable `integral_format'. - - * c-decl.c (print_lang_decl): Mark parameters `file', `node' and - `indent' with ATTRIBUTE_UNUSED. - (print_lang_type): Likewise. - (maybe_build_cleanup): Likewise for parameter `decl'. - (copy_lang_decl): Likewise for parameter `node'. - - * c-lang.c: Include c-tree.h, c-lex.h and toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (lookup_interface): Likewise for parameter `arg'. - (is_class_name): Likewise. - (maybe_objc_check_decl): Likewise for parameter `decl'. - (maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and - `reflexive'. - (maybe_objc_method_name): Likewise for parameter `decl'. - (build_objc_string): Likewise for parameters `len' and `str'. - - * c-lex.c: Include output.h. - - * c-lex.h (position_after_white_space): Correct typo in prototype. - - * c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else, - c_expand_end_cond, init_iterators): Add prototypes. - - * caller-save.c (set_reg_live): Mark parameters `reg' and `setter' - with ATTRIBUTE_UNUSED. +Sun Mar 7 11:48:56 1999 Richard Henderson <rth@cygnus.com> - * calls.c: Include output.h. + * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far. + (print_exp): Special case addition of a constant. + (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX. - * cccp.c (pipe_closed): Mark parameter `signo' with - ATTRIBUTE_UNUSED. +Sun Mar 7 11:21:02 1999 Richard Henderson <rth@cygnus.com> - * combine.c: Move inclusion of expr.h to after insn-config.h. + * haifa-sched.c (reg_last_clobbers): New. + (reg_pending_clobbers, bb_reg_last_clobbers): New. + (compute_block_backward_dependences): Allocate memory for them. + (schedule_region): Likewise. + (sched_analyze_1): Clobbers don't interfere with one another. + They do interfere with sets ... + (sched_analyze_2): ... and uses. + (sched_analyze): Likewise. + (sched_analyze_insn): Update reg_last_clobbers appropriately. - * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define - as empty, rather define as ((void)0). +Sun Mar 7 08:30:37 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * sparc.c (sparc_check_64): Add braces around ambiguous `else'. - Add parentheses around assignment used as truth value. + * gmon-sol2.c: Include config.h and system.h. Don't redundantly + include system header files. + (sccsid): Remove. + (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype. + (_mcleanup): Add the `const' keyword to a char*. + (internal_mcount): Declare `etext' as a char[] not a function. + Cast `etext' to char* when calling `monstartup'. - * cplus-dem.c (squangle_mop_up): Change return type to void. - (internal_cplus_demangle): Remove unused parameter `options'. - All callers changed. - (cplus_demangle_opname): Remove function wide variable `int i' and - replace with `size_t i' at each location where it is used. - (cplus_demangle_opname): change type of `i' from int to size_t. + * sparc.c (frame_base_name, save_regs, restore_regs, + build_big_number, sparc_cmodel_string, sparc_align_loops_string, + sparc_align_jumps_string, sparc_align_funcs_string, code_model, + cpu_default, cpu_table, output_function_prologue, + output_function_epilogue, output_return, + sparc_flat_output_function_prologue, ultra_code_names, + sparc_flat_output_function_epilogue): Constify a char*. + (hypersparc_adjust_cost): Add a default case in a switch. - * cppexp.c (right_shift): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. + * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS, + sparc_cpu_select, sparc_align_loops_string, + sparc_align_jumps_string, sparc_align_funcs_string, + output_return): Constify a char*. - * cpphash.c (cpp_lookup): Likewise. - (cpp_hash_cleanup): Likewise. + * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT + so that we check "== 32", instead of "!= 64". Cast a value to + HOST_WIDE_INT when comparing against one. Hide the declaration + for variable `chain'. - * cpplib.c (parse_name): Add a prototype and make it static. - (null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - (null_cleanup): Likewise for parameters `pbuf' and `pfile'. - (macro_cleanup): Likewise for parameter `pfile'. - (file_cleanup): Likewise. +Sun Mar 7 08:05:27 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read, - cpp_read_check_assertion, skip_rest_of_line): Add prototypes. + * system.h (const, inline): Move the stage2 handling of these + keywords-as-macros from here... - * crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data, - __DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED. + * gansidecl.h (const, inline): ...to here. - * cse.c (cse_check_loop_start): Mark parameter `set' with - ATTRIBUTE_UNUSED. +Sun Mar 7 02:44:15 1999 Richard Henderson <rth@cygnus.com> - * dbxout.c (flag_minimal_debug, have_used_extensions, - source_label_number): Move inside macro wrapper check against - defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO). + * recog.c (push_operand, pop_operand): VOIDmode needn't match modes. - * dwarf2out.c (gen_entry_point_die): Hide prototype and definition. +Sun Mar 7 01:58:47 1999 Richard Henderson <rth@cygnus.com> - * except.h (doing_eh): Provide prototype. + * cse.c (canon_hash): Never reject hard regs in CCmode. - * expr.c: Move inclusion of expr.h to after insn-config.h. +Sun Mar 7 01:15:04 1999 Jeff Law (law@cygnus.com) - * final.c: Include reload.h. - (shorten_branches): Cast the first argument of bzero to char *. + * version.c: Bump for snapshot. - * fix-header.c (cpp_print_containing_files): Mark parameter - `pfile' with ATTRIBUTE_UNUSED. - (cpp_fatal): Likewise. +Sat Mar 6 17:18:44 1999 Richard Earnshaw (rearnsha@arm.com) + Richard Henderson <rth@cygnus.com> - * flow.c (find_basic_blocks_1): Cast the first argument of bzero - to char *. + * flow.c (make_edges): Handle casesi that jump to default branch. + If CASE_DROPS_THROUGH, force fallthru to block after casesi. - * genattrtab.c (make_length_attrs): Change the type of variable - `i' from int to size_t. - (zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED. - (one_fn): Likewise. +Sat Mar 6 07:49:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * genextract.c (main): When generating insn-extract.c, mark - variable `junk' with ATTRIBUTE_UNUSED. + * c-aux-info.c (data_type, affix_data_type, gen_decl, + gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type): + Qualify a char* with the `const' keyword. - * gengenrtl.c (gencode): When generating genrtl.c, cast the first - argument of bzero to char*. + * c-common.c (declare_hidden_char_array, add_attribute, if_elt, + declare_function_name, decl_attributes, format_char_info, + check_format_info, binary_op_error): Likewise. - * integrate.c: Include toplev.h. + * cexp.y (yyerror, error, pedwarn, warning, token): Likewise. - * libgcc2.c: Wrap `struct exception_table' and - `find_exception_handler' in macro DWARF2_UNWIND_INFO. + * gcse.c (dump_hash_table): Likewise. - * objc/Make-lang.in (objc-act.o): Depend on toplev.h. + * integrate.c (function_cannot_inline_p): Likewise. - * objc/objc-act.c: Include toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (finish_protocol): Likewise for parameter `protocol'. + * optabs.c: Include insn-config.h earlier. + (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): + Qualify a char* with the `const' keyword. - * output.h (declare_weak): Add prototype. - (decode_reg_name): Don't wrap with TREE_CODE macro. - (assemble_alias): Add prototype. + * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe, + asctoeg, mtherr, ereal_atof): Likewise. - * regclass.c: Include output.h. + * real.h (ereal_atof): Likewise. - * reload.h (reloads_conflict): Add prototype. + * sbitmap.c (dump_sbitmap_vector): Likewise. - * rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p, - output_func_start_profiler): Add prototypes. + * sbitmap.h (dump_sbitmap_vector): Likewise. - * rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with - ATTRIBUTE_UNUSED. + * stmt.c (nesting, n_occurrences, expand_start_case): Likewise. - * scan-decls.c: Include scan.h. + * toplev.c (rest_of_compilation): Likewise. - * scan.h (recognized_function, recognized_extern): Add prototypes. + * tree.h (function_cannot_inline_p, expand_start_case): Likewise. - * stmt.c: Include output.h. +Fri Mar 5 23:16:42 1999 David Edelsohn <edelsohn@gnu.org> - * toplev.c (error_for_asm, warning_for_asm): Remove prototypes. - (output_lang_identify): Hide prototype and definition. - (float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED. - (pipe_closed): Likewise. + * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do + not overwrite AIX link register save area. - * toplev.h (count_error, strip_off_ending, error_for_asm, - warning_for_asm): Add prototypes. +Fri Mar 5 23:08:01 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Wed May 13 12:54:19 1998 Michael Meissner <meissner@cygnus.com> + * reload.c (find_reloads_subreg_address): Actually create the USE + for the register, not the new memory location. - * toplev.c (rest_of_compilation): "Charge" final for any time - doing various cleanup operations after finishing compilation - of a function. +Fri Mar 5 21:41:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * flow.c (dump_flow_info): Also print number of sets and - whether or not the pseudo is a user variable. + * reload1.c (emit_reload_insns): If pseudo that can't be replaced + with its equivalent constant, fall back to reload_in. - * flow.c (reg_n_max): New global variable. - * regclass.c (allocate_reg_info): Keep reg_n_max up to date. - Delete regno_max variable. - * regs.h (REG_N_CHECK): Define. - (REG_N_REFS, REG_N_SETS, REG_N_DEATHS): Use REG_N_CHECK. - (REG_N_CHANGES_SIZE, REG_N_CALLS_CROSSED, REG_LIVE_LENGTH): Likewise. - (REGNO_FIRST_UID, REGNO_LAST_UID, REGNO_LAST_NOTE_UID): Likewise. +Fri Mar 5 13:20:39 1999 Richard Henderson <rth@cygnus.com> -Wed May 13 12:54:19 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de> + * Makefile.in: Delete .flow2 debugging files. - * acconfig.h (ENABLE_CHECKING): Undefine. - * configure.in (--enable-checking): New option. +Fri Mar 5 11:36:11 1999 Nick Clifton <nickc@cygnus.com> -Wed May 13 08:52:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/arm/arm.c (arm_override_options): Change default target + cpu selection so that enabling TARGET_APCS_32 does not override + default target CPU. - * reload1.c (merge_assigned_reloads): Can merge - RELOAD_FOR_INPUT_ADDRESS and RELOAD_FOR_OTHER_ADDRESS even - if RELOAD_FOR_INPUT with the same reload_reg_rtx is present. +Fri Mar 5 19:26:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue May 12 20:05:57 1998 Jim Wilson <wilson@cygnus.com> + * sh.h (SLOW_BYTE_ACCESS): Define to 1. + (BOOL_TYPE_SIZE): Define. - * collect2.c (main): Ignore do_collecting when COLLECT_EXPORT_LIST. +Fri Mar 5 02:14:54 1999 John Wehle (john@feith.com) -Wed May 13 03:23:45 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * function.c (assign_stack_temp_for_type): Abort + if mode == Blkmode and align is less than + BIGGEST_ALIGNMENT / BITS_PER_UNIT. + (assign_stack_temp_for_type): Round the size parameter + passed to assign_stack_local instead of size itself. - * reload1.c (gen_reload): Create REG_EQUIV notes. +Thu Mar 4 15:00:35 1999 Richard Henderson <rth@cygnus.com> -Tue May 12 22:21:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * flow.c (delete_unreachable_blocks): Mark blocks as they + are put on to the worklist, not as they are taken off. - * reload1.c (reload): Fix check for USEs to use code of pattern. - (choose_reload_regs): Remove dead variable use_insn. +Thu Mar 4 00:05:44 1999 Jeffrey A Law (law@cygnus.com) -Tue May 12 14:04:49 1998 Jeffrey A Law (law@cygnus.com) + * function.c (current_function_has_computed_jump): Remove duplicate + definition. - * pa.h (DBX_CONTIN_LENGTH): Reduce to 3000 bytes. +Wed Mar 3 19:09:11 1999 Jim Wilson <wilson@cygnus.com> -Tue May 12 15:16:02 1998 Michael Meissner <meissner@cygnus.com> + * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef. + (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string. - * haifa-sched.c (HAIFA_INLINE): Define to be __inline unless - already defined. - (find_insn_{,mem_}list): Use HAIFA_INLINE, not __inline. - (insn_{unit,issue_delay}): Ditto. - (blockage_range): Ditto. - (actual_hazard{,_this_instance}): Ditto. - (schedule_unit): Ditto. - (potential_hazard): Ditto. - (insn_cost): Ditto. - (swap_sort): Ditto. - (queue_insn): Ditto. - (birthing_insn_p): Ditto. - (adjust_priority): Ditto. - (get_block_head_tail): Ditto. - (init_rgn_data_dependences): Ditto. + * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, + MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef. + (INIT_SUBTARGET_OPTABS): Define to empty. -Tue May 12 10:27:54 1998 Klaus Kaempf <kkaempf@progis.de> +Wed Mar 3 00:00:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * alpha/vms.h (COMMON_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON): Define. + * sh.c (force_into): New function. + (expand_block_move): Use it. -Tue May 12 11:44:14 1998 Gavin Koch <gavin@cygnus.com> +Tue Mar 2 10:39:43 1999 Nick Clifton <nickc@cygnus.com> - * config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon. + * cccp.c (struct default_include): Add 'included' field. + (main): Set 'included' field when a default include directory + is added to the chain. If -v is specified list all default + include directories which do not get appended to the chain. -Tue May 12 11:38:31 1998 Gavin Koch <gavin@cygnus.com> +Tue Mar 2 09:24:10 1999 Nick Clifton <nickc@cygnus.com> - * config/mips/mips.md (dslot): Move after definition of "cpu" - attribute. Handle r3900 case. + * configure.in (gxx_include_dir): Rename to + gcc_gxx_include_dir in order to prevent it being overridden by + a top level Makefile. + (gcc_tooldir): If $exec_prefix != $prefix then use the + difference between the two as the basis for gcc_tooldir. -Tue May 12 10:21:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * configure: Rebuild. - * system.h: Define the STRINGIFY macro here. - * protoize.c: Not here. - * gengenrtl.c (DEF_RTL_EXPR): Use the STRINGIFY macro. + * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir. -Tue May 12 00:47:33 1998 John Wehle (john@feith.com) +Tue Mar 2 16:45:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * varasm.c (assemble_variable): Compute the alignment of the data - earlier so that both initialized and uninitialized variables are - effected by DATA_ALIGNMENT. - * tm.texi (DATA_ALIGNMENT): Updated appropriately. + * unroll.c (copy_loop_body): Don't make extra copies of + NOTE_INSN_LOOP_CONT notes. -Mon May 11 19:57:58 1998 Jeffrey A Law (law@cygnus.com) +Tue Mar 2 07:44:56 1999 Mark Mitchell <mark@markmitchell.com> - * mips.c: Prototype static functions. + * tree.c (save_tree_status): Don't treat functions with no context + as nested. -Mon May 11 17:43:03 1998 Jim Wilson <wilson@cygnus.com> +Tue Mar 2 09:37:05 1999 Robert Lipe <robertlipe@usa.net> - * regmove.c (fixup_match_2, find_matches, regmove_profitable): - Add explanatory comments. + * Makefile.in (MAKEINFO): Use makeinfo built from sibling + tree when available. - * sparc.h (SPARC_INCOMING_INT_ARG_FIRST): Support TARGET_FLAT. +Tue Mar 2 10:12:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon May 11 17:24:27 1998 Richard Henderson <rth@cygnus.com> + * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string, + alpha_fprm_string, alpha_fptm_string, alpha_mlat_string, + current_function_file): Add the `const' keyword. + (normal_memory_operand): Mark parameter `mode' with + ATTRIBUTE_UNUSED. + (alpha_expand_unaligned_load): Add a default case to a switch. - * sparc.md (ffsdi2): Disable. Simplify the expression as well. + * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string, + alpha_tp_string, alpha_mlat_string): Add the `const' keyword. + (normal_memory_operand): Add prototype. -Mon May 11 13:30:44 1998 Jim Wilson <wilson@cygnus.com> + * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when + comparing against one. - * varasm.c (make_decl_rtl): Disable April 1 change. +Tue Mar 2 10:00:21 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon May 11 09:14:41 1998 Richard Henderson <rth@cygnus.com> + * mips.c (abort_with_insn): Make function static, add a prototype, + constify 2nd parameter and mark with ATTRIBUTE_NORETURN. + (current_function_file, mips_cpu_string, mips_isa_string, + mips_abi_string, mips_no_mips16_string, mips_entry_string, + mips_move_1word, mips_move_2words, output_block_move, load_store, + override_options, make_temp_file, mips16_fp_args): Qualify a char* + with the `const' keyword. - * configure.in (alpha-*-linux-gnu): Undo lossage from gcc2 merge. + * mips.h (current_function_file, mips_cpu_string, mips_isa_string, + mips_abi_string, mips_entry_string, mips_no_mips16_string, + mips_move_1word, mips_move_2words, output_block_move): Likewise. + (abort_with_insn): Remove extern prototype. -Mon May 11 08:24:18 1998 Richard Henderson <rth@cygnus.com> + * mips.md: Qualify a char* with the `const' keyword. + Remove many unused variables named `label'. - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '`'. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncdfsi2, fix_truncsfsi2): New patterns and - related define_splits. Also add peepholes for SImode reload - plus sign_extend lossage. +Tue Mar 2 01:27:52 1999 H.J. Lu (hjl@gnu.org) -Mon May 11 09:33:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New + variables. + (install-cpp, uninstall-cpp): New targets. + (install-normal): Depend on $(INSTALL_CPP). + (uninstall): Depend on $(UNINSTALL_CPP). + * configure.in (cpp_install_dir): New, substitute. + (tmake_file): Added t-install-cpp for --enable-cpp. + * configure: Rebuilt. + * cpp.sh: New cpp script. + * config/t-install-cpp: New target fragment. - * genattr.c: Include stdarg.h/varargs.h. Change function - `fatal' to use variable arguments instead of faking it with - integer parameters. Provide a prototype which also - checks the format specifiers using ATTRIBUTE_PRINTF_1. +Tue Mar 2 01:40:01 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + Jeffrey A Law (law@cygnus.com) - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * genoutput.c: Likewise. Similarly for function `error'. + * cse.c (fold_rtx): Update comments for (const (minus (label) (label))) + case. + (cse_insn): Avoid creating a bogus REG_EQUAL note for + (const (minus (label) (label))) + (record_jump_cond): Fix mismatched paren in comment. -Sun May 10 02:27:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Tue Mar 2 01:07:12 1999 Dan Nicolaescu <dann@godzilla.ics.uci.edu> - * acconfig.h (HAVE_VOLATILE): Insert stub for autoconf. - * alocal.m4 (GCC_C_VOLATILE): New autoconf test. - * configure.in: Use GCC_C_VOLATILE. - * system.h (volatile): Define as empty if no volatile support is - available. + * final.c (end_final): There are 11 words in the "main header" + structure, not 10. -Sun May 10 01:21:43 1998 Jeffrey A Law (law@cygnus.com) +Tue Mar 2 00:09:18 1999 Marc Espie <espie@cvs.openbsd.org> - * genemit.c (output_add_clobbers): Removed unused variable 'i' from - generated fucntion. + * extend.texi: Reference __extension__ in the index. -Sat May 9 02:02:15 1998 Richard Henderson <rth@cygnus.com> +Mon Mar 1 19:09:32 1999 Jim Wilson <wilson@cygnus.com> - * loop.c (get_condition): Don't combine when either compare is MODE_CC. - * alpha.c (alpha_emit_conditional_branch): New function. Taken from - the body of beq; additionally set the mode of the branch to CCmode for - FP compares and not fast_math. - (alpha_emit_conditional_move): Always use a compare insn for FP - when not fast_math, as well as setting CCmode on the cmov. - * alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch. + * Makefile.in (CROSS_FLOAT_H): Delete. + (FLOAT_H): Use float_h_file. + (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency. + (gfloat.h): Delete. + (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h. + (mostlyclean): Delete gloat.h reference. + (install-cross-rest, install-float-h-cross, stmp-headers): Update + comments. + * configure.in (sparcv9-*-solaris2*): Set float_format to none. + (sparc-*-solaris2*): Set float_format to none for 2.5 and higher. + (float_h_file): Set from float_format. Substitute into Makefile.in. + (float_format): No longer substitute into Makefile.in. + * cross-make (FLOAT_H): Delete. + * config/mips/t-cross64 (FLOAT_H): Delete. + * configure: Rebuilt. - * machmode.h (COMPLEX_MODE_P): New macro. +Mon Mar 1 16:36:18 1999 Jeffrey A Law (law@cygnus.com) -Sat May 9 01:53:23 1998 Richard Henderson <rth@cygnus.com> + * mips.md (div_trap_normal, div_trap_mips16): Require the dependent + insn to be an INSN before looking at its pattern. - * haifa-sched.c (print_exp): Fix typo. +Mon Mar 1 15:03:51 1999 Jim Wilson <wilson@cygnus.com> -Fri May 8 21:48:50 PDT 1998 Jeff Law (law@cygnus.com) + * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs. Fix comments. + * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of + HImode reg when TARGET_5200. - * version.c: Bump for snapshot. +Mon Mar 1 21:44:30 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Fri May 8 18:23:08 1998 Michael Meissner <meissner@cygnus.com> - - * final.c (final_scan_insn): Call fatal_insn instead of abort if - we could not split an insn when required to. - - * m32r.md ({add,sub}di3): Add define_splits and appropriate low - level insns. - (peepholes): Disable peepholes that call dead_or_set_p. - (movsi): Rewrite to handle addresses better after last change. - Add define_split to split load of addresses in large/medium modes. - (prologue): Call m32r_expand_prologue. - (movsi_{push,pop}): Generators for push/pop. - (movsi): Support PRE_{INC,DEC}, POST_INC. - (mov{di,df}): Rewrite. Always split the insns. - (movsf): Add define_split to get register load in correct mode. - (cmp_ne_small_const_insn): Use 'N' instead of 'S' constraint. - (attributes): Rewrite attributes so that type indicates both the - type and the length of the insn directly. - (all insns): Change to use new type attributes. - (debug): New attribute to convey whether -mdebug was used. - (opt_space): New attribute to convey whether -Os was used. - (function units): Loads are 3 cycles, not 2. Better classify all - insns into short/long. - (load/store/extend insns): Add separate case for load/store - indirect operations without an offset. - (divsi3): Division is a long operation, not short. - - * m32r.h (LEGITIMATE_LO_SUM_ADDRESS_P): Do not allow LO_SUM for - modes > 1 word. - (GO_IF_MODE_DEPENDENT_ADDRESS): LO_SUM is now mode dependent. - (CONST_OK_FOR_LETTER_P): Make 'N' handle reverse 8 bit compares. - (EXTRA_CONSTRAINT): Remove 'S' special support. Add 'U' for - operands with PRE_{INC,DEC}, POST_INC. - (FUNCTION_PROFILER): Call abort instead of doing nothing. - (GO_IF_LEGITIMATE_ADDRESS): Allow PRE_{INC,DEC}, POST_INC of - SImode variables. - (gen_split_move_double): Declare. - (EXTRA_CONSTRAINT): Add 'T' for memory reference with no offset. - - * m32r.c (gen_split_move_double): Fix typo. Also, don't call - emit_move_insn, build up SET's directly. - (toplevel): Include system.h, not stdio.h. - (move_double_src_operand): Allow any DF or DI mode constant. - (gen_split_move_double): Split moves of DI or DF values into the - appropriate moves, loads, or stores. Don't handle use of auto - inc/dec if using dead index. Do handle overlapping moves, etc. - (m32r_frame_info): Remove prologue_size field. - (m32r_compute_frame_size): Don't calculate prologue size. - (m32r_output_function_prologue): Change to pretty much a NOP. - (m32r_expand_prologue): Expand prologue as a series of INSNs. - (m32r_print_operand): Add support for PRE_{INC,DEC}, POST_INC. - (m32r_print_operand_address): Ditto. - -Fri May 8 14:13:21 1998 H.J. Lu (hjl@gnu.org) - - * reload1.c (emit_reload_insns): When performing expensive - optimizations, do not output the last reload insn if OLD is - not the dest of NSN and is in the src and is clobbered by INSN. - -Fri May 8 09:47:29 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (genrtl.o): Depend on system.h. - * gengenrtl.c (gencode): When creating genrtl.c, have it - include system.h. - -Fri May 8 10:57:33 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/t-linux: Remove extra stuff already included in - config/t-linux. - -Fri May 8 09:53:24 Paul Eggert <eggert@twinsun.com> - - * fixinc.wrap: Renamed from fixinc.math. Put wrapper around - curses.h if it contains `typedef char bool;', as suggested by - Manfred Hollstein <manfred@s-direktnet.de>. - - * configure.in: Rename fixinc.math to fixinc.wrap. - -Thu May 7 19:26:34 1998 Jim Wilson <wilson@cygnus.com> - - * gcc.c (read_specs): Handle missing blank line at end of specs file. - - * i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1, - movdfcc_1): Disable. - -Thu May 7 15:39:14 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (enable_threads): Rename to enable_threads_flag before - main loop. Set enable_threads to enable_threads_flag inside main - loop. - -Thu May 7 17:38:03 1998 Michael Meissner <meissner@cygnus.com> - - * r6000/eabi.asm (__eabi): Restore LR in case __eabi is called - multiple times. - -Thu May 7 14:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_FUNC_VFPRINTF_DOPRNT): New macro. - - * configure.in: Add a call to GCC_FUNC_VFPRINTF_DOPRNT. - (AC_CHECK_HEADERS): Remove unused check for varargs.h,sys/varargs.h. - (AC_CHECK_FUNCS): Remove unused check for vprintf. - - * Makefile.in: Add support for linking in vfprintf.c and doprint.c. - (cccp.o): Depend on gansidecl.h. - (cexp.o): Likewise. - - * cccp.c: Convert from using PRINTF_ALIST/PRINTF_DCL to VPROTO as - per the rest of gcc source. - * cexp.y: Likewise. Include gansidecl.h and remove all code made - redundant. - - * cccp.c: Remove checks for HAVE_VPRINTF and the associated code - used when vfprintf is missing. - * cexp.y: Likewise. - * gcc.c: Likewise. - * genattrtab.c: Likewise. - * mips-tfile.c: Likewise. - * toplev.c: Likewise. + From Toshiyasu Morita: + * sh.h (CACHE_LOG): SH2 has cache, too. + +Mon Mar 1 14:23:36 1999 Catherine Moore <clm@cygnus.com> + + * toplev.c (compile_file): Disable -ffunction-sections and + debugging warning if the object format is elf. - * vfprintf.c: New file. - * doprint.c: New file. +Mon Mar 1 11:46:25 1999 Vladimir N. Makarov <vmakarov@cygnus.com> -Thu May 7 10:18:41 1998 Jeffrey A Law (law@cygnus.com) + * config/h8300/h8300.c (print_operand): Use 16 bit addressing + when the data in 8-bit area and can not be addressed by 8-bit. - * config/linux.h (ASM_COMMENT_START): Remove from here, - * config/linux-aout.h (ASM_COMMENT_START): and here, - * config/i386/linux.h (ASM_COMMENT_START): to here, - * config/i386/linux-aout.h (ASM_COMMENT_START): and here. - * config/i386/linux-oldld.h (ASM_COMMENT_START): Define - here as '#' too. +Sun Feb 28 16:40:00 1999 Richard Henderson <rth@cygnus.com> -Thu May 7 10:55:59 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * flow.c (create_basic_block): Disregard integrated bb notes. - * config/m68k/m68k.md (adddi3, subdi3): Properly negate the DImode - constant. +Sun Feb 28 15:57:06 1999 Richard Henderson <rth@cygnus.com> + + * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0. + +Sun Feb 28 14:47:53 1999 Arturo Montes <mitosys@colomsat.com.co> -Wed May 6 22:32:37 CDT 1998 Robert Lipe <robertl@dgii.com> + * config/i386/t-sco5gas (crti.o): New target. - * Makefile.in (dwarfout.o) Add toplev.h dependency. - * dwarfout.c, i386.c: Include toplev.h - * toplev.h: (pfatal_with_name) Add prototype. +Sun Feb 28 15:10:17 1999 David Edelsohn <edelsohn@gnu.org> -Wed May 6 19:02:29 1998 Jason Merrill <jason@yorick.cygnus.com> + * rs6000.md (elf_high, movsi_got, *movsi_got_internal, + *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32, + movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64, + load_multiple, allocate_stack, call_indirect_aix32, + call_indirect_aix64, call_value_indirect_aix32, + call_value_indirect_aix64, call_indirect_nt, + call_value_indirect_nt): Use gpc_reg_operand instead of + register_operand. - * Makefile.in: Fix .SUFFIXES. +Sun Feb 28 15:10:17 1999 Michael Meissner <meissner@cygnus.com> -Wed May 6 19:31:32 1998 Alan Modra <alan@spri.levels.unisa.edu.au> + * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3, + *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR + other than cr0. + * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't + allow andi. or andis. which always set cr0. - * config/linux.h (ASM_COMMENT_START): Define as "#". - * config/linux-aout.h (ASM_COMMENT_START): Likewise. +Sun Feb 28 01:15:04 1999 Jeff Law (law@cygnus.com) -Wed May 6 15:51:39 1998 Jim Wilson <wilson@cygnus.com> + * version.c: Bump for snapshot. - * objc/Make-lang.h (objc-parse.o): Add toplev.h dependency. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. +Sun Feb 28 02:00:38 1999 Jeffrey A Law (law@cygnus.com) - * toplev.c: Include toplev.h. - * Makefile.in (c-common.o, c-convert.o, c-decl.o, c-iterate.o, - c-lex.o, c-parse.o, c-pragma.o, c-typeck.o, calls.o, convert.o, - dwarf2out.o, except.o, expr.o, final.o, fold-const.o, function.o, - hash.o, profile.o, real.o, reg-stack.o, regclass.o, reload.o, - reload1.o, stmt.o, stor-layout.o, tlink.o, tree.o, varasm.o): Add - toplev.h dependency. + * invoke.texi: Update information for PA scheduling. - * mips/mips.c (save_restore_insns): Change FRAME_POINTER_REGNUM to - HARD_FRAME_POINTER_REGNUM. +Sat Feb 27 23:21:47 1999 Jerry Quinn <jquinn@nortelnetworks.com> + Mike Stump <mrs@wrs.com> - * expr.c (target_temp_slot_level): Delete duplicate definition. + * pa.c (override_options): Change default to 7100LC. -Wed May 6 16:46:01 1998 Jeffrey A Law (law@cygnus.com) + * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of + float regs before right half of float regs. - * stmt.c (mark_seen_cases): Make it have external linkage again. - * expr.h (mark_seen_cases): Add declaration, but only when tree.h - has been included. +Sat Feb 27 22:48:38 1999 H.J. Lu (hjl@gnu.org) + Jeffrey A Law (law@cygnus.com) - * haifa-sched.c (print_value, case SUBREG): Fix typo. + * frame.h: Update some comments. + * defaults.h (TARGET_ATTRIBUTE_WEAK): Define. + * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare + using TARGET_WEAK_ATTRIBUTE. + (__do_global_dtors_aux): Check if __deregister_frame_info is + zero before calling it. + (__do_global_dtors): Likewise. + (frame_dummy): Check if __register_frame_info is zero before + calling it. + (__frame_dummy): Likewise. - * i386.c (output_387_binary_op): Add some braces to avoid warnings. - * i386.h (REG_CLASS_CONTENTS): Similarly. +Sat Feb 27 19:18:24 1999 Jeffrey A Law (law@cygnus.com) - * toplev.c (-fsched-max): Delete flag. - (-fsched-interblock-max-blocks,-fsched-interblock-max-insns): Likewise. - * haifa-sched.c: Remove -fsched-max-N, -fsched-interblock-max-blocks-N - and -fsched-interblock-max-insns-N support. Remove INTERBLOCK_DEBUG - conditionals. + * SERVICE: Update from the FSF. - * haifa-sched.c (find_rgns): Correctly handle reducible loops with - inner loops which are not reducible. +Sat Feb 27 14:31:22 1999 Arturo Montes <mitosys@colomsat.com.co> - * loop.c (regs_match_p): Fix typo in prototype. + * config/i386/t-sco5 (crti.o): New target. + * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when + linking -shared. + * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o. - * regmove.c (try_auto_increment): Wrap declaration inside an - #ifdef AUTO_INC_DEC. +Sat Feb 27 01:12:40 1999 Jeffrey A Law (law@cygnus.com) -Wed May 6 17:07:47 1998 Michael Meissner <meissner@cygnus.com> + * md.texi (prologue,epilogue): Document named patterns. - * final.c (output_operand_lossage): Call fatal with the operand - lossage message instead of calling abort. +Fri Feb 26 19:31:25 1999 Dave Love <fx@gnu.org> -Wed May 6 15:37:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * md.texi, invoke.texi: Fix unterminated @xrefs. + +Fri Feb 26 15:33:45 1999 Richard Henderson <rth@cygnus.com> + + * genattrtab.c (simplify_knowing): Fix uninitialized read + in Feb 21 change. + + * genextract.c (main): Clear recog_operands before extracting. + +Fri Feb 26 02:24:57 1999 Jeffrey A Law (law@cygnus.com) + + * c-pragma.c (add_weak); Delete. Moved into... + * varasm.c (add_weak): New external function. + (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to + the list of weak functions. + * c-pragma (add_weak): Declare. + +Thu Feb 25 23:43:59 1999 Richard Henderson <rth@cygnus.com> + + Flow rewrite to use basic block structures and edge lists: + + * basic-block.h (x_basic_block_head, x_basic_block_end): Kill. + (basic_block_computed_jump_target, basic_block_live_at_start): Kill. + (struct edge_def): New. + (struct basic_block_def): New. + (basic_block_info): New. + (BLOCK_HEAD, BLOCK_END): Update. + (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New. + (uid_block_number): Kill. + (basic_block_for_insn, BLOCK_FOR_INSN): New. + (BLOCK_NUM): Update. + * flow.c (XNMALLOC): Kill. + (max_uid_for_flow): Kill. + (uid_block_number): Kill. + (uid_volatile): Turn into a bitmap. + (SET_INSN_VOLATILE): New. + (basic_block_info): New. + (entry_exit_blocks): New. + (x_basic_block_head, x_basic_block_end): Kill. + (basic_block_computed_jump_target, basic_block_live_at_start): Kill. + (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill. + (basic_block_loop_depth): Kill. + (basic_block_for_insn): New. + (find_basic_blocks): Split out initial block counting into + count_basic_blocks. Call functions split out of find_basic_blocks_1. + (count_basic_blocks): New. + (find_basic_blocks_1): Split out edge recognition, unreachable + block deletion. + (create_basic_block): New. + (compute_bb_for_insn): New. + (clear_edges): New. + (free_bb_memory): Kill. + (add_edge, add_edge_to_label): Kill. + (mark_label_ref): Kill. + (make_edges): Rewrite to use edge lists. + (make_edge, make_label_edge): New. + (mark_critical_edges): New. + (split_edge, insert_insn_on_edge): New. + (commit_one_edge_insertion, commit_edge_insertions): New. + (delete_unreachable_blocks): Rewrite to use edge lists. + Split out EH region manipulation into delete_eh_regions. + Call tidy_fallthru_edge and merge_blocks. + (delete_eh_regions): New. + (delete_note_p): New. + (delete_insn_chain): New. + (delete_block): Split out code into delete_insn_chain and + tidy_fallthru_edge. Update edge lists. + (expunge_block): New. + (flow_delete_insn): New? + (can_delete_label_p): New? + (merge_blocks_nomove, merge_blocks): New. + (tidy_fallthru_edge): New. + (calculate_loop_depth): New. + (life_analysis): Allocate and free uid_volatile. + (free_basic_block_vars): Update for new structures. + (record_volatile_insns): Use SET_INSN_VOLATILE. + (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage. + (mark_used_regs): Likewise. + (life_analysis_1): Use bb global_live_at_start, global_live_at_end, + local_set regsets. Use bb->aux to store new_live_at_end. Begin + life propagation from EXIT_BLOCK rather than last block. Clear + regs_ever_live after mark_regs_live_at_end. + (allocate_for_life_analysis): Update for new structures. + (propagate_block): Split out loop depth calculation to + calculate_loop_depth. + (regno_uninitialized): Use bb->global_live_at_start. + (regno_clobbered_at_setjmp): Likewise. + (dump_bb_data): Likewise. + (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM. + (dump_flow_info): Update for new structures. + (dump_edge_info): New. + (print_rtl_with_bb): Update for new structures. + (compute_preds_succs): Do no work -- convert edge lists. + (set_block_for_insn): From corpse of old set_block_num. + (set_block_num): Call it. + + * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK. + * rtl.h (rtunion_def): Add bb entry. + (NOTE_BASIC_BLOCK): New. + (NOTE_INSN_BASIC_BLOCK): New. + + * varray.h (varray_data_tag): Add bb entry. + (VARRAY_BB_INIT, VARRAY_BB): New. + + * emit-rtl.c (emit_label_before): New. + + * except.c (expand_rethrow): Delete insns following the call to + rethrow. Put the REG_EH_RETHROW on the call. + + * jump.c (returnjump_p, returnjump_p_1): New. + + * expr.h (nonlocal_goto_handler_labels): New declaration. + * function.c (nonlocal_goto_handler_labels): Define it. + (push_function_context_to): Save it. + (pop_function_context_from): Restore it. + (init_function_start): Clear it. + (nonlocal_label_rtx_list): Kill. + * function.h (struct function): Add storage space for it. + * stmt.c (expand_nl_handler_label): Return the new label. + (expand_nl_goto_receivers): Collect a list of them in + nonlocal_goto_handler_labels. + + * Makefile.in (print-rtl.o): Depend on basic-block.h. + (flow.o): Depend on insn-flags.h. + + * function.c (thread_prologue_and_epilogue_insns): Do not + half-heartedly update bb structures. + + * toplev.c: Add flow2 dump as -dw. + (rest_of_compilation): Finish .greg before flow2. + + * graph.c (draw_edge): Handle class 3. + (print_rtl_graph_with_bb): Make abnormal edges red class 2, + change non-fall-thru but adjacent to green class 3. Update + to use new structures. + + * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK. + + * reg-stack.c (BLOCK_NUM): Convert to function. Abort if + block_number is -1. + (reg_to_stack): Initialize block_num to -1. + + * combine.c (set_nonzero_bits_and_sign_copies): Update reference + to basic_block_live_at_start to bb->global_live_at_start. + (try_combine): Likewise. + (reg_dead_at_p): Likewise. + * global.c (global_conflicts): Likewise. + Handle stack regs on all abnormal edges, not just computed jumps. + (mark_elimination): Update reference to basic_block_live_at_start. + (build_insn_chain): Likewise. + * haifa-sched.c (haifa_edge): Rename from edge for conflict. + (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead + of nonlocal_label_rtx_list. + (check_live_1): Update reference to basic_block_live_at_start. + (update_live_1): Likewise. + (find_pre_sched_live): Likewise. + (find_post_sched_live): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * reload1.c (reload, reload_combine): Likewise. + * regmove.c (mark_flags_life_zones): Likewise. + * resource.c (mark_target_live_regs): Likewise. + * sched.c (schedule_block): Likewise. + + * regclass.c (regset_release_memory): Don't free + basic_block_live_at_start. + + * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK. + +Thu Feb 25 21:32:34 1999 Jason Merrill <jason@yorick.cygnus.com> + + * fixinc.wrap: Also handle struct queue in sys/stream.h. + * fixinc.svr4: Likewise. + + * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die + rather than asserting it. + +Thu Feb 25 23:33:06 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE, + cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with + HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT. + + * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o, + cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o, + scan-decls.o): Don't depend on machmode.h. + + * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore. + Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT. + + * cppfiles.c: Likewise. - * c-common.c: Convert to using ctype macros defined in system.h. - * c-lex.c: Likewise. - * cccp.c: Likewise. - * collect2.c: Likewise. - * rs6000.c: Likewise. * cpplib.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gen-protos.c: Likewise. - * pexecute.c: Likewise. - * protoize.c: Likewise. - * rtl.c: Likewise. - * scan.c: Likewise. - * stmt.c: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. -Wed May 6 14:44:14 1998 Gavin Koch <gavin@cygnus.com> + * cpplib.h: Likewise. Also don't include machmode.h anymore. - * config/mips/r3900.h (SUBTARGET_ASM_DEBUGGING_SPEC) : - Replace -gdwarf-2 with -g0. +Thu Feb 25 18:46:26 1999 Richard Henderson <rth@cygnus.com> -Wed May 6 11:43:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate. + * objc/lang-specs.h: Likewise. - * Makefile.in (mips-tfile.o, mips-tdump.o): Depend on system.h. - * mips-tdump.c: Include system.h, remove redundant headers. - * mips-tfile.c: Likewise. Also, convert all ctype function calls - to calls of the macro versions defined in system.h. +Thu Feb 25 16:19:43 1999 Jeffrey A Law (law@cygnus.com) - * objc/Make-lang.in (objc-act.o): Depend on system.h. - * objc/objc-act.c: Include system.h, remove redundant headers. + * pa.md (call patterns): Lose unused argument to output_call. -Wed May 6 11:21:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags. - * configure.in (AC_CHECK_FUNCS): Add isascii. - (GCC_NEED_DECLARATIONS): Add atof. +1999-02-25 Zack Weinberg <zack@rabi.columbia.edu> - * system.h: Provide prototypes for abort, atof, atol and sbrk here. - * rtl.c, rtl.h, toplev.c, tree.h: Not here. + * cpphash.c (install): Rename to cpp_install, add cpp_reader* + first argument. All callers changed. + (hashtab): Removed. + (cpp_lookup, cpp_install): Change all refs to hashtab to + pfile->hashtab. + (cpp_hash_cleanup): Removed. + * cpphash.h: Adjust prototypes. + * cpplib.h (struct cpp_reader): Add hashtab pointer. + * cppinit.c (cpp_reader_init): Also allocate space for the + hashtab. + (cpp_cleanup): Delete all macros and free the hashtab. -Wed May 6 10:52:49 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Thu Feb 25 21:52:54 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * system.h: Wrap time.h and sys/file.h in autoconf checks. - Provide default definitions for O_RDONLY and O_WRONLY here. + * sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures + in registers. - * cccp.c, cpplib.c, fix-header.c, gcc.c, protoize.c: Not here. + * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition. + * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED. + * calls.c (expand_call): Likewise. -1998-05-06 Mark Mitchell <mmitchell@usa.net> + * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs / + stdarg arguments. + * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi. + (FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed + arguments in registers. + (PRETEND_OUTGOING_VARARGS_NAMED): Define. + * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123] + flavor varargs. - * tree.h (IS_EXPR_CODE_CLASS): Remove bogus '3'. +Thu Feb 25 14:32:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Wed May 6 06:35:38 1998 Robert Lipe <robertl@dgii.com> + * cse.c (dump_class): Revert last change and make the prototype + extern. - * toplev.h: New file. Protypes for functions in toplev.c. - * tree.h, rtl.h: Deleted protos for functions in toplev.c. - * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, - c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, - convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, - function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, - reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, - varasm.c: include it. +Thu Feb 25 19:13:42 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Wed May 6 01:09:01 1998 Jeffrey A Law (law@cygnus.com) - Jim Wilson (wilson@cygnus.com) + * rtl.h (insn_first_p): Don't declare. + * rtlanal.c (insn_first_p): Delete. + * loop.c (loop_insn_first_p): Faster implementation. - * haifa-sched.c (find_rgns): In no_loops case, fix test for leaf - blocks. Check for 1 successor which is the EXIT_BLOCK. +Thu Feb 25 10:44:35 1999 Richard Earnshaw (rearnsha@arm.com) - * haifa-sched.c (find_rgns): Detect unreachable blocks, including - unreachable loops with more than one block. + * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236]. + (TARGET_3, TARGET_6): Delete. + (ARM_FLAG_ARM[36]): Delete. + (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more. + (CC1_SPEC): Don't expand -m[236] into new equivalents. + (CPP_APCS_PC_SPEC): No need to handle -m[236] any more. + * arm.c (arm_override_options): Delete warnings about deprecated + options -m[236]. -Wed May 6 08:22:24 1998 Manfred Hollstein <manfred@s-direktnet.de> + * arm.c (arm_finalize_pic): Build the label into the special pic + adjustment insn instead of issuing it separately. + * arm.md (pic_add_dot_plus_eight): Rework to contain the label + that is needed. - * fix-header.c (write_rbrac): Add "abort" to functions which need to - be protected. + * arm.md (*zeroextractqi_compare0_scratch): Delete. + (*ne_zeroextractsi): New pattern. -Wed May 6 00:09:36 1998 Jeffrey A Law (law@cygnus.com) +Thu Feb 25 18:40:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * Check in merge from gcc2. See ChangeLog.12 for details. + * stmt.c (expand_end_loop): Grok code emitted by + expand_exit_loop_if_false. -Tue May 5 14:33:49 1998 Jim Wilson <wilson@cygnus.com> +Thu Feb 25 10:17:32 1999 Nick Clifton <nickc@cygnus.com> - * c-common.c (scan_char_table): Separate 's' and 'c'. 'c' does not - accept 'a' flag. 'S' does accept 'a' flag. - (check_format_info): When pedantic, warn for m/C/S/a/A formats, - and `a' flag. + * config/arm/arm.c (return_in_memory): Float fields in unions + force a return in memory. + (load_multiple_sequence): Add comment explaining why two LDR + instructions can be better than an LDMIA instruction. - * elf64.h (MULTILIB_DEFAULTS): Move definition after mips.h include. + * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment + describing the real meaning of this option. + (FIXED_REGISTERS): Default r10 to not-fixed. + (CALL_USED_REGISTERS): Default r10 to not-call-used. + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define + as empty. + (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is + true. Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after + performing other checks. -Tue May 5 10:50:39 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * config/arm/arm.md (zero_extendhisi2): Undo previous change. + (extendhisi2): Undo previous change. + Also add comments describing why TARGET_SHORT_BY_BYTES can be + ignored for armv4(t) architectures. - * config/m68k/m68k.h: Declare functions from m68k.c used in - macros and machine description. - (ASM_OUTPUT_LONG_DOUBLE): Always use `l' flag in print format for - long values. - (ASM_OUTPUT_FLOAT): Likewise. - (ASM_OUTPUT_FLOAT_OPERAND): Likewise. + * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): + Define to fix r10. -Tue May 5 01:28:12 1998 Jason Merrill <jason@yorick.cygnus.com> + * config/arm/riscix1-1.h + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. + +Thu Feb 25 12:09:04 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cse.c (dump_class): Make the function definition static to match + the prototype. + +Wed Feb 24 17:47:28 1999 Jim Wilson <wilson@cygnus.com> + + * dbxout.c (gstab.h): Use if CROSS_COMPILE. + + * dwarf2out.c (add_location_or_const_value_attribute): Add big + endian correction for parms passed in regs but living on the stack. + +Wed Feb 24 14:03:54 1999 Jeffrey A Law (law@cygnus.com) + + * calls.c (initialize_argument_information): New function extracted + from expand_call. + (expand_call): Use initialize_argument_information. Remove variables + which are no longer used due to cleanups. - * tree.def: Add NAMESPACE_DECL. - * dwarfout.c (type_ok_for_scope): Ignore NAMESPACE_DECLs for now. - * dwarf2out.c (push_decl_scope): Likewise. - (scope_die_for): Likewise. - * tree.c (decl_function_context): Use TREE_CODE_CLASS to determine - how to get next context level. + * calls.c (compute_argument_block_size): New function, extracted from + expand_calls. + (expand_calls): Use compute_argument_block_size. Delete + original_args_size, use unadjusted_args_size instead. + + * calls.c (precompute_arguments): New function, extracted from + expand_call. + (expand_call): Use precompute_arguments. + + * calls.c (finalize_must_preallocate): New function, extracted from + expand_call. + (expand_call): Use finalize_must_preallocate. + + * calls.c (store_one_arg): Mark "variable_size" as possibly unused. -Tue May 5 01:43:16 1998 Jim Wilson <wilson@cygnus.com> + * regclass.c (record_reg_classes, case 'p'): Set classes appropriately. + An alternative always fails if it needs a pseudo and no suitable + register class can be found. - * i386.c (output_fix_trunc): Add code to emulate non-popping DImode - case. +Wed Feb 24 19:47:56 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.h (loop_insn_first_p): Declare. + * loop.c (loop_insn_first_p): No longer static. + * unroll.c (iteration_info): Fix comparison to + reg_iv_type->num_elements. + Before accessing reg_biv_class, check index against + max_reg_before_loop. + Fix and enable code for giv iterators. + (loop_iterations): Compare with reg_iv_type->num_elements instead + of with max_reg_before_loop. + +Wed Feb 24 19:17:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno. + +Wed Feb 24 11:26:41 1999 Vladimir N. Makarov <vmakarov@cygnus.com> + + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use + PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC. -Tue May 5 01:15:06 1998 Jeffrey A Law (law@cygnus.com) +Tue Feb 23 16:24:19 1999 Marc Lehmann <pcg@goof.com> + + * config/i386/i386.md: Fix typo. - * h8300.h (ADDITIONAL_REGISTER_NAMES): Add "er" registers. +Mon Feb 22 19:36:33 1999 Andrew Cagney <cagney@b1.cygnus.com> + + * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 && + frame_pointer_needed adjust frame size. + (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted + in .frame pseudo-op. + Frm Jim Wilson <wilson@cygnus.com>: + * mips.c (function_prologue): Adjust frame size in .frame pseudo-op + when TARGET_MIPS16 && frame_pointer_needed. + +1999-02-22 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h: Add TARGET_CPU_strongarm1100. + Add -mno-sched command line switch to disable scheduling of + instructions into the function's prologue. + (enum processor_type): Remove. + (TARGET_OPTIONS): Add "fpe=" option to match documentation. + (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p' + fields with 'processors' field. + (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack + checking is not enabled. + (RETURN_IN_MEMORY): Always call arm_return_in_memory. - * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes - for any insns skipped at the start of a block because they were - redundant. + * config/arm/arm.c (arm_cpu): Remove. + (tune_flags): Remove. + (arm_is_strong): New variable: true iff the target processor is a + StrongARM. + (arm_is_6_or_7): New variable: true iff the target processor is an + ARM6 or and ARM7. + (arm_select): Fields reorganised. + (struct processors): processor_type field removed. + (all_procs): Remove. + (all_cores): New array: Definitions of all known ARM cpu cores. + (all_architectures): New array: Definitions of all known ARM + architectures. + (streq): New macro. + (FL_SCHED): New processor flag: processor required load + scheduling. + (FL_STRONG): New processor flag: processor is a StrongARM. + (arm_override_options): Reorganized to make code clearer. + (use_return_insn): Test for "not (TARGET_APCS and + frame_pointer_needed)". + (arm_return_in_memory): Improve handling of structures. + + * config/arm/arm.md: Remove "cpu" attribute. Replace with + "is_strongarm" and "is_arm_6_or_7" attributes. + (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before + arm_arch4. + (extendhisi2): Check for TARGET_SHORT_BY_BYTES before arm_arch4. + + * invoke.texi (ARM Options): Document -mtune= and -mfp= options. + +1999-02-22 Philip Blundell <philb@gnu.org> + + * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default + definition with one including cache synchronization. + (CLEAR_INSN_CACHE): Correct syscall number and enable definition. + Move definition of inhibit_libc to... + * config/arm/xm-linux.h: ... here. + + * config/arm/t-linux: Disable multilib configurations since the + only effect for most people is to cause builds to fail. + + * config/arm/elf.h (ASM_FILE_START): Add .file directive. + (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler. + + * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define. + (HANDLE_SYSV_PRAGMA): Likewise. + (LIB_SPEC): Copy definition from generic Linux files. + (LIBGCC_SPEC): Include -lfloat if -msoft-float was given. + (FP_DEFAULT): Set to SOFT3 on 32-bit targets. + (DWARF2_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. -Mon May 4 20:23:51 1998 Jim Wilson <wilson@cygnus.com> +Mon Feb 22 16:54:18 1999 Andrew MacLeod <amacleod@cygnus.com> - * alpha.h (DBX_CONTIN_LENGTH): Decrease to 3000. + * loop.c (libcall_other_regs): Make extern. + * rtl.h (find_last_value): Add parameter to prototype. + (libcall_other_reg): Add extern declaration. + * rtlanal.c (find_last_value): Add another parameter to allow + a definition using a hardware register to be found as well. -1998-05-04 Ulrich Drepper <drepper@cygnus.com> +Mon Feb 22 13:33:47 1999 Mark Mitchell <mark@markmitchell.com> - * c-common.c (format_char_info): Add new field hhlen. - (print_char_table, scan_char_table, time_char_table): Initialize - hhlen field appropriately. - (char_format_info): Recognize hh modifier and lookup correct char - table entry. + * cse.c (dump_class): New function. + (invalidate_memory): Fix typo in comment. + * function.c (temp_slot): Add an alias set field. + (assign_stack_temp): Only reuse slots if they will have the + same alias set as before. + (combine_temp_slots): Don't combine if -fstrict-aliasing; + that's unsafe. + * rtl.c (copy_rtx): Copy all the flags (in particular, + MEM_SCALAR_P). -Mon May 4 19:15:29 1998 Jim Wilson <wilson@cygnus.com> +Mon Feb 22 14:13:23 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - * expr.c (expand_expr, case INDIRECT_REF): Don't optimize string - reference if this is a store. + * configure.in (i[34567]86-*-linux-gnu*, + i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, + i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as + fixincludes. -Mon May 4 17:25:17 1998 Richard Henderson <rth@cygnus.com> + * configure: Rebuilt. - * sparc.c (output_move_quad): Fix typo in mov_by_64 argument. + * fixinc.x86-linux-gnu: New script for fixing asm-statements bug + on x86 linux. -Sun May 3 23:57:25 1998 Robert Lipe <robertl@dgii.com> + * fixinc/fixinc.x86-linux-gnu: Copy of the previous one. - Make UnixWare 7 bootstrap support work with final shipping product. - * configure.in: (i[34567]86-*-sysv5): append, not overwrite, xm_file. - Pick up xm-siglist and xm-alloca. - (xm_defines): Add USG so dbxout will build. - * configure: Regenerate. + * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*, + i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, + i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as + fixincludes. -Sun May 3 13:51:34 PDT 1998 Richard Henderson <rth@cygnus.com> - - Support for official Sparc V9 ABI: - * sparc.c (sparc_override_options): Force stack bias off for !arch64. - Care for flag_pcc_struct_return default. - (output_move_quad): Rewrite to move by halves on v9 and in the - proper direction. - (move_quad_direction): New function. - (output_fp_move_quad): Use it to determine the direction of copy. - (function_arg_slotno): Return -1 for FP reg overflow as well. - (function_arg_record_value*): New functions. - (function_arg): Use them. Streamline unprototyped parameter passing. - (function_arg_pass_by_reference): Pass TCmode by reference. - (function_value): New function. - * sparc.h (PTRDIFF_TYPE, SIZE_TYPE): For -pedantic's sake, don't use - long long in 64-bit mode. - (RETURN_IN_MEMORY): v9 returns structs < 32-bytes in regs. - (DEFAULT_PCC_STRUCT_RETURN): Make the default detectable. - (BASE_RETURN_VALUE_REG): Consider complex float types for arch64. - (BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG): Likewise. - (BASE_INCOMING_ARG_REG): Likewise. - (FUNCTION_VALUE): Call function_value. - (FUNCTION_OUTGOING_VALUE, LIBCALL_VALUE): Likewise. - * sparc.md (movdi_sp32_v9): Disable for arch64. - (movsf, movdf, movtf): Sort all ulternatives using fp regs first. - (call_value_address_sp64): Remove register class constraints. - (call_value_symbolic_sp64): Likewise. - (nonlocal_goto): Pass label reg directly to goto_handlers. Constrain - v9 case to 32-bit constants. - (goto_handler_and_restore_v9): Provide a version for arch64. - * sparc/linux64.h (SIZE_TYPE, PTRDIFF_TYPE): Remove private definition. - * sparc/sp64-aout.h (TARGET_DEFAULT): Turn on stack bias. - (CPP_PREDEFINES): New. - * sparc/sp64-elf.h: Likewise. - (PREFERRED_DEBUGGING_TYPE): Dwarf2. - (ASM_OUTPUT_DWARF2_ADDR_CONST): New. - * sparc/sysv4.h (SIZE_TYPE, PTRDIFF_TYPE): Undo svr4.h's changes. - -Sat May 2 17:47:17 PDT 1998 Jeff Law (law@cygnus.com) +Mon Feb 22 08:55:05 1999 Ovidiu Predescu <ovidiu@cup.hp.com> - * version.c: Bump for snapshot. + * objc/objc-act.c (encode_type): Temporary revert to the old + behavior of encoding types as the new one seems to break the + encoding of bitfields. -Sat May 2 01:37:29 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Feb 22 11:40:44 1999 Craig Burley <craig@jcb-sc.com> +Sat Feb 20 09:59:36 1999 Craig Burley <craig@jcb-sc.com> - * reload.c (find_reloads): Emit USEs to mark where a pseudo - is reloaded with the MEM of its stack slot. - * reload1.c (cannot_omit_stores): Delete. - (reload): Don't initialize it. - Don't apply avoid_return_reg logic to USEs. - When done, remove USEs that have a REG_EQUAL note on them. - (emit_reload_insns): Handle case where we have inherited a MEM. - (choose_reload_regs): Likewise. - (delete_output_reload): Don't use cannot_omit_stores. + * Makefile.in (all.internal, all.cross): Depend on `doc' + target, to ensure docs get made before installation. -Thu Apr 30 18:59:03 1998 Jim Wilson <wilson@cygnus.com> + Decrease spurious warnings from -fsyntax-only: + * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only. - * Makefile.in (cpp.info, gcc.info): Put -o option before input file. +Mon Feb 22 10:55:00 1999 Gavin Romig-Koch <gavin@cygnus.com> -Thu Apr 30 16:57:34 1998 Michael Meissner <meissner@cygnus.com> + * c-lex.c (yylex): Replace warning about integer constants being + larger than long-longs, with a warning about integer constants + being larger than the largest target integer. - * haifa-sched.c (print_{exp,value}): Various changes to make the - debug output easier to read. Also, use only one buffer, and make - sure the buffer we are passed in doesn't overflow. - (safe_concat): Concatenate to a buffer without overflow. +Mon Feb 22 08:35:38 1999 Craig Burley <craig@jcb-sc.com> -Thu Apr 30 16:57:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + Fix -fsyntax-only ICEs: + * varasm.c (assemble_zeros, assemble_variable, + output_constant_def): Do nothing when -fsyntax-only. - * haifa-sched.c (alloc_{INSN,EXPR}_LIST): Make static to agree - with the prototype. +Fri Feb 19 18:18:56 1999 Don Bowman <don@pixstream.com> -Wed Apr 29 21:45:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support. + * configure: Rebuilt. - * sched.c (new_insn_dead_notes): Check if the register was - used in the original instruction. - * haifa-sched.c (new_insn_dead_notes): Likewise. +Sun Feb 21 20:34:44 1999 Jeff Law (law@cygnus.com) -Wed Apr 29 13:46:03 1998 Jim Wilson <wilson@cygnus.com> + * version.c: Bump for snapshot. - * dwarf2out.c (scope_die_for): If could not find proper scope, - check for and handle tagged type with incorrect TYPE_CONTEXT. +Sun Feb 21 20:35:10 1999 Jeffrey A Law (law@cygnus.com) -Wed Apr 29 15:34:40 1998 John Carr <jfc@mit.edu> + * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete. + (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise. + * tm.texi: Update docs for constructors and destructors. - * calls.c (expand_call): Fix recognition of C++ operator new. +Sun Feb 21 17:11:18 1999 Richard Henderson <rth@cygnus.com> - * alias.c (mode_alias_check): Disable type based alias detection. + * genattrtab.c (check_attr_value): Allow negative const_int if + negative_ok. Accept integral arithmetic operators. Accept + direct references to other attributes. Accept symbol_ref in + non-constant attributes. + (max_attr_value): Add new argument `unknownp'. Update all callers. + (or_attr_value): Likewise. + (simplify_knowing): Don't optimize if max_attr_value unknown. + (write_length_unit_log): Likewise with or_attr_value. + (find_and_mark_used_attributes): Don't fallthru case. + (write_attr_set): Pass thru all non-cond expressions. + (write_attr_value): Handle symbol_ref, attr, and arithmetic. -Wed Apr 29 15:06:42 1998 Gavin Koch <gavin@cygnus.com> +Sun Feb 21 13:16:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * 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. + * regmove.c (discover_flags_reg): Use word_mode instead of SImode. -Wed Apr 29 10:53:29 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Sun Feb 21 13:15:40 1999 Richard Henderson <rth@cygnus.com> - * calls.c (expand_call): Bump the length limit on the specially - recognized function names to 17. + * regmove.c (discover_flags_reg): Remove cc0 code. + (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if + a potential flags register was identified. -Tue Apr 28 17:53:33 1998 Jim Wilson <wilson@cygnus.com> +Sat Feb 20 16:16:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - * ginclude/stddef.h: Add check for _MACHINE_ANSI_H_ for BSD/OS - when undefining macros at the end. + * rs6000.md (scc plus ltu): Fix typo in last change. - * expr.c (expand_builtin, case BUILT_IN_MEMSET): Break if either - val or len has TREE_SIDE_EFFECTS set. +Sat Feb 20 09:08:44 1999 Richard Earnshaw (rearnsha@arm.com) - * sparc.md (mulsidi3): Call const v8plus and v8plus routines. - (mulsidi3_v8plus, const_mulsidi3_v8plus): Delete asterisk from name. - (smuldi3_highpart): Call const v8plus routine. - (smulsi3_highpart_v8plus): Renamed from smulsidi3_highpart_v8plus. - (const_smulsi3_highpart_v8plus): New pattern. - (smulsi3_highpart_sp32): Renamed from smulsidi3_highpart_sp32. - (umulsidi3): Call const v8plus routine. - (umulsi3_highpart): Handle const before v8plus. Call const v8plus - routine. - (umulsi3_highpart_v8plus): Renamed from umulsidi3_highpart_v8plus. - (umulsi3_highpart_sp32): Renamed from umulsidi3_highpart_sp32. + * xm-arm.h (HOST_BITS_PER_LONGLONG): Define. -Tue Apr 28 08:55:26 1998 Michael Meissner <meissner@cygnus.com> +Fri Feb 19 23:02:02 1999 Richard Henderson <rth@cygnus.com> - * m32r.c (*_oper{and|ator}): Change enum arguments and return - values to int, so they can be prototyped even in files that don't - include rtl.h. - ({small,large}_insn_p): Ditto. - (m32r_select_cc_mode): Ditto. - (gen_compare): Ditto. - (function_arg_partial_nregs): Ditto. - (m32r_setup_incoming_varargs): Ditto. - (init_reg_tables): Add prototype. - (m32r_frame_info): Add prolog_size field. - (m32r_compute_frame_size): Calculate the size of the prologue. - (m32r_first_insn_address): Return prologue size. - (m32r_output_function_prologue): Calculate frame size before - printing out information. Print out the prologue size. + * regmove.c (discover_flags_reg): New function. + (flags_set_1, mark_flags_life_zones): New functions. + (regmove_optimize): Call them. + (fixup_match_1): Use insn modes rather than sets_cc0_p. - * m32r.h: Prototype all functions in m32r.c. - (FIRST_INSN_ADDRESS): Declare, returning prologue size. +Fri Feb 19 22:47:01 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * m32r.md (bcc functions): Cast enum's to int. + * rtlanal.c (insn_first_p): Fix return value for insn == reference. - * m32r.c (conditional_move_operand): Silence a debug message. - ({small,long}_insn): New predicates. + * loop.c (strength_reduce, check_final_value, check_dbra_loop): + Use loop_insn_first_p. - * m32r.h (TARGET_M32R): New macro. - (PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn. - (HAIFA_P): Define as 1/0 depending on whether the Haifa scheduler - was selected. - (ISSUE_RATE): Define as 2. +Fri Feb 19 15:49:26 1999 Michael Meissner <meissner@cygnus.com> + David Edelsohn <edelsohn@gnu.org> - * m32r.md (insn_size): New attribute. - ({,rev_}branch_insn): Add .s qualifier to branches believed to be - short. - (m32r): New attribute. + * rs6000.md (scc plus eq): Fix output template. + (scc plus ltu): Fix output template and collapse variants + correcting early clobbers. + (scc plus geu): Fix output template. + (scc plus gt): Fix output template. + (scc plus gtu): Fix output template and collapse variants. - * configure.in (enable_haifa): Switch m32r to Haifa by default. - * configure: Regenerate. +Fri Feb 19 15:43:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - (Changes from Nick Clifton <nickc@cygnus.com>) - * m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint to perfoirm - the equivalent of a negated 'I' constraint. - (PRESERVE_DEATH_INFO_REGNO_P): Define in order to allow peephole - optimisation to work. + * cppinit.c (print_help): Remove unescaped newline in string. - * m32r.md (cmp_ne_small_const_insn): Use 'S' constriant rather - than 'I' since the value is negated. - (peephole): Add peephole optimisation to cope with optimization of - divide and subtracts of the same operands. +Fri Feb 19 19:55:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * m32r.c zero_and_one, emit_cond_move): Add support for MVFC. - * m32r.h: Ditto. - * m32r.md: Ditto. + * loop.c (strength_reduce): Check for intervening jumps when + converting biv increment to giv. - * m32r.h (PREDICATE_CODES): Add declaration of machine specific - predicates. +Thu Feb 18 16:36:58 1999 Per Bothner <bothner@cygnus.com> + + * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR): New tree nodes, + * expr.c (expand_expr): Support new tree nodes. + +Fri Feb 19 10:17:56 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Tue Apr 28 07:25:53 1998 Manfred Hollstein <manfred@s-direktnet.de> + * config/m68k/m68k.c (m68k_align_loops_string, + m68k_align_jumps_string, m68k_align_funcs_string): Add const. + * config/m68k/m68k.h (m68k_align_loops_string, + m68k_align_jumps_string, m68k_align_funcs_string): Likewise. - * Makefile.in (libgcc2.ready): Revert last patch (Apr 24). +Thu Feb 18 23:28:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon Apr 27 18:39:47 1998 Nick Clifton <nickc@cygnus.com> + * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword. - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Check against - frame_pointer_rtx not FRAME_POINTER_REGNUM. + * bitmap.h (bitmap_print): Likewise. -Mon Apr 27 18:36:28 1998 Jim Wilson <wilson@cygnus.com> + * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise. - * reg-stack.c: Revert last patch (Apr 20). - (convert_regs): Set insn to PREV_INSN (next) after do while loop. + * c-lang.c (build_objc_string): Likewise. - * m68k/lb1sf68.asm (Laddsf$3): Fix typos in mcf5200 exg code. + * c-lex.c (yyerror, extend_token_buffer): Likewise. Don't include + limits.h or ctype.h. Remove unused variable `p'. - * loop.c (check_dbra_loop): New locals jump, first_compare, and - compare_and_branch. Call get_condition to set first_compare. - Set compare_and_branch to number of compare/branch instructions. - Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare. - Replace '2' with compare_and_branch. + * c-lex.h (yyerror): Qualify a char* with the `const' keyword. -Mon Apr 27 15:53:30 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> + * c-pragma.c (handle_pragma_token): Likewise. - * cplus-dem.c (demangle_qualified): Replace missing else. + * c-pragma.h (handle_pragma_token): Likewise. -Mon Apr 27 20:22:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * c-tree.h (build_objc_string, builtin_function, grokfield, + build_indirect_ref, lvalue_or_else, readonly_warning, error_init, + pedwarn_init): Likewise. - * sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG. + * c-typeck.c (convert_for_assignment, warn_for_assignment, + push_string, warning_init, incomplete_type_error, + build_indirect_ref, lvalue_or_else, readonly_warning, + build_c_cast, spelling, push_member_name, print_spelling, + error_init, pedwarn_init, start_init): Likewise. -Mon Apr 27 18:23:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * objc/objc-act.c (build_objc_string): Likewise. - * sh.c (sh_expand_prologue, sh_expand_epilogue): - If TARGET_DOUBLE_ALIGN, preserve 64 bit stack alignment. - * sh.h (STACK_BOUNDARY): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. -Mon Apr 27 17:22:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise. - * sh.h (LEGITIMIZE_RELOAD_ADDRESS): Define. +Thu Feb 18 20:44:21 1999 David Edelsohn <edelsohn@gnu.org> -Mon Apr 27 08:55:23 1998 Michael Meissner <meissner@cygnus.com> + * regclass.c (record_reg_classes): Correctly handle 'p' constraint. - * system.h (abort): If abort is not defined, and neither is - USE_SYSTEM_ABORT, redefine abort to call fprintf and exit, - reporting the line and filename of the error. +Thu Feb 18 19:59:37 1999 Marc Espie <espie@cvs.openbsd.org> + + * configure.in :Handle OpenBSD platforms. + * configure: Rebuilt. + * config/openbsd.h: New file. + * config/xm-openbsd.h: New file. + * config/t-openbsd: New file. + * config/t-openbsd-thread: New file. - * .gdbinit: Add breakpoints on exit and fancy_abort. +Thu Feb 18 18:47:09 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (assign_stack_temp_for_type): Round SIZE before calling + assign_stack_local for BLKmode slots. + +Fri Feb 19 01:45:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (strength_reduce): For derived givs, replace the + giv this was derived from with its new_reg. + (recombine_givs): Don't set new_reg for derived giv. + And don't print it, print SUM instead. + +Thu Feb 18 15:52:49 1999 Jim Wilson <wilson@cygnus.com> + + * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support. + +1999-02-18 Zack Weinberg <zack@rabi.columbia.edu> + + * cpplib.c: Kill define of STDC_VALUE. Don't include output.h + or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to + macro_cleanup. + (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR, + predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, + CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct + cpp_pending, version_string, struct default_include, + include_defaults_array, path_include, cpp_options_init, + dump_special_to_buffer, initialize_builtins, cpp_start_read, + cpp_reader_init, nreverse_pending, push_pending, print_help, + cpp_handle_option, cpp_handle_options, cpp_finish, + cpp_cleanup): Move to cppinit.c. + (macro_cleanup, struct arglist, collect_expansion, + create_definition, compare_defs, comp_def_part, ARG_BASE, + struct argdata, macarg, change_newlines, timestamp, + monthnames, special_symbol, unsafe_chars, macroexpand, + push_macro_expansion): Move to cpphash.c. + (quote_string, check_macro_name, cpp_expand_to_buffer, + output_line_command, cpp_undef): Export. + (null_underflow, null_cleanup, handle_directive): Make static. + + * cpplib.h: Prototype now-exported functions. Adjust decls of + syntax tables so we can include cpplib.h in cppinit.c. + * cpphash.h: Prototype all functions exported by cpphash.c. + * cppinit.c: Make syntax tables initialized data if possible + (uses GCC designated-initializer extension). + * cppexp.c: Make cpp_lex static. + * Makefile.in: Move -D switches for the various include dirs + from cpplib.o rule to cppinit.o rule. Adjust dependencies. + +Thu Feb 18 13:15:56 1999 Marc Espie <espie@cvs.openbsd.org> - * final.c (split_double): Avoid a compiler warning if - BITS_PER_WORD is less than or equal to HOST_BIT_PER_WIDE_INT. + * alpha/openbsd.h: New file. + * alpha/xm-openbsd.h: New file. + * sparc/openbsd.h: New file. + * sparc/xm-openbsd.h: New file. + * m68k/openbsd.h: New file. + * m68k/xm-openbsd.h: New file. + * i386/openbsd.h: New file, originally from netbsd. + * i386/xm-openbsd.h: New file. - * rtl.h (JUMP_{CROSS_JUMP,NOOP_MOVES,AFTER_REGSCAN}): New macros - for calling jump_optimize. +1999-02-17 Zack Weinberg <zack@rabi.columbia.edu> - * toplev.c (rest_of_compilation): Call jump_optimize using JUMP_* - macros, rather than 0/1's. + * Makefile.in: Correct dependencies for cpplib object files. -Sun Apr 26 23:19:10 1998 Richard Henderson <rth@cygnus.com> +Wed Feb 17 14:04:18 1999 Michael Meissner <meissner@cygnus.com> - * alpha.h (CONST_COSTS): Zero is always free. - (RTX_COSTS): Add EV6 costs. Abort if alpha_cpu is unknown. + * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other + than cr0. -Sun Apr 26 15:38:50 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Wed Feb 17 16:59:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * cplus-dem.c (gnu_special): Fix off-by-one bug when checking the - length in the name of a virtual table. + * loop.c (strength_reduce): Don't move giv insn for biv turned giv + below scan_start. -Sun Apr 26 01:21:06 1998 Richard Henderson <rth@cygnus.com> +Wed Feb 17 10:56:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * alpha.c (print_operand): Don't add 'v' suffix for ALPHA_FPTM_N. + * tree.c (tree_node_kind_names, print_obstack_name, + get_identifier, maybe_get_identifier, build_string, + build_expr_wfl, is_attribute_p, lookup_attribute, + print_obstack_statistics, get_file_function_name_long, tree_check, + tree_class_check, expr_check): Qualify a char* with the `const' + keyword. -Sat Apr 25 22:11:38 PDT 1998 Jeff Law (law@cygnus.com) + * tree.h (get_identifier, maybe_get_identifier, build_string, + build_expr_wfl, is_attribute_p, lookup_attribute, + print_obstack_statistics, print_obstack_name, tree_check, + tree_class_check, expr_check): Likewise. - * version.c: Bump for snapshot. +Tue Feb 16 21:29:38 1999 Jeffrey A Law (law@cygnus.com) -Sat Apr 25 17:17:15 1998 Jeffrey A Law (law@cygnus.com) + * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing + errors. - * fold-const.c (fold_convert): Fix typo. + * calls.c (store_one_arg): Mark any slots used for the argument + as in-use immediately after we're done saving any slots which + will be overwritten by this argument. -Sat Apr 25 17:55:54 1998 John Carr <jfc@mit.edu> +Tue Feb 16 21:02:07 1999 Anton Hartl <toni@devsoft.com> - * alias.c (alias_invariant): New variable. - (record_base_value): New argument INVARIANT. - (memrefs_conflict_p): If a register has an entry in the alias_invariant - array, try substituting that value for the register. + * rs6000.md (call_value): Fix typo. - * rtl.h: Declare record_base_value. +Wed Feb 17 01:29:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * loop.c, unroll.c: Update callers of record_base_value. + * loop.c (strength_reduce): Calculate maybe_dead before + calling recombine_givs. - * alias.c (find_base_value, find_base_term): SIGN_EXTEND and - ZERO_EXTEND do not affect base values. +Wed Feb 17 00:43:12 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Fri Apr 24 15:57:02 1998 Jeffrey A Law (law@cygnus.com) + * loop.c (strength_reduce): Dump biv increment -> giv conversions. - * dbxout.c (dbxout_type): Fix typo. - (dbxout_range_type): Another HOST_WIDE_INT_PRINT_DEC fix. +Tue Feb 16 15:31:39 1999 Ovidiu Predescu <ovidiu@cup.hp.com> - * configure.in: Use CC_FOR_BUILD, not BUILD_CC. + * objc/objc-act.c (encode_type): Encode the type instead of + encoding the mode of the type (patch from Richard Frith-Macdonald + <richard@brainstorm.co.uk>). -Fri Apr 24 16:11:47 1998 John Carr <jfc@mit.edu> +Tue Feb 16 10:53:51 1999 Richard Earnshaw (rearnsha@arm.com) - * expr.c (expand_builtin, case MEMSET): Set MEM_IN_STRUCT_P - if the argument is the address of a structure or array. + * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load + instruction killed in previous change. Simplify mask generation. + (*zeroextractsi_compare0_scratch): Simplify mask generation. - * configure.in: Enable Haifa scheduler by default for SPARC. +Tue Feb 16 09:52:26 1999 Nick Clifton <nickc@cygnus.com> -Fri Apr 24 20:55:47 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that + bitfield does not overflow a byte boundary. - * cse.c (cse_set_around_loop): Don't do optimization when - new pseudos are created. +Tue Feb 16 01:37:33 1999 Charles G Waldman <cgw@alum.mit.edu> -Fri Apr 24 11:00:18 1998 Jeffrey A Law (law@cygnus.com) + * c-common.c (shorten_compare): Get the min/max value from the + underlying type of an enumeration, not the enumerated type itself. - * dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC - appropriately. - (dbxout_type_method_1, dbxout_type): Likewise. - (print_int_cst_octal, print_octal, dbxout_symbol): Likewise. - (dbxout_type): Fix check for when to print a type range in - octal vs decimal. +Mon Feb 15 23:04:48 1999 Jeffrey A Law (law@cygnus.com) -Fri Apr 24 16:45:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * jump.c: Include insn-attr.h. + (delete_computation): If reload has completed and insn scheduling + after reload is enabled, then do not depend on REG_DEAD notes. + * Makefile.in (jump.o): Depend on insn-attr.h. - * (gen_shl_and, in case 1): Fix comparison with mask. +Mon Feb 15 16:57:38 1999 Richard Henderson <rth@cygnus.com> -Fri Apr 24 06:46:40 1998 Nick Clifton <nickc@cygnus.com> + * i386.md (addsi3): Allow lea for any constant_p. - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame - pointer as second register in REG+REG pair. +1999-02-15 Zack Weinberg <zack@rabi.columbia.edu> -Fri Apr 24 09:22:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * toplev.c (documented_lang_options): Remove -fident and + -fnoident, which are now handled by the language independent + option parser. + +1999-02-15 Zack Weinberg <zack@rabi.columbia.edu> + + * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF. + * c-lex.c: Likewise. + * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked + list in malloced memory for the buffer stack. + (cpp_get_token): Don't pop the last buffer off the stack. + Calls after CPP_EOF has been returned produce CPP_EOF with no + state change. + (cpp_finish): Pop last buffer here. + (do_line): Don't free ip->last_nominal_fname if it is equal to + ip->fname. + (special_symbol): If a T_CONST is the empty string, push a + single `@ ' escape instead. + (macroexpand): Special symbol buffers have escapes too. + * cpplib.h (struct cpp_buffer): Remove unused fields, add prev + buffer pointer. + (struct cpp_reader): Remove buffer_stack. Add + buffer_stack_depth. + (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a + linked list. + +Mon Feb 15 14:44:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cccp.c: Don't define HOST_WIDE_INT. Replace all occurrences of + WIDE_INT with WIDEST_INT. - * c-common.c (check_format_info): Don't check for the 'x' format - character twice, instead check for 'x' and 'X' + * cexp.y: Likewise. + Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or + HOST_BITS_PER_WIDE_INT. Replace occurrences of PRINTF_PROTO_1() + style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros. Replace + occurrences of "unsigned_HOST" with "unsigned HOST". Provide a + definition of variable `c89' when compiling a test binary and set it. -Fri Apr 24 08:02:30 1998 Manfred Hollstein <manfred@s-direktnet.de> + * system.h: Don't define the PRINTF_PROTO_* macros. - * Makefile.in (libgcc2.ready): Add explicit dependancy from - $(STMP_FIXPROTO) to ensure all necessary include files have - been created and to guarantee proper parallel builds. +Mon Feb 15 11:33:51 1999 Jeffrey A Law (law@cygnus.com) -Fri Apr 24 04:42:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * loop.c (mark_loop_jump): Handle LO_SUM. If we encounter something + we do not understand, mark the loop and containing loops as invalid. - * sh.c (sh_expand_prologue, in !SH3E code): Don't push an extra - register for stdarg functions. - * sh.h (current_function_varargs): Declare. - (FUNCTION_ARG): Ignore NAMED for stdarg functions. +Mon Feb 15 00:40:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -1998-04-23 Jim Wilson <wilson@cygnus.com> + * alias.c (init_alias_analysis): Avoid self-referential value + when setting reg_known_value from REG_EQUAL notes. - * frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when - inhibit_libc is defined. +Sun Feb 14 23:12:10 1999 Richard Henderson <rth@cygnus.com> - * c-aux-info.c (gen_type): Use DECL_NAME only for TYPE_DECL. + * i386.c (legitimate_address_p): Verify modes of base and index. -Thu Apr 23 19:09:33 1998 Jim Wilson <wilson@cygnus.com> +Sun Feb 14 23:01:28 1999 Richard Henderson <rth@cygnus.com> - * profile.c (tablejump_entry_p): New function. - (branch_prob): Add code to recognize MIPS tablejump entry branch. - Use tablejump_entry_p in MIPS and HPPA tablejump checking code. + * i386.c (legitimate_pic_address_disp_p): Remove static. + * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of + open-coding cases. -Thu Apr 23 15:01:13 1998 Nick Clifton <nickc@cygnus.com> +Sun Feb 14 21:03:28 1999 Jeffrey A Law (law@cygnus.com) - * config/arm/arm.c (find_barrier): Return as soon as a barrier is - found, rather than at end of the loop, after the insn has been - changed. + * except.c (start_catch_handler): Use emit_cmp_and_jump_insns. + * explow.c (probe_stack_range): Likewise. + * expmed.c (do_cmp_and_jump): Likewise. + * expr.c (store_expr, expand_expr, expand_builtin): Likewise. + (do_tablejump): Likewise. + * stmt.c (expand_expr_stmt, expand_end_case): Likewise. + (do_jump_if_equal, emit_case_nodes): Likewise. + * optabs.c (emit_cmp_and_jump_insns): Clarify comments. If UNSIGNEDP, + then convert comparison to an unsigned code before emitting the jump. + (expand_float, expand_fix): Use emit_cmp_and_jump_insns. -Thu Apr 23 20:21:06 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Sun Feb 14 02:24:15 1999 Jeff Law (law@cygnus.com) - * sh.c (gen_ashift_hi): Implement right shifts via gen_ashift. - * sh.md (ashrhi3_k, lshrhi3_k, lshrhi3_m, lshrhi3, lshrhi3+1): Delete. + * version.c: Bump for snapshot. -Wed Apr 22 17:07:35 1998 Michael Meissner <meissner@cygnus.com> +Sun Feb 14 01:15:04 1999 Jeff Law (law@cygnus.com) - * loop.c (note_addr_stored): Correct function to take 2 arguments, - instead of 1. + * version.c: Bump for snapshot. - * rtl.def (MATCH_INSN2): Add new matching pattern. - * genrecog.c (add_to_sequence): Support MATCH_INSN2. +Sun Feb 14 00:45:50 1999 Jeffrey A Law (law@cygnus.com) -Wed Apr 22 15:52:22 1998 John Carr <jfc@mit.edu> + * loop.c: Disable recent loop changes. Temporary as Joern + continues to fix problems. - * emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero - if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD. +Sat Feb 13 23:29:42 1999 Richard Henderson <rth@cygnus.com> - * final.c (split_double): Sign extend both halves of a split CONST_INT. + * loop.c (combine_givs_used_by_other): Delete. + (combine_givs_benefit_from): Delete. + (combine_givs): Deny combination of givs only used once. Simplify + code with the death of combine_givs_benefit_from. -Wed Apr 22 10:42:45 1998 Jeffrey A Law (law@cygnus.com) +Sun Feb 14 11:24:05 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * mips.c (compute_frame_size): Change only argument to a HOST_WIDE_INT. + * loop.c (scan_loop): Call reg_in_basic_block_p before + loop_reg_used_before_p. -Wed Apr 22 10:53:49 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Sat Feb 13 05:32:00 1999 Richard Earnshaw (rearnsha@arm.com) - * cplus-dem.c (struct work stuff): Add field for B and K mangle codes. - (cplus_demangle_opname): Call mop_up_squangle. - (cplus_demangle): Initialize squangle info, then call - internal_cplus_demangle. (Most code moved there as well) - (internal_cplus_demangle): New function, performs most of what use - to be done in cplus_demangle, but is only called with this file. - (squangle_mop_up): New function to clean up B and K code data. - (mop_up): set pointers to NULL after freeing. - (demangle_signature, demangle_template, demangle_class): Add - switch elements to handle K and B codes. - (demangle_prefix, gnu_special, demangle_qualified): Add - code to handle K and B codes. - (do_type, demangle_fund_type): Handle B and K codes. - (remember_Ktype): New function to store K info. - (register_Btype, remember_Btype): New functions for B codes. - (forget_B_and_K_types): New function to destroy B and K info. + * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...). + * arm.h: Likewise. + * arm.c: Likewise. -1998-04-21 Jim Wilson <wilson@cygnus.com> + * arm.h (TARGET_OPTIONS): Reformat for clarity. + (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols + in the constant pool aren't valid. + (LEGITIMATE_PIC_OPERAND_P): Likewise. - * stmt.c (check_seenlabel): When search for line number note for - warning, handle case where there is no such note. + * arm.c: Include "system.h", not stdio.h and string.h. -Tue Apr 21 20:48:37 1998 John Carr <jfc@mit.edu> +Fri Feb 12 13:06:28 1999 Jim Wilson <wilson@cygnus.com> - * genemit.c (gen_exp): Allow machine description to set mode of - MATCH_OP_DUP. + * stmt.c (expand_return): Return if optimize_tail_recursion succeeded. + (optimize_tail_recursion): Change return type from void to int. + Add return statements. + * tree.h (optimize_tail_recursion): Change prototype to match. -Tue Apr 21 16:36:01 1998 John Carr <jfc@mit.edu> +Fri Feb 12 21:09:51 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * alias.c (mode_alias_check): New function. - (true_dependence, anti_dependence, output_dependence): Call - mode_alias_check. + * reload.c (find_reloads_subreg_address): New function, broken out of + find_reloads_toplev. + (find_reloads_toplev, find_reloads_address_1): Use it. -Tue Apr 21 12:05:32 1998 Jeffrey A Law (law@cygnus.com) +Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) - * mips.h (STACK_BOUNDARY): Allow specific targets to override. - (MIPS_STACK_ALIGN): Similarly. + * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle + extending a CONST_INT. - * c-common.c (type_for_mode): Handle TI types. - * c-decl.c (intTI_type_node, unsigned_int_TI_type_node): Define. - (init_decl_processing): Handle TI types. - * c-tree.h (intTI_type_node, unsigned_int_TI_type_node): Declare. + * h8300.md (peephole for combining memrefs): Delete incorrect peephole. - * mips.c (block_move_loop): Test Pmode == DImode instead of - TARGET_MIPS64. - (expand_block_move, save_restore_insns): Likewise. - (function_prologue, mips_expand_prologue): Likewise. - (mips_expand_epilogue): Likewise. - * mips.h (POINTER_SIZE): Allow specific targets to override. - (Pmode): Allow specific targets to override. - (FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64 - (POINTER_BOUNDARY, FUNCTION_MODE): Likewise. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. - (TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise. - (CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise. - * mips.md (indirect, tablejump & casesi support): Test for - Pmode == DImode instead of TARGET_MIPS64. - (call patterns): Likewise. +Fri Feb 12 18:29:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset): + New functions. + (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset. - * objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done - for gen_rtx(MEM, ...). +Fri Feb 12 16:56:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Apr 21 02:15:36 1998 Richard Henderson <rth@cygnus.com> + * loop.c (load_mems): Don't guess how to do a load / store, use + emit_move_insn. - * sparc.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Rewrite - to not be so gross, and to properly function with PIC. +Fri Feb 12 09:24:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon Apr 20 20:44:25 1998 Jim Wilson <wilson@cygnus.com> + * system.h: Provide a definition for HOST_WIDEST_INT, etc. - * frame.c (heapsort): Rename to frame_heapsort. +Fri Feb 12 23:37:26 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * gcc.c (do_spec_1, case '['): Move flag out of loop and initialize it. + * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. -Mon Apr 20 12:43:09 1998 Doug Evans <devans@canuck.cygnus.com> +Fri Feb 12 00:51:26 1999 Jeffrey A Law (law@cygnus.com) - * flow.c (sbitmap_vector_alloc): Ensure sbitmaps properly aligned. + * reload.c (find_reloads_address_1): Fix handling of an autoincremented + pseudo which is homed in the stack. -Mon Apr 20 15:04:14 1998 John Wehle (john@feith.com) + * mips.c (save_restore_insns): Fix loop to save/restore FP registers. + (compute_frame_size): Change loop over FP regs to be consistent + with the loop in save_restore_insns. - * i386.md (movsf_push, movdf_push, movxf_push): Allow memory - operands during and after reload. +Thu Feb 11 17:38:40 1999 Jim Wilson <wilson@cygnus.com> -Mon Apr 20 22:37:50 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used. + (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96. - * final.c (shorten_branches, init_insn_lengths): Move code - to free label_align, uid_shuid, insn_lengths, insn_addresses - and uid_align from the former function into the latter one; - Add code to clear these variables. - * sh.h (label_align): Remove declaration. +Thu Feb 11 15:11:35 1999 Jeffrey A Law (law@cygnus.com) -Mon Apr 20 14:48:29 1998 Michael Meissner <meissner@cygnus.com> + * mn10200.md (bset); Re-enable. - * gcc.c (lang_specific_driver): Declare prototype properly so - fatal can be passed to it without error. +Thu Feb 11 15:20:49 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr. - * configure: Regenerate. - * config.in: Add #undef's for strchr and strrchr. + * sh.md (is_sfunc): New attribute. + * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it. + +Thu Feb 11 01:06:49 1999 Nathan Sidwell <nathan@acm.org> - * protoize.c (toplevel): If we have rindex, but not strrchr, map - rindex to strrchr. - (file_could_be_converted): Use strrchr, not rindex since rindex is - not defined on Linux systems when _POSIX_SOURCE is defined. - (file_normally_convertible): Ditto. - (process_aux_info_file): Ditto. - (main): Ditto. + * fold-const.c (range_binop): Take account of the bounded nature + of fixed length arithmetic when comparing unbounded ranges. - * rs6000.md (mov{sf,df} define_splits): When splitting a move of - a constant to an integer register, don't split the insns that do - the simple AND and OR operations, rather just split each word, and - let the normal movsi define split handle it further. +Thu Feb 11 00:08:17 1999 John Wehle (john@feith.com) -Mon Apr 20 18:19:40 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * function.c (assign_stack_temp_for_type): Clear best_p + when an exact match is found. - * sh.c (find_barrier): Fix bug in ADDR_DIFF_VEC handling. - (split_branches): Call init_insn_lengths. + * i386.h (LOCAL_ALIGNMENT): Define. + * function.c (assign_stack_local, assign_outer_stack_local): Use it. + (assign_stack_temp_for_type): New function based on assign_stack_temp. + (assign_stack_temp): Call it. + (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp. + * stmt.c: Use assign_temp, not assign_stack_temp. + * tm.texi: Document LOCAL_ALIGNMENT. -Mon Apr 20 07:37:49 1998 Michael Meissner <meissner@cygnus.com> +Wed Feb 10 23:28:28 1999 Jeffrey A Law (law@cygnus.com) - * i386.c: Include expr.h to get the change_address prototype - declared. + * reorg.c: Finish deleting half-deleted comment. -Mon Apr 20 01:00:05 1998 H.J. Lu (hjl@gnu.org) +Wed Feb 10 17:12:21 1999 Jim Wilson <wilson@cygnus.com> - * reg-stack.c (subst_asm_stack_regs): Change to return the last - new insn generated by this function. - (subst_stack_regs): Likewise. - (convert_regs): Record the last newly generated insn and use - it for change_stack () instead of INSN. + * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE + result. + * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE + result. + * real.c (endian): Delete sign extension code. + * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call + replaced with operand_subword call. -Sun Apr 19 15:41:24 1998 Manfred Hollstein <manfred@s-direktnet.de> +Wed Feb 10 15:16:39 1999 Richard Henderson <rth@cygnus.com> - * fix-header.c (enum special_file): Undefine enumerators if they - are already defined by include files. - * fixproto (rel_source_file in unistd.h stdlib.h): Prefix file protection - macro with '__' to not pollute user namespace. + * alpha.md (cmov compound patterns): Delete. Jump can now + create the correct constructs in the first place. -Sun Apr 19 02:42:06 1998 Richard Henderson <rth@cygnus.com> +Wed Feb 10 11:03:22 1999 Richard Henderson <rth@cygnus.com> - * haifa-sched.c (queue_to_ready): Fix typo in prototype. + * configure.in (alphaev6*): Fix typo in target_cpu_default2. -Sat Apr 18 23:52:35 PDT 1998 Jeff Law (law@cygnus.com) +Wed Feb 10 13:59:18 1999 Dave Brolley <brolley@cygnus.com> - * version.c: Bump for snapshot. + * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0. -Sat Apr 18 18:30:22 1998 Jim Wilson <wilson@cygnus.com> +Wed Feb 10 10:35:05 1999 Jim Wilson <wilson@cygnus.com> - * i386.md (fix_truncsfdi2+[123]): Add + to operand 1 constraints. + * tmp-emsgids.c: Delete. - * i386.h (CPP_CPU_DEFAULT): Renamed to CPP_CPU_DEFAULT_SPEC. - Add missing -Dpentium* options. - (CPP_CPU_SPEC): Delete redundant definition. Include cpp_cpu_default - instead of CPP_CPU_DEFAULT. - (EXTRA_SPECS): Add entry for cpp_cpu_default. +Wed Feb 10 09:57:08 1999 Mark Mitchell <mark@markmitchell.com> -Sat Apr 18 19:06:59 1998 David Edelsohn <edelsohn@mhpcc.edu> + * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU + coding standards. - * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be - negative in a stackless frame. - * rs6000.c (rs6000_stack_info): Don't include fixed-size link area - in stackless frame size. Support 64-bit stackless frame size. - Combine fpmem offset calculations and don't add total_size to - offset if not pushing a stack frame. +Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) -Sat Apr 18 15:41:16 1998 Jim Wilson <wilson@cygnus.com> + * mn10200.md (bset, bclr): Operand 0 is a read/write operand. - * regmove.c (fixup_match_1): In three places, in flag_exceptions - check, change p to q. + * reload1.c (reload_combine_note_store): Second argument is no + longer unused/ignored. Handle multi-register hard regs. + (move2add_note_store): Simplify. -Sat Apr 18 15:30:49 1998 Jim Wilson <wilson@cygnus.com> +Wed Feb 10 10:05:23 1999 Mumit Khan <khan@xraylith.wisc.edu> - * gcc.c (lang_specific_driver): Add new parm type to prototype. - (added_libraries): New file scope static variable. - (process_command): Initialize added_libraries. Pass it to - lang_specific_driver. - (main): Use added_libraries in check for no input files. + * collect2.c (collect_execute): Remove cygwin-specific code. -Sat Apr 18 01:23:11 1998 John Carr <jfc@mit.edu> +Tue Feb 9 17:27:29 1999 Nathan Sidwell <nathan@acm.org> - * sparc.c, sparc.h, sparc.md, sol2.h: Many changes related to V9 - code generation. Use 64 bit instructions in 32 bit mode when - possible. Use V9 return instruction. UltraSPARC optimizations. + * system.h (_, N_): Remove dummy i18n macros. + * protoize.c: Move inclusion of intl.h to after system.h. + * cexp.y: Include intl.h. + * cexp.c: Rebuilt. - * sparc.h: Change gen_rtx (CODE to gen_rtx_CODE (. +Tue Feb 9 16:52:22 1999 Mumit Khan <khan@xraylith.wisc.edu> -Fri Apr 17 22:38:17 1998 Jeffrey A Law (law@cygnus.com) + * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore + fpic/fPIC for windows32 targets. + * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32 + paths with '/'. + * i386/mingw32.h (CPP_SPEC): Define. + (CPP_PREDEFINES): Add MINGW32 version id. + * i386/crtdll.h (CPP_PREDEFINES): Likewise. - * global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg, - just pass zero. That will work regardless of the size of HARD_REG_SET. + * Makefile.in (collect2$(exeext)): Delete redundant dependency and + add missing exeext to target. - * libgcc2.c (__floatdisf): Fix a couple typos. + * gcc.c (convert_filename): Handle null filename argument. -Fri Apr 17 17:28:26 1998 Jim Wilson <wilson@cygnus.com> +Wed Feb 10 15:46:10 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * Makefile.in (mostlyclean): Delete *.mach and *.bp files. + * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use + m constraint instead of QT. -Fri Apr 17 16:35:35 1998 Greg McGary <gkm@gnu.org> +1999-02-09 Brendan Kehoe <brendan@cygnus.com> - * emit-rtl.c (gen_highpart): initialize `word' properly for pseudo. + * cpplib.c (special_symbol): Move IP to be declared in function + scope, rather than individual case statements. -Fri Apr 17 14:30:37 1998 John Carr <jfc@mit.edu> +1999-02-09 Zack Weinberg <zack@rabi.columbia.edu> - * emit-rtl.c (operand_subword_force): If a register can not be - accessed by words, copy it to a pseudo register. + * cppfiles.c (finclude): Handle pipes properly under old BSD + derivatives. -Fri Apr 17 14:30:37 1998 Jim Wilson <wilson@cygnus.com> +1999-02-09 Melissa O'Neill <oneill@cs.sfu.ca> - * rs6000/vxppc.h (CPP_SPEC): Add support for mrelocatable*. + * system.h: Provide fallback definitions for S_ISCHR, + S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY. -Fri Apr 17 17:01:25 1998 Michael Meissner <meissner@cygnus.com> +1999-02-09 Zack Weinberg <zack@rabi.columbia.edu> - * tree.h (mark_seen_cases): Delete declaration. + * cpplib.c (do_define): Allow redefining __STDC__ with -D. -Fri Apr 17 13:32:20 1998 Jeffrey A Law (law@cygnus.com) +1999-02-09 Jim Blandy <jimb@zwingli.cygnus.com> - * stmt.c (mark_seen_cases): Make static and add prototype. + * configure.in: For PowerPC configurations, accept "401", "ec603e", + "740", and "750" as valid arguments to --with-cpu. + * configure: Rebuilt. + +Tue Feb 9 00:00:14 1999 Mark Kettenis <kettenis@gnu.org> + + * configure.in (i[34567]86-*gnu*): Set float_format to i386. + * configure: Rebuilt. + +Mon Feb 8 22:38:24 1999 Jeffrey A Law (law@cygnus.com) -Fri Apr 17 11:21:43 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * rs6000.md: Revert "alternate use of crs if cr0 not available" + patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999. - * frame.c: Include stdlib.h and unistd.h to possibly get various - function prototypes. The fixproto script guarantees these header - files exist on the target system. - * libgcc2.c: Likewise. +Mon Feb 8 21:36:44 1999 Richard Henderson <rth@cygnus.com> - * gthr-single.h (__gthread_mutex_lock, __gthread_mutex_trylock, - __gthread_mutex_unlock): Add __attribute__ ((__unused__)) to the - function parameters. - * libgcc2.c (__udiv_w_sdiv): Likewise. + * output.h (current_function_has_computed_jump): Rename from + current_function_addresses_labels. + * function.h (struct function): Likewise for addresses_labels member. + * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise. + * function.c (current_function_has_computed_jump): Likewise. + Update all references. + * integrate.c (function_cannot_inline_p): + Test current_function_has_computed_jump instead of addresses_labels. + (initialize_for_inline): Likewise save. + (output_inline_function): Likewise restore. -Thu Apr 16 22:41:02 1998 Jeffrey A Law (law@cygnus.com) + * expr.c (expand_expr): Don't reference addresses_labels variables. + * stmt.c (expand_computed_goto): Set has_computed_jump. - * varasm.c (asm_output_bss): Add prototype. - (asm_output_aligned_bss): Likewise. +1999-02-08 Michael Meissner <meissner@cygnus.com> - * unroll.c (verify_addresses): Add prototype. + This is being installed only to get it into the repository to help + with the revert, resubmit & review process for the massive rs6000.md + changes. + * rs6000.md (andsi3_internal1 splitter): Don't split if using the + rlwinm instruction. + (anddi3_internal1): Likewise. + (andsi3_internal{2,3}): Correct some insn lengths. + (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old + mnemonics. + +Mon Feb 8 21:31:06 1999 Richard Henderson <rth@cygnus.com> + + * loop.c (reg_single_usage): New file-scope variable ... + (scan_loop): ... moved out of here. Always initialize. + Test loop_has_call instead of reg_single_usage not zero. + Free reg_single_usage after strength reduction. + (count_loop_regs_set): Assume single_usage non-zero. + (combine_givs_used_by_other): Test reg_single_usage. + (load_mems_and_recount_loop_regs_set): Remove reg_single_usage + as a parameter. Assume non-zero. + +1999-02-08 Zack Weinberg <zack@midnite.ec.rhno.columbia.edu> + + * cpplib.c (special_symbol): Rewrite. Don't copy things + multiple times. Handle __STDC__ specially. T_CONST + indicates a constant /string/. Don't handle T_*_TYPE and + T_SPEC_DEFINED. Use cpp_buf_line_and_col instead of + adjust_position. Determine the file buffer only if needed. + (initialize_builtins): Handle __SIZE_TYPE__, + __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and + __REGISTER_PREFIX__ with T_CONST special hashtab entries. + Don't provide __OBJC__; the driver does that. Provide + __STDC_VERSION__, using T_CONST. Use T_STDC for + __STDC__. Give install the length of all symbols defined. + (eval_if_expression): Drop code to insert and remove the + "defined" special symbol. + + * cpplib.h: Remove SELF_DIR_DUMMY (no longer used). Remove + T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC. + + * cpphash.c (install): Drop the `ivalue' parameter. Constify + the `value' parameter. All callers changed. + * cpphash.h (install): Change prototype to match. + (union hashval): Remove `ival' member. + * cppexp.c (cpp_lex): Handle `defined' here. + +Mon Feb 8 17:29:42 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (EXTRA_CONSTRAINT): Fix comment. + +Mon Feb 8 18:57:45 1999 Vladimir N. Makarov <vmakarov@cygnus.com> + + * c-typeck.c (check_init_type_bitfields): Use nonincremental + initialization of unions whose first member is a bitfield. + Remove unnecessary code for checking the declaration mode + after DECL_C_BIT_FIELD. + + * varasm.c (output_constructor): Additional comment about the + constructor of bitfield union initialization. + +Tue Feb 9 11:55:04 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (*movhi_stik): New pattern. + (movhi): Allow some immediate constants to be directly + stored in memory. + +Tue Feb 9 11:34:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (all call patterns): Add constraints "Ur". + (call, call_value): Force address into a register if not valid + for a call instruction. + (load_immed_address): Emit a USE of the SYMBOL_REF that is + forced into memory. + * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers. + +Tue Feb 9 11:08:41 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (call_address_operand, symbolic_address_operand): + Rename from call_operand and symbolic_operand respectively. All + callers changed. + * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): + Likewise. + * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): + Likewise. + (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand. - * toplev.c: Add many prototypes. Too many to mention here. +Tue Feb 9 10:52:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * stmt.c (check_seenlabel): Add prototype. + * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a + LO_SUM address for HImode or HFmode but instead force address into + a register so that it is offsettable. + (c4x_emit_move_sequence): Handle LO_SUM immediate address. - * rtlanal.c (reg_set_p_1): Add prototype. - (reg_set_last_1): Likewise. +Tue Feb 9 10:46:42 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * reorg.c (find_dead_or_set_registers): Add prototype. + * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for + REG+REG addressing if strength reduction enabled. - * regmove (try_auto_increment): Add prototype. +Tue Feb 9 10:10:31 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * reg-stack.c (pop_stack): Add prototype. + * config/c4x/t-c4x (LIBGCC2_CFLAGS): Delete. + (TARGET_LIBGCC2_CFLAGS): Define. - * recog.c (validate_replace_rtx_1): Add prototype. - (find_cosntant_term_loc): Likewise. +1999-02-08 Nick Clifton <nickc@cygnus.com> - * loop.c (regs_patch_p): Add prototype. - (add_label_notes, count_nonfixed_reads): Likewise. - (find_single_use_in_loop): Likewise. - (express_from): Surround prototype with #ifdef. - (giv_sort): Similarly. + * config/v850/v850.md: Replace \\n\\t with \\; - * jump.c (mark_modified_reg): Add prototype. + * config/v850/v850.md: Enforce TARGET_LONG_CALLS option. + * config/v850/v850.c (construct_restore_jr, construct_save_jarl): + Enforce TARGET_LONG_CALLS option. - * haifa-sched.c (is_prisky): Add prototype. - (queue_to_ready): Likewise. +Mon Feb 8 11:43:07 1999 Donn Terry <donn@interix.com> - * genextract.c (gen_insn): Add prototype. + * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure. - * genemit.c (max_operand_1): Add prototype. - (max_operand_vec, print_code, gen_exp, gen_insn): Likewise. - (gen_expand, gen_explit, output_add_clobbers): Likewise. - (output_init_mov_optab): Likewise. +Mon Feb 8 11:37:24 1999 Marc Espie (espie@cvs.openbsd.org) - * genattrtab.c (attr_hash_add_rtx): Add prototype. - (attr_hash_add_string, write_length_unit_log): Likewise. + * m88k/t-luna-gas: Remove bash dependency. - * genattr.c (init_range): Add prototype. +Mon Feb 8 11:34:44 1999 Graham <grahams@rcp.co.uk> - * combine.c (sets_function_arg_p): Add prototype. + * collect2.c (xrealloc): Fix typo in last change. - * expr.c (store_constructor_field): Add prototype. - (get_memory_usage_from_modifier): Likewise +Mon Feb 8 09:13:38 1999 Jeff Law (law@cygnus.com) - * expmed.c (synth_mult): Add prototype. - (choose_multiplier, invert_mod2n): Likewise. + * version.c: Bump for snapshot. - * except.c (push_eh_entry): Add prototype. - (pop_eh_entry, enqueue_eh_entry, dequeu_eh_entry): Likewise. - (call_get_eh_context, start_dynamic_cleanup): Likewise. - (start_dynamic_handler, can_throw): Likewise. - (output_exception_table_entry, scan_region): Likewise. - (eh_regs, set_insn_eh_region): Likewise. +Sun Feb 7 22:18:42 1999 Robert Lipe <robertlipe@usa.net> - * dwarfout.c (decl_class_context): Add prototype. - (output_inheritance_die, type_ok_for_scope): Likewise. + * tree.h (TYPE_CHECK): Make it clear to the preprocessor + that we do not want macro replacement within a character constant. + (TYPE_CHECK1): Likewise. - * c-lex.c (skip_white_space_on_line): Add prototype. +Sun Feb 7 15:37:10 1999 Jason Merrill <jason@yorick.cygnus.com> - * alias.c (record_set): Add prototype. - (find_base_term, base_alias_check): Likewise. + * tree.h (DECL_P): New macro. - * function.c (assign_outer_stack_local): Make static and add prototype. +Sun Feb 7 01:15:04 1999 Jeff Law (law@cygnus.com) - * haifa-sched.c (build_control_flow): Accept raw data as inputs - instead of computing it locally. Callers changed. - (find_rgns): Several new arguments. Callers changed. - Generally clean up and comment better. Use dominators to - identify reducible loops. Convert some flag arrays to bitmaps. - Convert most of the code to work on pred/succ lists instead of - an edge table. Add comments for future improvements. - (schedule_insns): Allocate temporary tables for flow data, call - routines to compute flow data and pass it along to children as - arguments. - (debug_control_flow): Delete. Use dump_bb_data instead. + * version.c: Bump for snapshot. - * basic-block.h (compute_dominators): Declare. +Sat Feb 6 18:14:46 1999 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (reload_insi): Do not earlyclobber the output operand. + + * README.g77, gcc.c, gcc.texi: Update email addresses. + * invoke.texi system.h: Likewise. + +Sat Feb 6 11:04:08 1999 Jim Wilson <wilson@cygnus.com> + + * unroll.c (find_splittable_givs): After express_from, call replace_rtx + to convert dest_reg to new_reg. + +Sat Feb 6 10:31:35 1999 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_combine_note_store): Be more careful with + STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT. + (move2add_note_store): Likewise. + +Sat Feb 6 10:18:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to + U_CHAR* when assigning to one. Ensure the values of a ?: operator + have the same type. + + * cppinit.c (initialize_char_syntax): Use K&R function definition. + +Sat Feb 6 11:17:03 1999 Richard Earnshaw <rearnsha@arm.com> + + Support for ARM9 + * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi. + * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define. + (TARGET_CPU_DEFAULT): Rework to support ARM9. + (CPP_CPU_ARCH_SPEC): Likewise. + (enum processor_type): Likewise. + * config/arm/arm.md (attr cpu): Add arm9. + + General scheduling changes + * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete. + (max_insns_skipped): New variable. + (arm_override_options): If generating hard floating point code for + the FPA, emit code for version 3. + When optimizing for space, don't synthesize constants. + Reword several flags based on the requested processor and optimization + level. + (use_return_insn): New argument iscond, all callers changed. Don't + use a return insn if it will be conditional and that would be + expensive; eg on StrongARM. + (arm_adjust_cost): Anti- and output- dependencies normally have no + cost. + (load_multiple_sequence): Newer ARMs don't benefit from ldm if + the sequence is short. + (final_prescan_insn): Use max_insns_skipped instead of + MAX_INSNS_SKIPPED. Note whether we will make a return instruction + conditional, and aviod this if it would be expensive. + * config/arm/arm.md (scheduling attributes and function units): + Rewrite to better describe ARM8, 9 and StrongARM. + + * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate + s_register_operand. + (*ifcompare_plus_move): Use arm_rhs_operand in place of + arm_rhsm_operand. Rework constraints. + (*if_plus_move): Likewise. + (*ifcompare_move_plus): Likewise. + (*if_move_plus): Likewise. + (*ifcompre_arith_move): Likewise. + (*if_arith_move): Likewise. + (*ifcompare_move_arith): Likewise. + (*if_move_arith): Likewise. + + * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h. + +1999-02-05 Michael Meissner <meissner@cygnus.com> - * flow.c (dump_sbitmap, dump_sbitmap_vector): New debugging - functions. - * basic-block.h: Declare them. + * loop.c (check_dbra_loop): A store using an address giv for which + we have no life information is not reversible. -Thu Apr 16 13:45:51 1998 Jim Wilson <wilson@cygnus.com> +Fri Feb 5 17:08:01 1999 Dave Brolley <brolley@cygnus.com> - * reg-stack.c (constrain_asm_operands): Set n_alternatives to zero if - no operands. + * function.c (fixup_var_refs): Scan catch_clauses too. -Wed Apr 15 11:33:09 1998 Alexandre Petit-Bianco <apbianco@sendai.cygnus.com> +Fri Feb 5 11:49:49 1999 Benjamin Kosnik <bkoz@loony.cygnus.com> - * tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL. - Propagate TREE_SIDE_EFFECTS and TREE_TYPE iff the encapsulated - node is non NULL. Cache last file name and file name identifier node. + * c-common.c (decl_attributes): Fix reserved space for init_priority. + * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro. -1998-04-15 Mark Mitchell <mmitchell@usa.net> +Fri Feb 5 12:37:05 1999 Jeffrey A Law (law@cygnus.com) - * c-common.c (declare_hidden_char_array): Use TYPE_DOMAIN to get - the length of an array, not TREE_TYPE. + * loop.c (strength_reduce): Clear not_every_iteration when + passing the NOTE_INSN_LOOP_CONT note. -Wed Apr 15 15:31:34 1998 Jeffrey A Law (law@cygnus.com) + * haifa-sched.c (add_dependence): Do not add a dependency on a + note. - * flow.c (sbitmap_union_of_successors): New function. - * basic-block.h (sbitmap_union_of_successors): Declare it. +Fri Feb 5 10:55:43 1999 Nick Clifton <nickc@cygnus.com> -Wed Apr 15 12:38:03 1998 Jim Wilson <wilson@cygnus.com> + * recog.c (split_block_insns): Only call update_flow_info if + instruction scheduling is enabled. - * configure.in (gnu_ld): Rename to gnu_ld_flag before main loop. - Set gnu_ld to gnu_ld_flag inside main loop. - (gas): Likewise. +1999-02-05 Zack Weinberg <zack@rabi.columbia.edu> -Wed Apr 15 14:50:05 1998 Dave Brolley <brolley@cygnus.com> + * Makefile.in (gen-protos): Use libcpp.a like everyone else. - * toplev.c (compile_file): Call init_parse using new interface. - (init_lex): Remove declaration. +Fri Feb 5 07:09:29 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * c-lex.c (init_parse): Now returns char* containing filename. + * loop.c (first_loop_store_insn): New file-scope variable. + (prescan_loop): Set it. + (check_dbra_loop): Check if a store depends on a register + that is set after the store. -Wed Apr 15 12:37:10 1998 Jeffrey A Law (law@cygnus.com) +Fri Feb 5 06:55:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * unroll.c (entire file): Remove tabs / spaces at end of lines. + Replace spaces with tabs where appropriate. + +Thu Feb 4 15:12:41 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (scan_loop): New argument loop_cont. Changed caller. + (strength_reduce): New argument loop_cont. Changed caller. + Before clearing not_every_iteration after a label, check if + we are not already past LOOP_CONT. + +1999-02-04 Zack Weinberg <zack@rabi.columbia.edu> + + * cpperror.c (cpp_print_containing_files): Fix formatting + bug induced by merge. + +1999-02-04 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpplib.c (initialize_char_syntax): Move to cppinit.c. + (cpp_define): Remove redundant syntax checks. + (make_assertion): Rename cpp_assert, remove redundant syntax + checks, export. + (cpp_options_init): Don't init things to zero twice. + (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop. + (do_include): Kill excessively verbose #import warning that + snuck back in in the gcc2 merge. + (convert_string): Removed. + (do_line): Rewrite with simple last-name-used cache instead of + private hashtable. + (cpp_start_read): Call initialize_char_syntax here, not... + (cpp_reader_init): ...here. + (cpp_handle_options): Support the -std switch. + * cpplib.h (cpp_buffer): Add last_nominal_fname member. + (cpp_options): Add c9x flag. + Declare all the is_* tables and trigraph table here, as const. + Prototype cpp_assert and initialize_char_syntax. + * cppinit.c: New file. + * cppfiles.c (read_and_prescan): Optimize. + * Makefile.in (LIBCPP_OBJS): Add cppinit.o. + +Thu Feb 4 10:46:30 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3, + [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register + before calling gen_div_trap. + +Wed Feb 3 21:56:27 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather + than numeric value for target_cpu_default.. + * configure: Rebuilt. - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing if not optimizing. +Wed Feb 3 21:55:56 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> + + * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and + mkstemp. Get them from libiberty. + (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp. + (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute. + (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules. + (mkstemp.o, getopt1.o, getopt.o): Likewise. + + * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric + values. + * pa-hpux.h (LINK_SPEC): Likewise. + * pa-hpux10.h (LINK_SPEC): Likewise. + * pa-hpux9.h (LINK_SPEC): Likewise. + * pa-osf.h (LINK_SPEC): Likewise. + * pa-pro.h (TARGET_DEFAULT): Likewise. + * pa1.h (TARGET_DEFAULT): Likewise. + * pa.h (MASK_*): New defines. + (TARGET_*): Use symbolic values rather than numeric values. + (TARGET_SWITCHES): Likewise. + (TARGET_DEFAULT): Likewise. + (CPP_SPEC): Likewise. + +Wed Feb 3 21:07:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * reload1.c (reload_cse_regs_1): Undo Jan 16 patch. + * reload.c (find_reusable_reload): New function, broken out of + push_reload. Add code to verify that none of the involved + outputs are subject to earlyclobbers. + (push_reload): Break out new function find_reusable_reload. + Delete "register" keyword for IN, OUT args. + +Wed Feb 3 15:51:04 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.c (true_reg_or_0_operand) : New function. + * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand. + * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): + Use true_reg_or_0_operand for div_trap. + +Wed Feb 3 20:44:59 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.h (express_from): Declare. + (struct induction): Replace derived flag with derived_from pointer. + * loop.c (strength_reduce, record_giv, recombine_givs): Likewise. + (express_from): No longer static. + * unroll.c (find_splittable_givs): Replace derived with derived_from. + When processing an address giv with which another giv has been + combined that has also been derived from a third giv, handle like + having combined with the third giv. + Set splittable_regs_updates appropriately for derived givs. + +Wed Feb 3 15:26:58 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.md (div_trap_mips16): Remove nop's after branches. + +Wed Feb 3 11:56:23 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (insn_sets_and_refs_are_delayed): New function. + * pa.h (INSN_SETS_ARE_DELAYED): Use it. + (INSN_REFERENCES_ARE_DELAYED): Likewise. + +Wed Feb 3 06:24:49 1999 Richard Earnshaw (rearnsha@arm.com) + + * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete. + * config/arm/t-linux (LIBGCC2_CFLAGS): Delete. + (TARGET_LIBGCC2_CFLAGS): Define. + (LIBGCC2_DEBUG_CFLAGS): Define. + * config/arm/t-netbsd: Likewise. + * config/arm/t-semi: Likewise. + * config/arm/t-semiaof: Likewise. + * config/arm/t-riscix: Likewise. + +Wed Feb 3 10:59:07 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * config/m68k/m68k.c (print_operand_address): When printing a + SYMBOL_REF that ends in `.<letter>' put parentheses around it. + +Tue Feb 2 23:38:35 1999 David O'Brien <obrien@FreeBSD.org> -Wed Apr 15 12:10:18 1998 Michael Meissner <meissner@cygnus.com> + * i386/freebsd*.h now allows '$' in label names and does not use the + PCC struct return method. - * Makefile.in (gen{config,flags,codes,emit}): Link in host print-rtl.o. - (gen{extract,peep,opinit,output}): Ditto. +Tue Feb 2 22:38:23 1999 Jim Wilson <wilson@cygnus.com> - * gen{attr,codes,config,emit,output}.c (insn_attr_name): Provide a - global definition so print-rtl.o can be linked in. - * gen{peep,recog}.c (insn_attr_name): Ditto. + * Makefile.in: Change all uses of AR to AR_FOR_TARGET. Change all uses + of HOST_AR to AR. Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST. + (RANLIB_TEST): Test to see if ranlib exists. Only test absolute file + names if host == target. + (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete. + (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS. + (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules + setting them to *_FOR_TARGET. + * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): + Delete. -Tue Apr 14 07:30:57 1998 K. Richard Pixley <rich@kyoto.noir.com> +Tue Feb 2 22:38:19 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - * fixincludes: discard empty C++ comments, as found in sys/time.h - on hpux-11.0. + * toplev.h (read_integral_parameter): Declare. + * toplev.c (read_integral_parameter): New function. -Wed Apr 15 10:47:21 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Fri Jan 29 21:00:56 1999 Bob Manson <manson@charmed.cygnus.com> - * config/m68k/m68k.md (adddi3, subdi3): Optimize for constant - operand. + * resource.c, resource.h: New files. + * Makefile.in (OBJS): Add it. -Wed Apr 15 01:21:21 1998 Jeffrey A Law (law@cygnus.com) + * haifa-sched.c (regno_use_in): Moved to rtlanal.c. + (split_block_insns): Moved to recog.c. + (update_flow_info): Make public. + * rtl.h: Declare them. - * emit-rtl.c (operand_subword): Rework slightly to avoid - bogus warning from previous change. + * reorg.c: Moved the functions dealing with computing resource + usage to resource.c. -Tue Apr 14 23:39:13 1998 Richard Henderson <rth@cygnus.com> + * sched.c (regno_use_in): Moved to rtlanal.c. + (update_flow_info): Make public. + (schedule_insns): Use split_block_insns. - * alpha.md: Revert Oct 27 change, as it is superceeded by Kenner's - Nov 8 find_replacement change. Move decls of get_unaligned_address - * alpha.h: ... here. + * recog.c (split_block_insns): New function. -Tue Apr 14 22:00:39 1998 John Carr <jfc@mit.edu> +Tue Feb 2 22:03:26 1999 David Edelsohn <edelsohn@gnu.org> - * function.c (assign_parms): Initialize unsignedp before passing - its pointer to promote_mode. + * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused. + (LINK_OS_DEFAULT_SPEC): Delete, unused. - * genattrtab.c (check_attr_test): Handle MATCH_INSN like MATCH_OPERAND. - (write_test_expr): Allow MATCH_INSN. +Tue Feb 2 20:29:34 1999 Catherine Moore <clm@cygnus.com> -Tue Apr 14 21:57:57 1998 Paul Eggert <eggert@twinsun.com> + * configure.in (arm-*-oabi): Support. + * configure: Regenerate. + * config/arm/unknown-elf-oabi.h: New file. - * install.texi: Update section on warnings that can be safely ignored. +Tue Feb 2 19:43:59 1999 Jeffrey A Law (law@cygnus.com) -Tue Apr 14 14:55:16 1998 Jim Wilson <wilson@cygnus.com> + * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern. + Make the anonymous pattern match when ! optimize_size. + (ashlsi3 size optimizer): New pattern. - * mips.md (reload_outdi): Change the scratch mode from DImode to - TImode. New variable scratch, used instead of operand[2] in template. - Add code for MIPS16 HILO_REGNUM case where output reg is not M16_REG_P. + * intl/Makefile.in (uninstall): Add missing "; \". -Tue Apr 14 16:19:03 1998 Michael Meissner <meissner@cygnus.com> +Tue Feb 2 18:21:23 1999 Stan Cox <scox@cygnus.com> - * expr.c (MOVE_RATIO): Set to 3 if optimizing for space. + * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x + synonym. -Tue Apr 14 11:31:28 1998 Krister Walfridsson <cato@df.lth.se> +Tue Feb 2 20:24:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * i386/bsd386.h (ASM_OUTPUT_ALIGN): Redefine. + * loop.c (loop_optimize): Fix value max_uid_for_loop is reset + to after find_and_verify_loops call. -Tue Apr 14 09:02:32 1998 Jeffrey A Law (law@cygnus.com) +Tue Feb 2 19:48:29 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * svr4.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. - (ASM_FINISH_DECLARE_OBJECT): Likewise. + * (recombine_givs): Don't use a giv that's likely to be dead to + derive others. - * Idea and part of the patch from HJ. - * Makefile.in: auto-host.h renamed from auto-config.h. All references - changed. - (distclean): Remove auto-build.h too. - * configure.in: Rename host autoconf generated file to auto-host.h. - If host != build, then run autoconf to generate auto-build.h for - the build machine and include it in build_xm_files. - Check for wait.h and sys/wait.h. + * loop.c (recombine_givs): Fix test for lifetime overlaps / loop + wrap around when deriving givs. - * combine.c (simplify_rtx, case TRUNCATE): Respect value of - TRULY_NOOP_TRUNCATION. +Mon Feb 1 20:00:40 1999 Richard Henderson <rth@cygnus.com> -Mon Apr 13 11:31:49 1998 Jason Merrill <jason@yorick.cygnus.com> + * recog.c (check_asm_operands): Treat indeterminate operand ok + results as success. Try harder to resolve a matching constraint. + * stmt.c (expand_asm_operands): Recognize when an output operand's + constraint does not allow memory. Treat indeterminate operand ok + results as failure. Try harder to resolve a matching constraint. - * tree.h (BINFO_OFFSET_ZEROP): Use integer_zerop. +Mon Feb 1 15:00:02 1999 Ken Raeburn <raeburn@cygnus.com> -Sun Apr 12 20:55:32 1998 Catherine Moore <clm@cygnus.com> + Use varrays for constant-equivalence data: - * invoke.texi (ld options) Include memset requirements - for options -nodstdlib and -nodefaultlibs. + * varray.h (struct const_equiv_data): New type. + (union varray_data_tag): New element const_equiv. + (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros. + (VARRAY_SIZE): New macro, returns number of elements. + * integrate.h: Include varray.h. + (struct inline_remap): Replace const_equiv_map, const_age_map and + const_equiv_map_size with a const_equiv_varray element. + (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if + needed. + (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields + simultaneously, growing the varray if needed. -1998-04-12 Paul Eggert <eggert@twinsun.com> + * integrate.c (global_const_equiv_map, + global_const_equiv_map_size): Deleted, replaced by.... + (global_const_equiv_varray): New variable. + (expand_inline_function): References changed. + * integrate.h: Update declarations. - This change is from an idea suggested by Arthur David Olson. + * integrate.c (process_reg_parm, expand_inline_function, + copy_rtx_and_substitute, try_constants, subst_constants, + mark_stores): Use varray allocation and accessor macros, new + integrate.h macros, and global_const_equiv_varray. Don't + conditionalize non-NULL stores on array size; instead, expand the + array as needed. + * unroll.c (unroll_loop): Likewise. - * c-common.c (decl_attributes, record_function_format, - check_format_info, init_function_format_info): - Add support for strftime format checking. - (enum format_type): New type. - (record_function_format): Now static, and takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change `pedwarn' to `warning', since these warnings do not necessarily - mean the program does not conform to the C Standard, as the code - need not be executed. + * unroll.c (unroll_loop): Initialize const_equiv_varray element to + zero. After allocating varray, always exit through bottom of + function, where it can be deallocated if needed. Don't explicitly + reallocate const_equiv_map storage; instead, just ensure the + varray has been initialized, and update the global reference. - * c-tree.h (record_function_format): Remove decl; no longer extern. +Mon Feb 1 09:40:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * extend.texi: Add documentation for strftime format checking. + * system.h (inline, const): Handle these for stage2 (and later) gcc. -Sun Apr 12 20:23:03 1998 Jeffrey A Law (law@cygnus.com) + * dwarf2out.c (inline): Don't define. - * mips/ecoffl.h: Do not include mips.h. - * mips/elf.h: Likewise. + * dwarfout.c (inline): Likewise. - * configure.in (mips-*-ecoff): Do not mention mips/mips.h in tm_files. - * mips/ecoff.h: Include "mips/mips.h". +Sun Jan 31 22:04:37 1999 Richard Henderson <rth@cygnus.com> -Sat Apr 11 22:42:54 PDT 1998 Jeff Law (law@cygnus.com) + * loop.c (recombine_givs): Dump recombination and derivation data. - * version.c: Bump for snapshot. +Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> -Sat Apr 11 01:24:28 1998 Jeffrey A Law (law@cygnus.com) + * flags.h: Declare flag_no_ident. + * toplev.c: Define flag_no_ident. Process -f(no-)ident here. + * c-tree.h: Don't declare flag_no_ident. + * c-decl.c: Don't define flag_no_ident. Don't process + -f(no-)ident switches here. - * cse.c (count_reg_usage): Correctly handle REG_NONNEG notes. - (delete_trivially_dead_insns): Renamed from delete_dead_from_cse. - * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns instead of delete_dead_from_cse. Also call delete_trivially_dead_insns - between loop optimization passes. - * rtl.h: Updated appropriately. + * config/elfos.h (ASM_FILE_END): Output final .ident directive + only if !flag_no_ident. + * config/ptx4.h: Likewise. + * config/svr4.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i860/fx2800.h: Likewise. + * config/mips/gnu.h: Likewise. + * config/i386/osfrose.h: Likewise. -Fri Apr 10 22:28:32 1998 Jeffrey A Law (law@cygnus.com) + * gcc.c (C specs): Map -Qn to -fno-ident. + * objc/lang-specs.h: Likewise. - Reinstall this patch from Jason. - * function.c (push_function_context_to): Don't call init_emit. +Mon Feb 1 10:52:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Fri Apr 10 13:40:20 1998 Nick Clifton <nickc@cygnus.com> + * configure.in: Don't remove loop.o and unroll.o when + enable-haifa is selected. + * configure: Rebuilt. - * rtl.c (read_skip_spaces): Prevent infinite loops upon - encountering unterminated comments. +Sun Jan 31 13:22:02 1999 John Wehle (john@feith.com) -Fri Apr 10 10:43:41 1998 Jeffrey A Law (law@cygnus.com) + * i386.md (movsicc, movhicc, movsfcc, movdfcc, + movxfcc, movdicc): Delete unconstrained alternatives. + * i386.c (output_fp_conditional_move, + output_int_conditional_move): Delete unused case. - * emit-rtl.c (operand_subword): Properly handle CONST_INTs for - 64x32 cross builds. +Sun Jan 31 01:15:04 1999 Jeff Law (law@cygnus.com) - * configure.in: Handle --with-fast-fixincludes. - (fixincludes): If --with-fast-fixincludes, then use a different - fixincludes program by default. - * Makefile.in (fixinc.sh): New rule. + * version.c: Bump for snapshot. -Fri Apr 10 00:36:31 1998 H.J. Lu (hjl@gnu.org) +Sun Jan 31 00:52:37 1999 Richard Henderson <rth@cygnus.com> - * i386.md (movqi+1): Handle invalid QI register. - (movsf_push-1): Likewise. + * alpha.md (mov patterns): Emit the assembler aliases mov and fmov + instead of bis and cpys. Combine alternatives where possible. -Thu Apr 9 16:53:59 1998 Nick Clifton <nickc@cygnus.com> +Sat Jan 30 23:14:13 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * config/m32r/m32r.c: call_address_operand(): Only accept symbolic - addresses. - symbolic_memort_operand(), call32_operand(), int8_operand(), - int16_operand(), uint24_operand(), reg_or_int8_operand(): Removed. - Not used. - uint16_operand(): Made static. + * gcov.c (fnotice): Add missing FILE* parameter. + (function_summary): Fix format specifiers in calls to `fnotice'. + (output_data): Likewise. -Thu Apr 9 01:43:04 1998 Jeffrey A Law (law@cygnus.com) + * toplev.c (fnotice): Constify char* parameter. - * calls.c (expand_call): Fix typo. + * toplev.h (fnotice): Add prototype. + Wrap prototype with BUFSIZ to protect FILE* usage. -Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) +Sun Jan 31 15:33:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * c-lex.c (finput): New global. - (init_parse): Always included. Handle !USE_CPPLIB using - code originally in compile_file. - (finish_parse): Update for CPPLIB. - * toplev.c (init_parse, finish_parse): Declare. - (finput): Delete variable. Now in front-ends. - (compile_file): Remove code which is now handled by init_parse - which is unconditionally called. Similarly for finish_parse. + * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs. -Wed Apr 8 23:13:50 1998 Gavin Koch <gavin@cygnus.com> +Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com) - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Add. + * combine.c (distribute_notes): Handle REG_EH_REGION notes. -Wed Apr 8 18:21:30 1998 Richard Henderson <rth@cygnus.com> + * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to + function definition. + (aliases_everything_p, write_dependence_p):Likewise. - * alpha/crtbegin.asm, alpha/crtend.asm, alpha/t-crtb: New files. - * configure.in (alpha-*-linux*): Use them. + * install.texi: Fix merge lossages. -Fri Apr 3 17:02:13 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> + * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES + is defined. + * collect2.c (main): Likewise. + * cppmain.c (main): Likewise. + * gcc.c (main): Likewise. + * gcov.c (main): Likewise. + * protoize.c (main): Likewise. + * toplev.c (main): Likewise. - * 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. + * pa.md (parallel shift and shiftadd): Mark output of shift as an + earlyclobber. -Wed Apr 8 12:51:19 1998 Jeffrey A Law (law@cygnus.com) + * loop.c: Disable recent loop changes. Temporary as Joern + continues to fix problems. - * configure.in (v850): Use t-v850. - (ix86-wrs-vxworks): Recognize 786 just like other x86 configurations. +Sat Jan 30 03:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * protoize.c (creat, read, write): Do not declare. + * loop.c (strength_reduce): Size reg_map according to reg_iv_type. - * jump.c (mark_jump_label): Record REG_LABEL notes for insns which - refer to the CODE_LABEL before a dispatch table. +Fri Jan 29 18:26:07 1999 Dave Brolley <brolley@cygnus.com> - * invoke.texi: Add ARC options. + * emit-rtl.c (remove_insn): New function. + * rtl.h (remove_insn): Add prototype. + * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn. - * gcc.c (proces_command): Improve error message for -o with - either -c or -S. +Fri Jan 29 22:34:41 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * i386/x-cygwin32 (CLIB): Link in advapi32. + * loop.c (recombine_givs): Don't try to derive givs that have combined. - * alpha.h (ASM_IDENTIFY_GCC): Define to nothing. - (ASM_IDENTIFY_LANGUAGE): Likewise. +Fri Jan 29 15:00:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * i386.md (movqi recognizer): Don't perfom byte increment into - a NON_QI_REG_P. + * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__, + when declaring arguments and calling va_arg() to initialize them. - * configure.in (x86-dg-dgux): Run fixinc.dgux. + * collect2.c (notice): Likewise. - * i370.h: Fix typo in GEN_INT changes. + * loop.c (find_life_end): Use PROTO() macro in the prototype. - * bitmap.c (bitmap_element_allocate): Use "void" for arglist instead - of an empty arglist in prototype. +Fri Jan 29 14:36:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * Makefile.in: Remove bytecode crud that crept back in after the - gcc2 merge. + * collect2.c (error): Fix typo in declaration. -1998-04-08 Brendan Kehoe <brendan@cygnus.com> + * cpperror.c (cpp_message): Likewise. - * c-lex.h (is_class_name): Fix arg type to be tree, not void. - (make_pointer_declarator, reinit_parse_for_function): Fix typo. + * cpplib.c (cpp_warning): Likewise. -Wed Apr 8 06:16:45 1998 Richard Earnshaw (rearnsha@arm.com) + * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add + ATTRIBUTE_PRINTF_1. - * arm.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + * toplev.c (error): Fix typo in declaration. -Wed Apr 8 00:44:18 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> +Fri Jan 29 15:44:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * c-lex.c (is_class_name): Delete declaration. - (whitespace_cr): Make static and add prototype. - * c-lex.h (make_pointer_declarator, reinit_parse_for_function, - yylex, get_directive_line): Turn declarations into prototypes. - (position_after_whitespace, check_newline, yyerror,, is_class_name, - forget_protocol_qualifiers, remember_protocol_qualifiers): Add - prototypes. - * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add - prototypes. - * gencodes.c (gen_insn): Add prototype. - * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split, - gen_peephole): Add prototypes. - * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add - prototypes. - * gengenrtl.c (type_from_format, accessor_from_format, special_rtx, - special_format, find_formats, gendecl, genmacro, gendef, genlegend, - genheader, gencode): Add prototypes. - * genopinit.c (gen_insn): Add prototype. - * genoutput.c (output_prologue, output_epilogue, scan_operands, - process_template, validate_insn_alternatives, gen_insn, gen_peephole, - gen_expand, gen_split, n_occurrences): Add prototypes. - * genpeep.c (gen_peephole): Add prototype. - * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop, - reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg, - labels_in_range_p, count_loop_regs_set, note_addr_stored, - loop_reg_used_before_p, scan_loop, replace_call_address, - skip_consec_insns, libcall_benefit, ignore_some_movables, - force_movables, combine_movables, rtx_equal_for_loop_p, move_movables, - strength_reduce, valid_initial_value_p, find_mem_givs, record_biv, - check_final_value, record_giv, update_giv_derive, basic_induction_var, - simplify_giv_expr, general_induction_var, consec_sets_giv, - check_dbra_loop, express_from, combine_givs_p, combine_givs, - product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1, - last_use_this_basic_block, record_initial, update_reg_last_use, - iteration_info, analyze_loop_iterations, insert_bct, - instrument_loop_bct, indirect_jump_in_function_p): Turn declarations - into prototypes. + * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning + forward from cont dominator. -Tue Apr 7 21:48:52 1998 Jeffrey A Law (law@cygnus.com) +Fri Jan 29 07:10:27 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + * cccp.c (eprint_string): Constify a char*. + (notice): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (vnotice): Constify a char*. + (error): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (verror): Constify a char*. + (warning): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (vwarning): Constify a char*. + (error_with_line): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_2. + (verror_with_line): Constify a char*. + (vwarning_with_line): Likewise. + (warning_with_line): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_2. + (pedwarn): Constify a char*. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_1. + (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2. + (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4. + Also correct typo in parameter name declaration. + (make_assertion): Constify a char*. + (quote_string_for_make): Likewise. + (deps_output): Likewise. + (fatal): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_1. Use ATTRIBUTE_NORETURN not an explicit + "__attribute__ ((noreturn))". + (fancy_abort): Likewise for ATTRIBUTE_NORETURN. + (pfatal_with_name): Likewise. + (pipe_closed): Likewise. + (memory_full): Likewise. -1998-04-07 Ken Raeburn <raeburn@cygnus.com> +Fri Jan 29 00:14:55 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * config/mips/mips.c (siginfo): Deleted. - (override_options): Don't install SIGINFO signal handler. + * loop.c (strength_reduce): Grow set_in_loop / n_times_set / + may_not_optimize to proper size when converting biv increments + into givs. + If necessary, reallocate reg_iv_type / reg_iv_info before calling + recombine_givs. -Tue Apr 7 11:58:04 1998 Jim Wilson <wilson@cygnus.com> +Thu Jan 28 23:24:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - * loop.c (check_dbra_loop): When normalize comparison_val, add check - to verify it is non-negative. + * loop.c (recombine_givs): New parameter unroll_p. If set, don't + generate complex adds. Changed caller. + Don't generate adds that cost more than the original one. + (strength_reduce): Warning fixes. -Tue Apr 7 02:01:47 1998 Richard Henderson <rth@cygnus.com> +Thu Jan 28 09:41:11 1999 Jeffrey A Law (law@cygnus.com) - * alpha.c (alpha_expand_block_move): Correctly collect block offsets. - (alpha_expand_block_clear): Likewise. + * configure.in (hppa1.0-hp-hpux10*): Use t-pa. + * configure: Rebuilt. -Mon Apr 6 23:36:01 1998 Richard Henderson <rth@cygnus.com> +Wed Jan 27 23:39:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * rtl.h (insn_first_p, no_jumps_between_p): Declare. + * rtlanal.c (insn_first_p, no_jumps_between_p): New function. + * loop.h (varray.h): Include. + (struct induction): Change combined_with to unsigned. + New members derived, ix and last_use. + (reg_iv_type, reg_iv_info): Now varray_type. All references changed. + (REG_IV_TYPE, REG_IV_INFO): Define. + (first_increment_giv, last_increment_giv): Declare. + * loop.c (loop_number_loop_cont): New static variable. + (loop_number_cont_dominator): Likewise. + (reg_iv_type, reg_iv_info): Now varray_type. + (first_increment_giv, last_increment_giv): New variables. + (compute_luids, verify_dominator, find_life_end): New functions. + (cmp_recombine_givs_stats, recombine_givs): Likewise. + (loop_optimize): Allocate loop_number_loop_cont and + loop_number_cont_dominator. Use compute_luids. + (find_and_verify_loops): Initialize loop_number_loop_cont and + loop_number_cont_dominator. + (strength_reduce): Try to find bivs that can be expressed as givs + of another biv, and to convert biv increments into givs. + Call recombine_givs. Handle derived givs. + (record_biv): New argument location. All callers changed. + (record_giv): Initialize derived and last_use fields. + (basic_induction_var): New argument location. All callers changed. + (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv. + Increment combined_with instead of setting to 1. + * unroll.c (derived_regs): New static variable. + (unroll_loop): Initialize it. + Allocate local_regno according to max_reg_num. + (copy_loop_body): Cope with derived givs. + (find_splittable_givs): Check for Givs made from biv increments. + Set derived_regs for givs. + * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h . + +Wed Jan 27 19:31:36 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * function.c (purge_addressof_1): Handle case when a register + has been used in a wider mode. + +1999-01-27 Bruce Korb <autogen@linuxbox.com> + + * fixinc/fixincl.c, fixinc/server.[ch]: + Removed the last of the capitalized variable and proc names. + + * fixinc/server.c: Removed the process open code. + * fixinc/procopen.c: New file containing the proc open code. + * fixinc/inclhack.tpl: Added code to bypass a readability test + when a file is not present. A problem on some systems. + * fixinc/inclhack.sh, fixinc/fixincl.sh: Regenerated. + +Wed Jan 27 11:58:18 1999 Dave Brolley <brolley@cygnus.com> + + * cpplib.h (cpp_notice): Add prototype. + +Wed Jan 27 02:20:48 1999 Jeffrey A Law (law@cygnus.com) + + * Merge gcc2 snapshot 19980929. + + * cccp.c (PRINTF_PROTO): Remove. + (PRINTF_PROTO_{1,2,3,4}: Likewise. + * cexp.y: Likewise. + * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}. + + * fix-header.c (cpp_file_lin_for_message): Delete. In libcpp. + (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise. + (cpp_fatal, cpp-Pfatal_with_name): Likewise. + + * gen-protos.c (hashf): Delete in cpphash.o. + * gen-protos.c (hashf): Delete in cpphash.o. + + * expr.c: Do not merge SAVE_STACKAREA_MODE changes. + * expmed.c: Likewise. + * rs6000.md: Likewise. + + * rs6000.c, rs6000.md: Do not merge formatting changes yet. + +Wed Jan 27 01:13:42 1999 Richard Henderson <rth@cygnus.com> + + * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX. + * rs6000.md (movsi, movdi): Likewise. + +Tue Jan 26 13:31:38 1999 Jim Wilson <wilson@cygnus.com> + + * function.c (expand_function_end): Pass arg_pointer_save_area to + validize_mem before using it. Emit code into a sequence. + +Tue Jan 26 13:41:38 1999 David Edelsohn <edelsohn@gnu.org> + + * rs6000.md (doz + set cr and or + set cr patterns): Add missing + '#' to split patterns. Correct indentation of some new patterns. + +1999-01-26 Zack Weinberg <zack@midnite.ec.rhno.columbia.edu> + + * cppfiles.c (safe_read): Deleted. + (read_and_prescan): New function, replaces safe_read, converts + and/or warns about trigraphs, silently converts odd line + terminators (\r, \n\r, \r\n). Warns about no newline at EOF. + (finclude): Use read_and_prescan; turn off nonblocking mode on + the input descriptor; remove file-size-examination and + no-newline-at-EOF gunk which is longer necessary; be more + careful about checking that we've been handed a legitimate + file to read (only real files, pipes, and ttys are acceptable). + * cpplib.h (cpp_options): Rename no_trigraphs flag to + `trigraphs' and invert its sense. + (trigraph_table): Declare. + (cpp_warning_with_line): Prototype. + * cpplib.c: Remove all references to trigraph_pcp. Define + trigraph_table; initialize it in initialize_char_syntax. Open + files in nonblocking mode. s/no_trigraphs/trigraphs/ + throughout, and invert sense. Put cpp_warning_with_line back + in and export it. + +Tue Jan 26 23:21:49 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (COUNTER_REGS): New register class. + * config/c4x/c4x.md (*rptb_init): Change constraints. + (rptb_end): Emit alternate looping instructions if + RC register not allocated for loop counter. + (decrement_and_branch_on_count): Allow other registers + for loop counter. + +1999-01-25 Zack Weinberg <zack@rabi.columbia.edu> + + * cppexp.c (struct arglist): Removed. + (parse_number): Use HOST_WIDE_INT for the accumulator. + Allow two `l' suffixes unless C89. Clean up. Make static. + (parse_charconst): New function broken out of cpp_lex. + Code cleaned up drastically. Don't use a token_buffer. + (token_buffer): Removed. + (cpp_lex): Don't call parse_number on a constant string. + Use parse_charconst. + (cpp_parse_expr): Properly handle an ERROR op returned by + cpp_lex. + +1999-01-25 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpplib.c: Don't include signal.h, sys/times.h, or + sys/resource.h. Don't declare localtime. + (macroexpand): Handle special symbols here. + (push_macro_expansion): Chop off the trailing '@ ' if possible + here. + (cpp_get_token): Don't do either of the above two things here. + Move `string' label just after case '"' so that wide strings + don't crash the preprocessor. + +Sun Jan 24 20:13:45 1999 David Edelsohn <edelsohn@gnu.org> + + * rs6000.md (left shift + set cr patterns): Add missing '#' to + split patterns. + (move register + set cr pattern): Likewise. + (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch, + inadvertently deleted. + +Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com) + + * stmt.c (stmt_loop_nest_empty): New function. + * tree.h (stmt_loop_nest_empty): Declare it. + * rtl.def (CALL_PLACEHOLDER): New rtx code. + +Sun Jan 24 21:24:43 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info): + New functions. + (c4x_check_legit_addr): Remove USE and PLUS, allow + LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases. + (c4x_legitimize_address): Penalize SYMBOL_REF, LABEL_REF, and + CONST cases. Add LO_SUM. + (c4x_print_operand): Modified 'C' and 'R' cases for calls. + Added 'U' case. Remove dependence on SYMBOL_REF_FLAG. + (c4x_print_operand_address): Handle LO_SUM. + (c4x_scan_for_ldp): Delete. Hooray! + (c4x_process_after_reload): Remove call to c4x_scan_for_ldp. + Split all insns. + (c4x_immed_int_constant): Renamed from c4x_int_constant. All callers + changed. + (c4x_immed_float_constant): Renamed from c4x_float_constant. All + callers changed. + (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, + and CONST. + (c4x_U_constraint, symbolic_operand): New functions. + (src_operand): Allow 'I' constants in HImode. Allow LO_SUM, + disable SYMBOL_REF, LABEL_REF, and CONST. + (lsrc_operand, tsrc_operand): Call src_operand instead of + general_operand. + (c4x_operand_subword): Update comments. + + * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro. + (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST, + plus HIGH and LO_SUM for the C40. + (ENCODE_SECTION_INFO): Define macro. + (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New + prototypes. + (PREDICATE_CODES): Add symbolic_operand. - * tree.h (sizetype_tab): Fix previous change for K&R. + * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call + c4x_emit_move_sequence. + (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL + to avoid symbol references. + (all patterns with g constraint): Replace 'g' constraint with 'rIm'. + (set_high): Renamed from set_high_use. + (set_lo_sum): Renamed from set_ior_lo_use. + (all call patterns): Make MEM explicit in call address operands. + Modified output templates to use 'U' modifier. -Mon Apr 6 22:23:29 PDT 1998 Jeff Law (law@cygnus.com) +Sun Jan 24 01:15:05 1999 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Mon Apr 6 23:16:10 1998 Richard Earnshaw (rearnsha@arm.com) +Sat Jan 23 22:34:57 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. + * final.c (bb_str): Qualify a char* with the keyword `const'. + (add_bb_string, final_scan_insn, output_asm_insn): Likewise. -Mon Apr 6 21:49:57 1998 Bob Manson <manson@charmed.cygnus.com> + * fix-header.c (read_scan_file): Likewise. - * gcc.c: Add linker spec. - (link_command_spec): Use %(linker) instead of ld. - (main): If collect2 is requested as the linker, see if it exists; - if not, use ld instead. + * genoutput.c (output_epilogue, process_template): Likewise. - * Makefile.in (USE_COLLECT2): It's named collect2 now, not ld. - (ld:) Deleted. - (install-collect2): Install as collect2, not ld. + * local-alloc.c (requires_inout, block_alloc): Likewise. - * configure.in(will_use_collect2): It's named collect2 now. + * output.h (output_asm_insn, assemble_string): Likewise. - * collect2: Remove checks to see if we were invoked recursively. - (collect_execute): Use _spawnvp under cygwin32. + * recog.c (recog_constraints, check_asm_operands, + decode_asm_operands, extract_insn, preprocess_constraints, + constrain_operands): Likewise. -Mon Apr 6 17:23:41 1998 Jim Wilson <wilson@cygnus.com> + * recog.h (operand_alternative, recog_constraints, insn_template, + insn_outfun, insn_operand_constraint, insn_name): Likewise. - * haifa-sched.c (build_control_flow): Set unreachable for block whose - only predecessor is itself. + * regclass.c (record_reg_classes, scan_one_insn): Likewise. -Mon Apr 6 16:08:04 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * regmove.c (find_matches): Likewise. - * c-parse.in: Include system.h, and remove stuff now made redundant. - * cccp.c: Likewise. - * cexp.y: Likewise. - * protoize.c: Likewise. Properly check for cpp stringification. + * reload.c (alternative_allows_memconst): Likewise. - * Makefile.in (c-parse.o, cccp.o, cexp.o, protoize.o, unprotoize.o): - Depend on system.h. + * reload1.c (constraint_accepts_reg_p, + reload_cse_simplify_operands): Likewise. - * objc/Make-lang.in (objc-parse.o): Likewise. + * rtl.h (decode_asm_operands): Likewise. -Mon Apr 6 14:59:58 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * scan.h (fn_decl): Likewise. - * gansidecl.h: Check if compiler supports __attribute__. Provide - definitions for ATTRIBUTE_UNUSED and ATTRIBUTE_PRINTF using - __attribute__ when its available. Also provide definitions for - ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2 and ATTRIBUTE_PRINTF_3 in - terms of ATTRIBUTE_PRINTF. + * varasm.c (assemble_string): Likewise. - * genoutput.c (process_template): Use ATTRIBUTE_UNUSED in place - of __attribute__. +Sat Jan 23 01:37:36 1999 Jeffrey A Law (law@cygnus.com) -Mon Apr 6 07:17:52 1998 Catherine Moore <clm@cygnus.com> + * configure.in (gcc_tooldir): Handle case where exec_prefix has + not been explicitly set. + * configure: Rebuilt. - * combine.c (can_combine_p): Include successor in volatile test. + * fold-const.c (lshift_double): Mark 'prec' arguments as possibly + unused. -Mon Apr 6 14:16:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * bitmap.h (bitmap_head_def): Make indx field unsigned. - * sh.h (CASE_VECTOR_SHORTEN_MODE): Fix logic when to set - offset_unsigned. + * configure.in (gcc_tooldir): When not making a relative gcc_tooldir, + use $exec_prefix/$target_alias for gcc_tooldir. + * configure: Rebuilt. -Mon Apr 6 02:03:29 1998 Jeffrey A Law (law@cygnus.com) +Fri Jan 22 11:48:56 1999 Richard Henderson <rth@cygnus.com> - * objc/objc-act.c (encode_aggregate_within): Avoid GNU extensions - in prototype and definition. + * cppp.c (xrealloc): Fix typo last change. + * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise. + * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise. + * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. -Mon Apr 6 00:48:56 PDT 1998 Jeff Law (law@cygnus.com) +1999-01-22 Michael Meissner <meissner@cygnus.com> - * version.c: Bump for snapshot. + * rs6000.h (CR0_REGNO_P): New macro to test if cr0. + (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0. + (PREDICATE_CODES): Add cc_reg_not_cr0_operand. + (cc_reg_not_cr0_operand): Add declaration. -Mon Apr 6 00:08:50 1998 Richard Henderson <rth@cygnus.com> + * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a + pseudo register, or a control register that is not CR0. - * alpha.c (alpha_expand_block_clear): Add missing offset arg to - alpha_expand_unaligned_store_words. + * rs6000.md (all combiner patterns building . instructions): For + all `.' instructions that do something and set cr0, add an + alternative that does the operation, and then sets a different + flag, in order to avoid using the costly mcrf instruction and also + allow cr0 to be clobbered in asm statements. Also fix a few + patterns that used the wrong register. -Sun Apr 5 21:31:24 1998 John Wehle (john@feith.com) + * rs6000.h (rs6000_cpu_select): Make string, names be const char *. + (rs6000_debug_name): Make const char *, not char *. - * i386.md (movsf_push, movsf_mem): Remove. - (movsf_push): Rename from movsf_push_nomove and move in front of - movsf. Use nonmemory_operand predicate and don't bother checking - TARGET_MOVE. - (movsf_push_memory): New pattern. - (movsf): Don't bother checking for push_operand. If TARGET_MOVE and - both operands refer to memory then force operand[1] into a register. - (movsf_normal): Change to unnamed pattern. - Likewise for movdf, movxf, and friends. + * sysv4.h (rs6000_{abi,sdata}_name): Make const char *. -Sun Apr 5 18:45:51 PDT 1998 Jeff Law (law@cygnus.com) + * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *. + (rs6000_select): Use const char * in casts. - * version.c: Bump for snapshot. +Fri Jan 22 07:43:01 1999 Jeffrey A Law (law@cygnus.com) -Sun Apr 5 16:31:10 1998 Richard Henderson <rth@cygnus.com> + * Makefile.in (gcc_tooldir): Move before first reference. + Let autoconf substitute in a value. + * configure.in (gcc_tooldir): Only use a relative path to the + tool directory if $exec_prefix == $prefix. + * configure: Rebuilt. - * configure.in (alpha-dec-osf*): Match osf1.3 correctly. + * Makefile.in (tooldir): Replace with gcc_tooldir. -Sun Apr 5 16:53:37 1998 Don Bowman <don@pixsci.com> +Thu Jan 21 23:21:57 1999 Jeffrey A Law (law@cygnus.com) - * configure.in (mips-wrs-vxworks): New target. + * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indentation. + (ashldi3 expander): Similarly. Update comments. + (ashrdi_const, lshrdi_const): Fix indentation. + (ashrdi3, lshrdi3): Fix indentation. Update comments. -Sat Apr 4 23:34:32 PST 1998 Jeff Law (law@cygnus.com) +Thu Jan 21 21:53:36 1999 Richard Henderson <rth@cygnus.com> - * expmed.c (synth_mult): The value -1, has no zeros, so it can - never have the form ...011. + * emit-rtl.c (try_split): Don't try to split non-instructions. - * version.c: Bump for snapshot. +Thu Jan 21 23:47:30 1999 Andrew MacLeod <amacleod@cygnus.com> -Sat Apr 4 20:16:46 1998 Richard Henderson <rth@cygnus.com> + * expr.c (emit_push_insn): Fix dumb typo. - * i386.c (asm_output_function_prefix, load_pic_register): - Use ASM_GENERATE_INTERNAL_LABEL properly. - (output_pic_addr_const): Recognize %X to supress any PIC sym suffix. - (print_operand): Ignore it. - (load_pic_register): Use it for the got load call. - * i386.md (prologue_set_got, prologue_get_pc): Likewise. - (prologue_get_pc_and_set_got): Likewise. - * i386.h: Update print_operand docs. +Thu Jan 21 20:24:02 1999 Richard Henderson <rth@cygnus.com> -Sat Apr 4 19:08:37 1998 Richard Henderson <rth@cygnus.com> + * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept + transformations that we have performed earlier. + * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. - * i386.md (ffssi, ffshi): Rewrite as define_expands. - (ffssi_1, ffshi_1): New (unspec [] 5) support patterns. - * i386.c (notice_update_cc): Recognize unspec 5. + * alpha.md (prologue_stack_probe_loop): Don't do our own label + handling, call gen_label_rtx instead. -Sat Apr 4 18:07:16 1998 David Mosberger-Tang (davidm@mostang.com) +Thu Jan 21 17:45:18 1999 Richard Henderson <rth@cygnus.com> - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncsfdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - (fix_truncdfdi2): Likewise. + * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'. -Sat Apr 4 17:42:05 1998 Richard Henderson <rth@cygnus.com> + * cccp.c (xrealloc): Call malloc given a NULL old pointer. + * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise. + * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. + * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise. + * genrecog.c, mips-tfile.c, protoize.c: Likewise. - * tree.h (sizetype_tab[2], sbitsizetype, ubitsizetype): Merge all - of these into a single struct, with additional [us]sizetype entries. - * stor-layout.c (set_sizetype): Initialize [us]sizetype. - * fold-const.c (size_int_wide): Don't rely on sizetype_tab being - an array. +Thu Jan 21 19:44:55 1999 Michael Meissner <meissner@cygnus.com> -Sat Apr 4 17:04:41 1998 Richard Henderson <rth@cygnus.com> + * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If + --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress + adding -Wl,-bbigtoc to BOOT_LDFLAGS. + * configure: Regenerate. - * configure.in (alpha-*-linux-*): Undo tm_file changes from gcc2 merge. + * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS. -Sat Apr 4 13:50:01 1998 Richard Henderson <rth@cygnus.com> +Thu Jan 21 15:48:03 1999 Dave Brolley <brolley@cygnus.com> - * haifa-sched.c (split_block_insns): Don't supress insn splitting - on subsequent passes. + * cppexp.c (cpp_lex): Allocate token_buffer dynamically. - * alpha.c (hard_fp_register_operand): New function. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (extendsidi2): Kill bogus f<-f cvtql+cvtlq case. Add an - f<-m case and accompanying define_split. - (trapb): Use a unique unspec_volatile number. +Thu Jan 21 14:18:04 1999 Andrew MacLeod <amacleod@cygnus.com> -Sat Apr 4 13:32:08 1998 Richard Henderson <rth@cygnus.com> + * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use + move_by_pieces. + (MOVE_MAX_PIECES): Define maximum number of bytes to move at once. + (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults. + (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults. + (move_by_pieces): Use new macros. + (emit_block_move): Use new macros. + (clear_by_pieces): Use new macros. + (clear_storage): Use new macros. + (emit_push_insn): Use new macros. + (expand_expr): Use new macros. + * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): + Define. + (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define. + (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE. + (MOVE_MAX_PIECES): Move 8 bytes on SH4. + * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT, + USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, + USE_STORE_PRE_DECREMENT): Describe new macros. - * configure.in (alpha-*-linux-gnu*): Undo Feb 3 change brought in - from gcc2 merge. +Thu Jan 21 14:13:31 1999 Vladimir N. Makarov <vmakarov@cygnus.com> -Sat Apr 4 10:23:41 1998 Jeffrey A Law (law@cygnus.com) + * varasm.c (output_constant_pool): Use floor_log2 instead of + exact_log2 for ASM_OUTPUT_ALIGN. - * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12 - for details. + * stor-layout.c (layout_type): Do machine-dependent extra alignment. - * haifa-sched.c: Mirror recent changes from gcc2. + * emit-rtl.c (operand_subword): Handle case when a subword outside + the operand. -Fri Apr 3 00:17:01 1998 Jeffrey A Law (law@cygnus.com) + * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of + the macros. - * Makefile.in (insn*.o): Depend on system.h. +Thu Jan 21 01:59:30 1999 Richard Henderson <rth@cygnus.com> - * pa.c (output_global_address): Initialize base. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Initialize index. + * cse.c (fold_rtx): Revert 29 Dec change. + (cse_insn): Revert 12 Jan change. + * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX. + * regclass.c (reg_scan_mark_refs): Revert 29 Dec change. + * rtl.def: Likewise. + * rtl.h (CONSTANT_P): Likewise. -1998-04-03 Mike Stump <mrs@wrs.com> + * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX + to memory. + * recog.c (immediate_operand): Accept CONSTANT_P_RTX. + * alpha.c (input_operand): Likewise. + * c4x.c (const_operand): Likewise. - * gthr.h: Support systems that don't have weak, but have threads. - * configure.in (*wrs-vxworks*): Use VxWorks threads by default. - * gthr-vxworks.h: New file. - * objc/thr-vxworks.h: Dummy file from thr-single.c for now. + * explow.c (allocate_dynamic_stack_space): Use register_operand + instead of arith_operand, which does not exist. -Thu Apr 2 18:00:52 1998 Jim Wilson <wilson@cygnus.com> + * 1750a.h: Fix comment closure. + * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change. + * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch. + * arm.h (TARGET_SWITCHES): Fix typo. + * i370.md (anon mult and div patterns): Fix set mode mismatch. + * i860.c (output_delayed_branch): Fix operands to constrain_operands. + (output_delay_insn): Likewise. + * m88k.md (anon rotate insns): Fix set mode mismatch. + (anon BLKmode moves): Commonize and fix set mode mismatches. + * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch. + * romp.md (movdf): Fix typo. - * i386.md (movqi+1): Change alternative 1 from *r/r to *r/*rn. +Thu Jan 21 00:29:35 1999 Nathan Sidwell <nathan@acm.org> -1998-04-02 Vladimir N. Makarov <vmakarov@cygnus.com> + * Makefile.in (install-common): Remove extraneous chmod for gcov + install. - * ginclude/va-i960.h (va_end): Change void * to void. +Wed Jan 20 18:15:08 1999 Dave Brolley <brolley@cygnus.com> -Thu Apr 2 13:51:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * function.c (assign_parms): Save and restore setting of + TREE_USED (parm). - * Makefile.in (choose-temp.o): Depend on system.h. +Wed Jan 20 12:51:42 1999 Mark Mitchell <mark@markmitchell.com> - * choose-temp.c: Include system.h when IN_GCC. + * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout. + Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate. -Thu Apr 2 02:37:07 1998 Joern Rennecke (amylaar@cygnus.co.uk) - Richard Henderson <rth@cygnus.com> +Tue Jan 19 21:20:52 1999 Richard Henderson <rth@cygnus.com> - * reload.c (find_reloads_address): Try LEGITIMIZE_RELOAD_ADDRESS. - (move_replacements): New function. - * reload.h: Prototype it. + * recog.c (pop_operand): New function. + * recog.h (pop_operand): Declare it. + * genrecog.c (preds): Define it. - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): New definition. + * expr.c (do_jump_for_compare): Handle conditional branch expanders + emitting multiple jump instructions. + * jump.c (condjump_label): New function. + * rtl.h (condjump_label): Declare it. -Thu Apr 2 01:01:34 1998 Richard Henderson <rth@cygnus.com> +Tue Jan 19 21:08:20 1999 Richard Henderson <rth@cygnus.com> - * configure (alpha-*-linuxecoff, alpha-*-linux-gnulibc1): - Run fixincludes. + * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit + clobber during or after reload. - * emit-rtl.c (gen_lowpart_common): Skip count by HARD_REGNO_NREGS. - (gen_highpart): Likewise. - * final.c (alter_subreg): Allow the target to hook by-mode subreg - hard register number changes. +Tue Jan 19 16:56:03 1999 Richard Henderson <rth@cygnus.com> -Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com) + * genoutput.c (name_for_index): New function. + (scan_operands, validate_insn_alternatives): Use it. + * genrecog.c (insn_name_ptr_size): New variable. + (make_insn_sequence): Fill in insn_name_ptr. + (merge_trees): Use it. - * fold-const.c optimze_bit_field_compare): Initialize rnbitpos, - rnbitsize, rnmode and rinner. - (make_range): Initialize type. - (fold): Initialize arg0, arg1 and varop. +Tue Jan 19 16:37:36 1999 Richard Henderson <rth@cygnus.com> - * function.c (instantiate_virtual_regs_1): Initialize offset, regnoi - and regnor. - (expand_function_start): Initialize last_ptr. + * i386/isc.h (TARGET_DEFAULT): Define symbolicly. + * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise. + * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise. - * stor-layout.c (layout_record): Initialize desired_align. - (get_best_mode): Initialize unit. +Tue Jan 19 15:00:10 1999 Jeffrey A Law (law@cygnus.com) - * tree.c (copy_node): Initialize length. + * loop.c (NUM_STORES): Delete. + (loop_store_mems): Turn into an EXPR_LIST of MEMs. + (prescan_loop): Properly initialize loop_mems_idx. + (note_addr_stored): Simplify using list structure instead of + fixed sized array. + (invariant_p, check_dbra_loop, load_mems): Similarly. - * c-lex.c (yylex): Initialize traditional_type, ansi_type and type. + * flow.c (invalidate_from_autoinc): New function. + (mark_set_1, mark_used_regs): Use it. - * caller-save.c (insert_save_restore): Initialize pat, code and - numregs. + * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile. - * emit-rtl.c (push_to_sequence): Initialize top. - (push_topmost_sequence): Likewise. +1999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com> - * genattrtab.c (simplify_by_exploding): Initialize defval. + * invoke.texi (-mlong-double-64): New option description. - * profile.c (branch_prob): Initialize dest. +1999-01-19 Jim Wilson <wilson@cygnus.com> - * rtl.h (note_stores): Remove duplicate prototype. - (GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT. + * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to + LIBGCC2_LONG_DOUBLE_TYPE_SIZE. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE + if not defined. + * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics. + (CPP_SPECS): Add -mlong-double-64 support. + (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New. + (TARGET_SWITCHES): Add -mlong-double-64 support. + (LONG_DOUBLE_TYPE_SIZE): Likewise. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. + * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float. + (CPP_SPECS): Add -mlong-double-64 support. + * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64. + (MULTILIB_DIRNAMES): Add ld64. + * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise. - * cplus-dem.c (gnu_special): Don't get confused by .<digits> - strings that are not actually lengths. +Tue Jan 19 11:54:04 1999 Jason Merrill <jason@yorick.cygnus.com> - * genattrtab.c: Make generated file use system.h, instead of - including stdio.h, etc directly. - * genextract.c, genopinit.c, genoutput.c: Likewise. - * genpeep.c, genrecog.c: Likewise + * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by + invisible reference. - * genoutput.c (process_template): Mark operands in the generated - function as potentially unused if compiling with GNU CC. +Tue Jan 19 14:51:36 1999 David Edelsohn <edelsohn@gnu.org> - * i386/freebsd-elf.h (CPP_PREDEFINES): Update from FreeBSD folks. + * rs6000.c (offsettable_addr_operand): Delete. + (offsettable_mem_operand): New function. + * rs6000.h (PREDICATE_CODES): Reflect function change. + (RS6000_SAVE_TOC): Represent address as MEM. + * win-nt.h (RS6000_SAVE_TOC): Same. + * rs6000.md (indirect calls): Change offsettable address parameter + to offsettable memory parameter. - * pa.md (reload peepholes): Remove unused variable "mode". +Tue Jan 19 10:24:53 1999 Mark Mitchell <mark@markmitchell.com> -Wed Apr 1 17:06:19 1998 Nick Clifton <nickc@cygnus.com> + * rtl.h (rtx_def): Update documentation. + (MEM_IN_STRUCT_P): Likewise. + (MEM_SCALAR_P): New macro. + (MEM_COPY_ATTRIBUTES): Likewise. + (MEM_SET_IN_STRUCT_P): Likewise. + * rtl.texi (MEM_SCALAR_P): Document. + * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES. + (fixed_scalar_and_varying_struct_p): New function. Use + MEM_SCALAR_P rather than !MEM_IN_STRUCT_P. + (aliases_everything_p): Likewise. + (true_dependence): Use them. + (write_dependence_p): New function, containing code common to + anti_dependence and output_dependence. + (anti_dependence): Use it. + (output_dependence): Likewise. + * calls.c (save_fixed_argument_area): Don't clear + MEM_IN_STRUCT_P. + (expand_call): Use MEM_SET_IN_STRUCT_P. + (emit_library_call): Don't clear MEM_IN_STRUCT_P. + (emit_library_call_value): Likewise. + (store_one_arg): Use MEM_SET_IN_STRUCT_P. + * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES. + (make_extraction): Likewise. + (simplify_shift_const): Likewise. + (gen_lowpart_for_combine): Likewise. + * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES. + * emit-rtl.c (operand_subword): Likewise. + (change_address): Likewise. + * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES. + * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES. + (emit_group_store): Use MEM_SET_IN_STRUCT_P. + (copy_blkmode_from_reg): Likewise. + (store_field): Likewise. + (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P + heuristically. Use MEM_SET_IN_STRUCT_P. + (get_memory_rtx): Likewise. + * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES. + * function.c (assign_stack_temp): Clear MEM_SCALAR_P and + MEM_ALIAS_SET on newly returned MEMs. + (assign_temp): Use MEM_SET_IN_STRUCT_P. + (put_reg_into_stack): Likewise. + (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES. + (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P. + (assign_parms): Likewise. + (expand_function): Likewise. + * integrate.c (expand_inline_function): Likewise. + (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES. + * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P. + * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES. + * print-rtl.c (print_rtx): Print /f for frame_related. + * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES. + * reload1.c (reload): Copy MEM_SCALAR_P as well. + * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P. + (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES. + * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P. + (output_constant_def): Likewise. + * a29k.c (a29k_set_memflags_1): Take scalar_p. + Set MEM_SCALAR_P. + (a29k_set_memflags): Use it. + * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES. + * c4x.c (c4x_scan_for_ld): Likewise. + * h8300.c (fix_bit_operand): Likewise. + * m88k.c (legitimize_address): Likewise. + (block_move_loop): Likewise. + (block_move_no_loop): Likewise. + (block_move_sequence): Likewise. + (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. + * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise. + * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES. + * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. + * arm.h (arm_gen_load_multiple): Take scalar_p. + (arm_store_load_multiple): Likewise. + * arm.c (arm_gen_load_multiple): Likewise. + (arm_gen_store_multiple): Likewise. + (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P. + +Tue Jan 19 12:30:37 1999 Andrew MacLeod <amacleod@cygnus.com> + + * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all + calls within a libcall block to indicate no throws are possible. + * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for + libcall blocks. Don't add edges to exception handlers if we see + a REG_EH_REGION note with a value of 0. + (make_edges): Override active_eh_region vector if the call has a note + indicating the call does not throw. + +1999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com> + + * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}. + +Tue Jan 19 06:26:30 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cccp.o, cpplib.o): Depend on Makefile. + +Mon Jan 18 09:56:41 1999 Jason Merrill <jason@yorick.cygnus.com> + + * invoke.texi (C++ Dialect Options): Document -fno-rtti. + +1999-01-18 Vladimir N. Makarov <vmakarov@cygnus.com> + + * invoke.texi (-mcpu=740, -mcpu=750): New options. + (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 & + PPC750. + +1999-01-18 Michael Meissner <meissner@cygnus.com> + + * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines + supported with -mcpu=xxx. + (processor_type): Add PROCESSOR_PPC750. + (ADJUST_PRIORITY): Call rs6000_adjust_priority. + (RTX_COSTS): Supply costs for 750 multiply/divide operations. + (rs6000_adjust_priority): Add declaration. + + * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the + processor type as 750, not 603. Allow -mmultiple and -mstring on + little endian 750 systems. + (rs6000_adjust_priority): Stub for now. + (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle. + + * rs6000.md (function/cpu attributes): Add initial ppc750 support. + + * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if + little endian. + (CC1_SPEC): Pass -mstrict-align if little endian, and not + overridden. + (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs. + (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs. + + * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is + little endian. + + * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs. + +Mon Jan 18 12:03:08 1999 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.md (div_trap): Split div_trap_mips16 + from div_trap. + (div_trap_normal,div_trap_mips16): Correct the length attributes. + +Mon Jan 18 11:48:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cpplib.c (special_symbol): Qualify a char* with the `const' keyword. + Instead of writing to const char *buf directly, use a non-const + variable `wbuf' to allocate and write a string, then set buf = wbuf. + + * cppulp.c (user_label_prefix): Qualify a char* with the `const' + keyword. + + * dyn-string.c (dyn_string_append): Likewise. - * 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/lib1funcs.asm: Add interworking support. - * config/arm/lib1thumb.asm: Add super interworking support. - * config/arm/t-semi: Add interworking support. - * config/arm/t-thumb: Add interworking support. - * config/arm/README-interworking: New file. + * dyn-string.h (dyn_string_append): Likewise. -Wed Apr 1 14:38:10 1998 Jim Wilson <wilson@cygnus.com> + * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise. - * config/mips/iris6.h (MD_EXEC_PREFIX): Set to /usr/bin/. - (MD_STARTFILE_PREFIX): Unset. + * output.h (end_final, output_operand_lossage, asm_fprintf, + named_section, decode_reg_name, make_decl_rtl, user_label_prefix): + Likewise. -1998-04-01 Mark Mitchell <mmitchell@usa.net> + * profile.c (init_branch_prob): Likewise. + + * toplev.c (set_target_switch, vmessage, + v_message_with_file_and_line, v_message_with_decl, + v_error_with_file_and_line, v_error_with_decl, v_error_for_asm, + verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl, + v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl, + v_pedwarn_with_file_and_line, vsorry, v_really_sorry, + open_dump_file, dump_rtl, clean_dump_file, + print_version, print_single_switch, print_switch_values, + dump_base_name, debug_args, lang_independent_options, + user_label_prefix, documented_lang_options, target_switches, + target_options, print_time, pfatal_with_name, fatal_io_error, + fatal_insn, default_print_error_function, print_error_function, + report_error_function, error_with_file_and_line, error_with_decl, + error_for_asm, error, fatal, warning_with_file_and_line, + warning_with_decl, warning_for_asm, warning, pedwarn, + pedwarn_with_decl, pedwarn_with_file_and_line, sorry, + really_sorry, botch, output_quoted_string, output_file_directive, + open_dump_file, rest_of_decl_compilation, display_help, main): + Likewise. - * varasm.c (make_decl_rtl): Update the DECL_ASSEMBLER_NAME for a - entity in a local scope. + * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name, + fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line, + warning_with_file_and_line, error_with_file_and_line, sorry, + really_sorry, default_print_error_function, report_error_function, + rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl, + error_with_decl, error_for_asm, warning_for_asm, output_quoted_string, + output_file_directive, botch): Likewise. - * fold-const.c (fold): Call truthvalue_conversion for values which - are folded to boolean type. + * tree.h (make_decl_rtl): Likewise. -Wed Apr 1 06:09:53 1998 Jeffrey A Law (law@cygnus.com) + * varasm.c (strip_reg_name, named_section, decode_reg_name, + make_decl_rtl): Likewise. - * 1750a.md, arm.c, clipper.c, clipper.md: Use GEN_INT consistently. - * convex.h, dsp16xx.c, fx80.md, gmicro.c, gmicro.md: Likewise. - * i370.h, i370.md, i860.c, i860.h, i860.md, i960.c: Likewise. - * i960.h, i960.md, m32r.md, m68k.md, m68kv4.h, m88k.c: Likewise. - * m88k.md, ns32k.c, ns32k.md, pdp11.c, pdp11.h, pdp11.md: Likewise. - * pyr.c, pyr.h, pyr.md, romp.c, romp.h, romp.md: Likewise. - * rs6000.md, sparc.c, sparc.h, sparc.md, spur.c, spur.md: Likewise. - * tahoe.md, vax.h, vax.md, we32k.c, we32k.h, we32k.md: Likewise. - * md.texi: Likewise. +Mon Jan 18 11:35:49 1999 Gavin Romig-Koch <gavin@cygnus.com> -Wed Apr 1 08:33:44 1998 Manfred Hollstein <manfred@s-direktnet.de> + * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library + directory logically rather than physically. - * fixincludes (limits.h): Fix nested comments in Motorola's - limits.h and sys/limits.h. +Mon Jan 18 09:05:37 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Tue Mar 31 16:57:33 1998 Jim Wilson <wilson@cygnus.com> + * loop.c (insert_bct): Hide the definition of variables + `increment_direction', `compare_direction', `add_iteration' and + `loop_var_mode'. - * alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr - as dest of expand_binop call. + * recog.c (mode_dependent_address_p): Mark parameter `addr' with + ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL. + (mode_independent_operand): Mark label `lose' with + ATTRIBUTE_UNUSED_LABEL. - * alpha.md (extzv): Correct check for valid operand[2] values. + * regclass.c (n_occurrences): Remove prototype and definition. - * profile.c (branch_prob): Add code to recognize HPPA tablejump entry - branch. + * reload.c (find_reloads_address_1): Mark variable `tem' with + ATTRIBUTE_UNUSED. - * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. + * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR. -Mon Mar 30 13:11:05 1998 Stan Cox <scox@cygnus.com> + * sbitmap.c (sbitmap_copy): Likewise. - * libgcc2.c: (__main, __do_global_dtors, __do_global_ctors): - For __CYGWIN32__ use the versions in winsup/dcrt0.cc. + * scan-decls.c (scan_decls): Hide label `handle_comma'. - * gcc.c, cccp.c, cpplib.c, collect2.c (GET_ENVIRONMENT): Added. - cygwin32 can override this to allow both unix and win32 style PATHs. + * toplev.c (output_lang_identify): Mark prototype with + ATTRIBUTE_UNUSED. - * i386/xm-cygwin32.h (GET_ENVIRONMENT): Defined to allow win32 - style environment paths. + * tree.c (make_node): Cast the first argument of `bzero' to PTR. + (make_tree_vec): Likewise. + (build1): Likewise. -Mon Mar 30 14:43:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * varasm.c (assemble_static_space): Mark variable `tem' with + ATTRIBUTE_UNUSED. - * Makefile.in (cppalloc.o, cpperror.o, cppexp.o, cpphash.o, - cpplib.o, cppmain.o, fix-header.o, gcov.o, gen-protos.o, - gengenrtl.o, halfpic.o, hash.o, scan-decls.o, scan.o): Depend on - system.h. +Mon Jan 18 04:28:36 1999 Nathan Sidwell <nathan@acm.org> - * cpphash.c: Include config.h. - * cppalloc.c: Include system.h. Add parameters to various - function prototypes. - * cpperror.c: Likewise. - * cppexp.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * cppmain.c: Likewise. - * fix-header.c: Likewise. - * gcov.c: Likewise. - * gen-protos.c: Likewise. - * gengenrtl.c: Likewise. - * halfpic.c: Likewise. - * hash.c: Likewise. - * scan-decls.c: Likewise. - * scan.c: Likewise. + * Makefile.in (GCOV_INSTALL_NAME): New macro. + (install-common): Use it. + (uninstall): Use it. + (uninstall): Use correct names for protoize and unprotoize. -Mon Mar 30 11:06:45 1998 Jim Wilson <wilson@cygnus.com> +Mon Jan 18 03:52:56 1999 Christian Bruel <Christian.Bruel@st.com> + Jeffrey A Law (law@cygnus.com) - * README.gnat: Add lang_print_xnode definition. + * flow.c (last_mem_set): Delete variable. References removed. + (mem_set_list): New variable. + (life_analysis): Initialize and finalize alias analysis. + (propagate_block); Initialize mem_set_list. Clear for CALL_INSNs. + (insn_dead_p): For a store to memory, search the entire mem_set_list + for a match. + (mark_set_1): Kill entries on the mem_set_list for aliased writes or + changes to their addresses. Add new entries to the mem_set_list for + memory writes writes. + (mark_used_regs): Kill entries on the mem_set_list which may be + referenced by a load operation. -Mon Mar 30 11:12:24 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Mon Jan 18 01:01:02 1999 Jeffrey A Law (law@cygnus.com) - * config/m68k/m68k.c (standard_68881_constant_p): Don't use - fmovecr on the 68060. + * alias.c (base_alias_check): Add missing return for differing + symbols case. -Mon Mar 30 00:21:03 1998 Jeffrey A Law (law@cygnus.com) +Mon Jan 18 00:36:13 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - * genemit.c (DONE): Rework so that it works in the true arm if - an if-else conditional. - (FAIL): Likewise. + * mips-tdump.c (print_file_desc): Handle unknown filenames and + missing local symbols. -Sun Mar 29 12:45:23 1998 Jeffrey A Law (law@cygnus.com) +Sun Jan 17 21:04:31 1999 Richard Henderson <rth@cygnus.com> - * rs6000.c: Do not include stdioh or ctype.h anymore. + * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL. - * Makefile.in (c-typeck.o): Delete on expr.h, insn-codes.h and - $(RTL_H). - (stor-layout.o): Likewise. - * c-typeck.c: Include rtl.h and expr.h. - * stor-layout.c: Likewise. + * system.h (bcopy): Implement with memmove not memcpy. - * cpplib.c (cpp_file_line_for_message): Delete unused parameter. - All callers changed. - (do_sccs): Wrap in an SCCS_DIRECTIVE ifdef. - * fix-header.c (cpp_file_line_for_message): Delete unused paramter. - All callers changed. +Sun Jan 17 19:23:20 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cppulp.o): Add dependencies. - * collect2.c (is_in_list): Wrap inside COLLECT_EXPORT_LIST ifdef. + * i386.md (integer conditional moves): Add missing earlyclobbers. + + * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update + REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change + where a register is live. - * local-alloc.c (reg_classes_overlap_p): Delete dead function. +Sun Jan 17 03:20:47 1999 H.J. Lu (hjl@gnu.org) - * tree.h (lang_print_xnode): Provide prototype. + * reg-stack.c (subst_stack_regs_pat): Abort if the destination + of a FP conditional move is not on the FP register stack. -Sat Mar 28 23:50:44 PST 1998 Jeff Law (law@cygnus.com) +Sun Jan 17 01:15:04 1999 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Sun Mar 29 00:42:21 1998 Jeffrey A Law (law@cygnus.com) +Sat Jan 16 23:40:33 1999 Jeffrey A Law (law@cygnus.com) - * objc/sendmsg.c (__objc_block_forward): Add braces for return - value if INVISIBLE_STRUCT_RETURN. + * reload1.c (reload_cse_regs_1): Do not call + reload_cse_simplify_operands for an insn with asm operands. - * pa.c (arith_double_operand): Fix parens. + * cccp.c (print_help): Fix typos. + * cpplib.c (print_help): Fix typos. + * toplev.c (f_optiosn): Fix typos. + (documented_lang_options): Fix typos. - * haifa-sched.c (print_pattern): Correct arg to sprintf. +Sat Jan 16 21:48:17 1999 Marc Espie (Marc.Espie@openbsd.org) - * Makefile.in (libgcc1.null): Make return type for __foo void. + * gcc.c (do_spec_1): Fix obvious typo. -Sat Mar 28 14:37:20 1998 Jeffrey A Law (law@cygnus.com) +Sat Jan 16 19:31:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * pa.h: Add declarations for many functions defined in pa.c. + * c-decl.c (duplicate_decls): If `warn_traditional', warn when + a non-static function declaration follows a static one. - * genpeep.c (main): Remove unused variable 'i' from the generated - file. + * invoke.texi (-Wtraditional): Document the extra check now done + by this flag. - * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels. - (gen_split): Likewise. - (main): Rework generated definitions of DONE and FAIL so that they - no longer use gotos. Avoids warnings about unused labels. +Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com) - * integrate.c (copy_rtx_and_substitute): Rework to avoid need for - unused "junk" variable. + * pa.md (shadd): Create shadd insns, even if the result of the shift is + needed without the addition. - * genattrtab.c (write_complex_function): Add a default case in - generated switch statement to keep -W -Wall quiet. +Sat Jan 16 10:48:16 1999 J"orn Rennecke <amylaar@cygnus.co.uk> -Sat Mar 28 10:47:21 1998 Nick Clifton <nickc@cygnus.com> + * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage. - * invoke.texi: Document more ARM and Thumb command line options. +Fri Jan 15 23:44:37 1999 Richard Henderson <rth@cygnus.com> - * config/arm/xm-thumb.h: New file. + * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries. -Sat Mar 28 01:37:33 1998 Craig Burley <burley@gnu.ai.mit.edu> +Fri Jan 15 22:30:04 1999 David Edelsohn <edelsohn@gnu.org> - * stmt.c (expand_expr_stmt): Must generate code for - statements within an expression (gcc's `({ ... )}') - even if -fsyntax-only. + * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT. + * rs6000.c (u_short_cint_operand, add_operand, logical_operand, + non_add_cint_operand, non_logical_cint_operand): Likewise. + (get_issue_rate): Add CPU_PPC604E case. + * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts. -Sat Mar 28 01:06:12 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - Jeffrey A Law (law@cygnus.com) +Fri Jan 15 18:42:12 1999 Richard Henderson <rth@cygnus.com> - * basic-block.h (basic_block_computed_jump_target): Declare. - * flags.h: (current_function_has_computed_jump): Declare. - * flow.c: (basic_block_computed_jump_target): Define. - (flow_analysis): Allocate it. Set current_function_has_computed_jump - to 0. - (find_basic_blocks): Set current_function_has_computed_jump and - elements of basic_block_computed_jump_target to 1 as appropriate. - * function.c: (current_function_has_computed_jump): Define. - * global.c (global_conflicts): Don't allocate pseudos into stack regs - at the start of a block that is reachable by a computed jump. - * reg-stack.c (stack_reg_life_analysis): If must restart, do so - immediately. - (subst_stack_regs): Undo change from Sep 4 1997. - (uses_reg_or_mem): Now unused, deleted. - * stupid.c (stupid_life_analysis): Compute - current_function_has_computed_jump. - (stupid_find_reg): Don't allocate stack regs if the function has a - computed goto. - * haifa-sched.c (is_cfg_nonregular): Delete code to determine if - the current function has a computed jump. Use the global value + * expr.c (queued_subexp_p): Make public. + * expr.h (queued_subexp_p): Declare it. + * recog.c (asm_operand_ok): New function. + (check_asm_operands): Use it. After reload, use constrain_operands instead. + * recog.h (asm_operand_ok): Declare it. + * stmt.c (expand_asm_operands): Use it to try harder to make + asms initially satisfy their constraints. -Sat Mar 28 00:21:37 1998 Jeffrey A Law (law@cygnus.com) +Fri Jan 15 17:43:59 1999 Jeffrey A. Law <law@rtl.cygnus.com> - * i386/freebsd.h (CPP_PREDEFINES): Remove __386BSD__. - (DWARF2_UNWIND_INFO): Define to zero. + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create + (mem (lo_sum (...)) for TFmode unless TARGET_V9. -Fri Mar 27 16:04:49 1998 Michael Meissner <meissner@cygnus.com> +Sat Jan 16 12:47:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * gcc.c (set_std_prefix): Add declaration. - (process_command): If GCC_EXEC_PREFIX is set, remove /lib/gcc-lib/ - suffix, and update the standard prefix prefix.c uses. + * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction + in delay slot of RPTBD. - * prefix.c (std_prefix): New global to hold default prefix value. - (get_key_value): Change to use std_prefix instead of PREFIX. - (translate_name): Ditto. - (update_path): Ditto. - (get_key_value): Release allocated scratch storage. - (set_std_prefix): New function to reset the standard prefix. +Sat Jan 16 12:26:40 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Fri Mar 27 18:08:21 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long + divide and modulo sign problem. - * sh.c (find_barrier): Fix calculations for alignment increase. +Fri Jan 15 11:02:31 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Fri Mar 27 08:56:52 1998 Manfred Hollstein <manfred@s-direktnet.de> + * unroll.c (loop_iterations): Return 0 if the last loop insn + is not a jump insn or if the loop has multiple back edges. - * Makefile.in (stmp-fixinc): If we're actually fixing include - files, copy gcc's assert.h into the fixed include dir. - * fixincludes (assert.h): Avoid any attempts to fix a probably - broken system specific assert.h file. - * fixproto (stdlib.h): Make sure, it'll contain a definition of - size_t. +1999-01-15 Manfred Hollstein <manfred@s-direktnet.de> -Fri Mar 27 00:49:46 1998 Jeffrey A Law (law@cygnus.com) + * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3}; + it's working properly now. Remove comment saying "see m68k-motorola-sysv + as an example". + * configure: Regenerate using autoconf. - * regclass.c (reg_scan_mark_refs): Be more selective about - when we mark a register with REGNO_POINTER_FLAG. + * fixinc/fixincl.c (main): Do not ignore SIGCHLD. -Thu Mar 26 23:00:11 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu Jan 14 22:38:41 1999 Jeffrey A Law (law@cygnus.com) - reload inheritance improvement: - * reload1.c (reg_reloaded_contents, reg_reloaded_insn): - Change meaning: index is now hard reg number. - (reg_reloaded_valid, reg_reloaded_dead): New variables. - (reload_spill_index): Content is now a hard reg number. - (reload_as_needed): Change to fit new variable meaning. - (forget_old_reloads_1, allocate_reload_reg): Likewise. - (choose_reload_regs, emit_reload_insns): Likewise. + * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share + a register with another DEST_ADDR giv if the address is not valid. -Thu Mar 26 18:34:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * pa.c (hppa_expand_epilogue): Save and restore the static chain + around the call to mcount. - * regclass.c (record_reg_classes): '?' increases cost by two. + * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf. - * reload.c (find_reloads): Double previous costs. Output - reloads cost one unit extra. + * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid + generating non-canonical rtl. - * reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that - boiled down to && ! 0. +1999-01-14 Vladimir N. Makarov <vmakarov@cygnus.com> - * reload.c (find_equiv_reg): Also consider a goal offset from the - frame pointer to be constant. + * config/i960/i960.c (i960_output_move_double_zero, + i960_output_move_quad_zero): New functions for moving zeros. + (i960_output_move_double, i960_output_move_quad): Additional code + for situation when moving unaligned register group. -Thu Mar 26 17:34:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/i960/i960.h (i960_output_move_double_zero, + i960_output_move_quad_zero): The function definitions. - * sh.h (OPTIMIZATION_OPTIONS): Define. + * config/i960/i960.md (movdi+1, movti+1): Usage of the functions. -Thu Mar 26 00:19:47 1998 Richard Henderson <rth@cygnus.com> +1999-01-13 Vladimir N. Makarov <vmakarov@cygnus.com> - * combine.c (make_compound_operation): Simplify (subreg (*_extend) 0). + * config/i960/i960.c (i960_function_prologue): New code (optimal + solution) for saving global registers in local registers. + (form_reg_groups, reg_group_compare, split_reg_group): New + functions used by the code. + (reg_group): New structure definition for the new code. -Wed Mar 25 23:53:11 1998 Jeffrey A Law (law@cygnus.com) +1999-01-13 Manfred Hollstein <manfred@s-direktnet.de> - * pa.c (pa_adjust_cost): Avoid redundant calls to get_attr_type. + * fixinc/fixincl.c (create_file): Pass file creation mask as + third parameter to "open". Use O_TRUNC flag to open instead of + explicitly unlink'ing the file. + (process): and forget about the "chmod" stuff. -Wed Mar 25 13:40:48 1998 Jim Wilson <wilson@cygnus.com> +Wed Jan 13 20:12:37 1999 Richard Henderson <rth@cygnus.com> - * c-common.c (check_format_info): Initialize type, is_type. New local - integral_format. Don't warn for 'L' when pedantic. Do warn for 'L' - when pedantic if used with integral format specifier. + * integrate.c (expand_inline_function): Recognize (mem (addressof)) + and substitute. Copy the return value from there into a new pseudo. -Wed Mar 25 16:09:01 1998 Michael Meissner <meissner@cygnus.com> +Wed Jan 13 16:47:00 1999 Catherine Moore <clm@cygnus.com> - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum - direction. - (function_arg_padding): Declare. + * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN + before generating a call to abort for volatile functions. + * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. + (TARGET_ABORT_NORETURN): Define. + (abort-on-noreturn): New option. - * rs6000.c: Include system.h. - (function_arg_padding): Change return type to int, cast enum's to - int. +Thu Jan 14 13:52:42 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - (From Kaveh R. Ghazi <ghazi@caip.rutgers.edu>) - * collect2.c (scan_prog_file): Add explicit braces to avoid - ambiguous `else'. + * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc + and binarycc operations in 3rd annulled delay slot! - * dbxout.c (dbxout_type_fields): Add braces around empty body in - an if-statement. - (dbxout_type): Likewise. +Wed Jan 13 16:16:44 1999 Catherine Moore <clm@cygnus.com> - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg1' - and `reg2'. + * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN + before generating a call to abort for volatile functions. + * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. + (TARGET_ABORT_NORETURN): Define. + (abort-on-noreturn): New option. - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Ditto. +Wed Jan 13 13:30:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. + * cccp.c (xstrdup): Renamed from `savestring'. All callers changed. + Remove prototype which we get from libiberty.h. -Wed Mar 25 10:05:19 1998 Nick Clifton <nickc@cygnus.com> + * collect2.c (xstrdup): Likewise. - * config/arm/thumb.c: New File. Support for ARM's Thumb - instruction set. - * config/arm/thumb.h: New File. Thumb definitions. - * config/arm/thumb.md: New File. Thumb machine description. - * config/arm/tcoff.h: New File. Thumb COFF support. - * config/arm/t-thumb: New File. Thumb makefile fragment. - * config/arm/lib1thumb.asm: New File. Thumb libgcc support functions. + * genextract.c (xstrdup): Likewise for `copystr'. + (mybzero): Remove it and use `memset' instead. - * configure.in: Add Thumb-coff target. - * configure: Add Thumb-coff target. - * config.sub: Add Thumb-coff target. + * genoutput.c (mybcopy, mybzero): Remove these. All callers changed + to use `memcpy' and `memset' instead. -Wed Mar 25 10:30:32 1998 Jim Wilson <wilson@cygnus.com> + * genrecog.c (xstrdup): Renamed from `copystr'. All callers + changed. Remove prototype. + (mybcopy, mybzero): Remove these and use memcpy/memset. - * loop.c (scan_loop): Initialize move_insn_first to zero. +Wed Jan 13 00:59:04 1999 Jeffrey A Law (law@cygnus.com) -Wed Mar 25 01:06:49 1998 Joel Sherrill (joel@OARcorp.com) + * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when + generating code for TARGET_64BIT. - * config/i386/go32-rtems.h: Defined TARGET_MEM_FUNCTIONS. - * config/i386/rtems.h: Likewise. - * config/i960/rtems.h: Likewise. - * config/m68k/rtems.h: Likewise. - * config/mips/rtems64.h: Likewise. - * config/pa/rtems.h: Likewise. - * config/rs6000/rtems.h: Likewise. - * config/sh/rtems.h: Likewise. - * config/sparc/rtems.h: Likewise. +Tue Jan 12 14:05:37 1999 David Edelsohn <edelsohn@gnu.org> -Wed Mar 25 00:57:26 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on + HOST_WIDE_INT word-size. + (rs6000_stack_info): Remove redundant alignment of fpmem. - * pa.c (emit_move_sequence): If in reload, call find_replacement. +Tue Jan 12 14:05:37 1999 Richard Henderson <rth@cygnus.com> -Tue Mar 24 10:44:11 1998 Nick Clifton <nickc@cygnus.com> + * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling. + (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise. + (input_operand): Adjust CONSTANT_P_RTX handling. + * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references. + * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling. + (movhi, movqi): Remove CONSTANT_P_RTX handling. + (movdi): Adjust CONSTANT_P_RTX handling. - * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. +1999-01-12 Manfred Hollstein <manfred@s-direktnet.de> - * 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(). - (prefix_from_env): Use GET_ENVIRONMENT. + * configure: Regenerate using autoconf. -1998-03-24 Mark Mitchell <mmitchell@usa.net> + * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include. + * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems. + (process): "fchmod" isn't available on all systems, use "chmod" + instead. + * fixinc/server.c: Add #include <sys/types.h>. + (STDIN_FILENO): Add default definition if no include file defines + it already. + (STDOUT_FILENO): Likewise. - * cplus-dem.c (optable): Add sizeof. - (demangle_template_value_parm): New function containing code - previously found in demangle_template. - (demangle_integral_value): New function which handles complicated - integral expressions. - (demangle_template): Use them. +Tue Jan 12 10:23:24 1999 Stan Cox <scox@cygnus.com> -Tue Mar 24 12:13:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. - * Makefile.in (genconfig.o, genflags.o, gencodes.o, genemit.o, - genopinit.o, genrecog.o, genextract.o, genpeep.o, genattr.o, - genattrtab.o, genoutput.o): Depend on system.h. +1999-01-12 Manfred Hollstein <manfred@s-direktnet.de> - * genattr.c: Include system.h. Add arguments to various function - prototypes. Remove redundant prototype of read_rtx(). - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. + * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to + ensure all prototypes necessary for building libio will be available. + * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove + definitions here as they are not host specific. + * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise. -1998-03-24 Martin von Loewis <loewis@informatik.hu-berlin.de> +Tue Jan 12 02:53:46 1999 Richard Henderson <rth@cygnus.com> - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it + * cse.c (cse_insn): Never prefer (const (constant_p_rtx)). -Mon Mar 23 23:59:11 1998 H.J. Lu (hjl@gnu.org) +Tue Jan 12 02:36:10 1999 Jeff Law (law@cygnus.com) - * c-parse.in: Recognize protocol qualifiers in class - definitions for objc. - Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. + * version.c: Bump for snapshot. -Mon Mar 23 23:49:47 1998 Jeffrey A Law (law@cygnus.com) +Tue Jan 12 01:30:19 1999 Richard Henderson <rth@cygnus.com> - * cse.c (rtx_cost): Only call CONST_COSTS if it is defined. + * rtl.c (rtx_alloc): Use memset instead of inline loop. - * stmt.c (unroll_block_trees): Free block_vector if needed. + * recog.h (recog_op_alt): Declare extern. -Mon Mar 23 23:26:42 1998 Philippe De Muyter <phdm@macqel.be> +Tue Jan 12 00:23:31 1999 Richard Henderson <rth@cygnus.com> - * m68k/m68k.md (zero_extendqidi2, zero_extendhidi2): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iordi_zext): New pattern. - (iorsi_zexthi_ashl16): Pattern reworked to avoid "0" constraint for - operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. + * function.c (purge_addressof_1): If the note accesses a mem+addressof + in a wider mode than any replacement, adjust the cached replacement. + Cache trivial substitutions as well. - * m68k/m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. +Tue Jan 12 00:06:00 1999 Richard Henderson <rth@cygnus.com> -1998-03-22 Mark Mitchell <mmitchell@usa.net> + * Makefile.in (OBJECTS): Add sbitmap.o. + (BASIC_BLOCK_H): Add sbitmap.h. + * basic-block.h: Move simple bitmap code to sbitmap.h. + * flow.c: Move simple bitmap code to sbitmap.c. + * sbitmap.h, sbitmap.c: New files. - * tree.h (IS_EXPR_CODE_CLASS): New macro. +Mon Jan 11 23:51:50 1999 Richard Henderson <rth@cygnus.com> -Mon Mar 23 23:18:48 1998 Jeffrey A Law (law@cygnus.com) + * alpha.h (TARGET_SWITCHES): Document switches. + (TARGET_OPTIONS): Likewise. - * h8300.h (CONST_COSTS): Remove definition. - (DEFAULT_RTX_COSTS): Define. + * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC. -Mon Mar 23 22:58:22 1998 Joel Sherrill (joel@OARcorp.com) +Mon Jan 11 22:54:14 1999 Richard Henderson <rth@cygnus.com> - * config/sh/rtems.h: Switched from ELF to COFF. + * tree.c (new_alias_set): Return zero if !flag_strict_aliasing. -Mon Mar 23 14:14:20 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Jan 11 22:36:01 1999 Richard Henderson <rth@cygnus.com> - * freebsd.h (ASM_OUTPUT_ALIGN): Redefine. + * basic-block.h (basic_block_head): Rename to x_basic_block_head. + (basic_block_end): Rename to x_basic_block_end. + (BLOCK_HEAD, BLOCK_END): Update. -Sat Mar 21 23:52:56 PST 1998 Jeff Law (law@cygnus.com) + * caller-save.c: Change basic_block_head/end references to + BLOCK_HEAD/END. + * combine.c, flow.c, function.c, gcse.c, global.c: Likewise. + * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise. + * regmove.c, reload1.c, reorg.c, sched.c: Likewise. - * version.c: Bump for snapshot. +Sat Jan 9 23:54:09 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.c (xstrerror): Renamed from my_strerror. All callers + changed. Remove prototype since we get that from libiberty.h. + + * protoize.c (xstrerror): Likewise. + +Sat Jan 9 23:22:04 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.c (read_specs): Ensure format specifiers match their arguments. + +Sat Jan 9 20:04:24 1999 Richard Henderson <rth@cygnus.com> + + * tree.c (copy_node): Oops. That would be copy not zero + in that last change. + +Sun Jan 10 15:35:41 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c: Include system.h. + (c4x_caller_save_map): Disable caller save for RC. + (c4x_optimization_options): Disable scheduling before reload. + (valid_parallel_load_store) : Define return type as int. + Remove unused variable regs. + * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register + class. + * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to + handle rotations. + (*db, decrement_and_branch_until_zero): Fix up constraints + to keep reload happy. -Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> - Geoff Noer <noer@cygnus.com> +Sat Jan 9 18:35:29 1999 Richard Henderson <rth@cygnus.com> - * Makefile.in: Various fixes for building cygwin32 native toolchains. + * tree.c (make_node): Call bzero instead of inline clear. + (copy_node, make_tree_vec, build1): Likewise. + (get_identifier): Call strlen instead of inline count. + (maybe_get_identifier): Likewise. - * objc/Makefile.in: Various fixes for building cygwin32 native toolchains. - * objc/Make-lang.in: Likewise. +Sun Jan 10 14:04:51 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon. + * config/c4x/c4x.md (in_annul_slot_3): Allow unarycc and binarycc + operations in 3rd annulled delay slot. + (*lshrqi3_const_set): Disallow c constraint for operand0. + (modhi3+1, modhi3+2): Set attribute type to multi. + * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of + != operator. -Sun Mar 22 00:21:46 1998 R. Ganesan <rganesan@novell.com> +Sat Jan 9 11:44:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * configure.in: Handle with-PACKAGE=no correctly + * gansidecl.h: Allow attribute unused on labels only when we are + version 2.93 or higher. Not all versions of 2.92 have this feature. -Fri Mar 20 17:36:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * version.c: Bump minor number to 93. - * Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, - c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, - caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, - dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, - expr.o, final.o, flow.o, function.o, getpwd.o, global.o, - integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, - prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, - reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, - rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, - tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend - on system.h. +Fri Jan 8 10:51:13 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, - c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, - caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, - dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, - expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, - integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, - prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, - reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, - rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, - stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, - xcoffout.c: Include system.h. Organize include ordering so - that stdarg/varargs comes before other system headers. Remove - spurious casts of functions assured of a prototype in system.h. + * config/m68k/m68k.h: Declare output_function_epilogue. + * recog.h: Declare next_insn_tests_no_inequality. -Fri Mar 20 11:19:40 1998 Stan Cox <scox@equinox.cygnus.com> +Fri Jan 8 01:43:53 1999 Jeffrey A Law (law@cygnus.com) - * reg-stack.c (pop_stack): Define. Pops any register on the - regstack and adjusts regstack. - (compare_for_stack_reg): Use pop_stack. + * stmt.c (optimize_tail_recursion): New function, extracted from ... + (expand_return): Use optimize_tail_recursion. + * tree.h (optimize_tail_recursion): Declare. -Thu Mar 19 23:51:01 1998 Jeffrey A Law (law@cygnus.com) + * toplev.c (compile_file): Move call to output_func_start_profiler + to after the loop to emit deferred functions. - * configure.in (hppa1.0-hp-hpux10): Handle threads for this - config too. +Thu Jan 7 19:52:53 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> -Thu Mar 19 20:30:31 1998 Philippe De Muyter <phdm@macqel.be> + * system.h (abort): Supply more detailed information on how to + report an Internal Compiler Error. - * libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT. +Thu Jan 7 09:25:58 1999 Bruce Korb (korb@datadesign.com) - * fold-const.c (fold): Replace sign-extension of a zero extended - value by a single zero extension. + * fixinc/fixincl.c (*): More decapitalization of variables + plus some explanatory comments. -Thu Mar 19 00:58:07 1998 Jason Merrill <jason@yorick.cygnus.com> + * fixinc/Makefile.in fixinc/mkfixinc.sh: + When the fixincl program does not work for a certain system, + we substitute a shell script. Added user commentary when + this happens. - * except.c (init_eh): Do nothing. - (save_eh_status): Call init_eh_for_function, not init_eh. - * function.c (push_function_context_to): Don't call init_emit. +Thu Jan 7 11:26:17 1999 Mark Mitchell <mark@markmitchell.com> -Thu Mar 19 13:39:52 1998 Michael Meissner <meissner@cygnus.com> + * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to + allocate memory that will live beyond this function. + (expand_call): Free it here. - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. +Thu Jan 7 03:08:17 1999 Richard Henderson <rth@cygnus.com> -Thu Mar 19 10:10:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for + integer data not destined for fp regs. + (LEGITIMIZE_RELOAD_ADDRESS): New. - * final.c (shorten_branches): Add parentheses around +/- in - operand of &. +Thu Jan 7 03:03:42 1999 Stan Cox <scox@cygnus.com> + Richard Henderson <rth@cygnus.com> - * flow.c (life_analysis): Wrap variable `i' in macro ELIMINABLE_REGS. + Support for Hypersparc and Sparclite86x: + * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New. + (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets. + (ASM_CPU32_DEFAULT_SPEC): Likewise. + (TARGET_CPU_DEFAULT): Likewise. + (enum processor_type): Likewise. + (CPP_ENDIAN_SPEC): Handle little endian data. + (LIBGCC2_WORDS_BIG_ENDIAN): Likewise. + (ADJUST_COST): Call sparc_adjust_cost. + * sparc.c (sparc_override_options): Fix up for the new targets. + (supersparc_adjust_cost): Make static. + (hypersparc_adjust_cost): New. + (ultrasparc_adjust_cost): Make static. + (sparc_adjust_cost): New. + * sparc.md (attr cpu): Add hypersparc and sparclite86x. + (function_unit): Add hypersparc scheduling rules. -Thu Mar 19 09:15:17 1998 Manfred Hollstein <manfred@s-direktnet.de> + * configure.in (with_cpu handler): Recognize hypersparc. - * regclass.c (memory_move_secondary_cost): Wrap uses of - SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS - with #ifdef tests. +Thu Jan 7 23:54:05 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Thu Mar 19 09:06:35 1998 Manfred Hollstein <manfred@s-direktnet.de> + * config/c4x/c4x.c: Added space after negation operator. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. - * config/m68k/m68k.md (addqi3): Fix typo gen_INT vs. GEN_INT. +Thu Jan 7 23:39:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * flow.c (life_analysis): #include <sys/types.h> to make sure - size_t is defined. - * cplus-dem.c (demangle_function_name): Likewise. + * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class. -Thu Mar 19 09:00:01 1998 Manfred Hollstein <manfred@s-direktnet.de> +Thu Jan 7 00:29:25 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * final.c (insn_noperands): Change type to unsigned int. - (final_scan_insn): Likewise for noperands; - properly check operand number boundaries. + * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases, + when a test can't be performed due to limited width of + HOST_BITS_PER_WIDE_INT, use the more conservative approximation. + Fix UDIV case for cases where the first operand has the highest bit + set. + +Thu Jan 7 00:01:38 1999 Lutz Vieweg <lkv@mania.robin.de> + + * pa.h (reg_class): Add FPUPPER_REGS. + (REG_CLASS_NAMES): Similarly. + (REG_CLASS_CONTENTS): Similarly. + (REGNO_REG_CLASS): Handle FPUPPER_REGS. + (FP_REG_CLASS_P): Likewise. + (REG_CLASS_FROM_LETTER): Similarly. + (CLASS_MAX_NREGS): Similarly. -Wed Mar 18 16:20:30 1998 Richard Henderson <rth@cygnus.com> +1999-01-06 Brendan Kehoe <brendan@cygnus.com> - * alpha.md (extzv): Don't reject register operands. Fix - mode of operand 1. + * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h + for a typedef of bool. Make sure to have a copy of the file is + in place before we look to fix it. Fix typo in variable name to + FILE. -Wed Mar 18 16:14:23 1998 Richard Henderson <rth@cygnus.com> +Wed Jan 6 07:51:05 1999 Richard Henderson <rth@cygnus.com> - * dbxout.c (dbxout_function_end): Fix last change. The correct - predicate is ASM_OUTPUT_SECTION_NAME. + * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use + value_mode for the return mode. -Wed Mar 18 12:43:20 1998 Jim Wilson <wilson@cygnus.com> +Wed Jan 6 17:55:19 1999 Robert Lipe <robertlipe@usa.net> - * sh.md (ashlsi_c-1): Delete 3rd argument to gen_ashlsi_c. - (ashlsi): Use match_dup 1 instead of match_operand 2. + * configure.in: New flag --with-dwarf2. If set, enables DWARF-2 + debugging as default. -Wed Mar 18 13:46:07 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * config/tm-dwarf2.h: New file. - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. +Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com) -Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * h8300.h (ASM_OUTPUT_LABELREF): Define. - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. + * pa.h (DONT_RECORD_EQUIVALENCE): Kill. + * local-alloc.c (update_equiv_regs): Corresponding changes. + * tm.texi (DONT_RECORD_EQUIVALENCE): Kill. -Wed Mar 18 16:53:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * calls.c (special_function_p): Push alloca test inside the large + conditional which excludes functions not at file scope or not + extern. - * netbsd.h (ASM_OUTPUT_ALIGN): Redefine. + * calls.c (special_function_p): New function broken out of + expand_call. + (precompute_register_parameters): Likewise. + (store_one_arg): Likewise. + (store_unaligned_argumetns_into_pseudos): Likewise. + (save_fixed_argument_area): Likewise. + (restore_fixed_argument_area): Likewise. + (expand_call): Corresponding changes. -Wed Mar 18 12:43:20 1998 Jim Wilson <wilson@cygnus.com> +Thu Jan 7 00:12:24 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * loop.c (struct movable): New field move_insn_first. - (scan_loop): In consec sets code, set it. Clear it otherwise. - (move_movables): In consec sets code, use it. Copy REG_NOTES from - p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed - out code. + * config/c4x/c4x.md (addqi3): If the destination operand is + a hard register other than an extended precision register, + emit addqi3_noclobber. + (*addqi3_noclobber_reload): New pattern added so that reload + will recognize a store of a pseudo, equivalent to the sum + of the frame pointer and a constant, as an add insn. -Wed Mar 18 09:52:56 1998 Richard Henderson <rth@cygnus.com> +1999-01-06 Manfred Hollstein <manfred@s-direktnet.de> - * rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT - is large, and the system doesn't provide atoll or atoq. - (atoll): New. + * fixinc/fixincl.c: Re-indent according to the GNU standards. + fixinc/server.c: Likewise. + fixinc/server.h: Likewise. - * alpha/xm-vms.h (HAVE_ATOLL): Define. - Reported by Klaus Kaempf <kkaempf@progis.de>. +Wed Jan 6 10:43:29 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Wed Mar 18 09:56:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX + handling. + (const_sint32_operand): Likewise. - * c-lang.c (finish_file): Wrap variable `void_list_node' with macro - test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR. +Wed Jan 6 09:44:51 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * calls.c (emit_call_1): Wrap variable `already_popped' with macro - test !ACCUMULATE_OUTGOING_ARGS. + * toplev.h: In addition to checking _JBLEN, also check if `setjmp' + is a macro when deciding if we can use `jmp_buf' in prototypes. - * collect2.c (write_c_file_glob): Wrap function definition in - macro test !LD_INIT_SWITCH. +Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net> - * combine.c (try_combine): Wrap variables `cc_use' and - `compare_mode' in macro test EXTRA_CC_MODES. + * configure.in (pc-msdosdjgpp): Set x_make to x-go32. + * configure: Rebuilt. + * i386/xm-go32.h: Define LIBSTDCXX. + * i386/x-go32: New. + * i386/go32.h (MD_EXEC_PREFIX): Define. + (FILE_NAME_ABSOLUTE_P): Define. + (LINK_COMMAND_SPEC): Define. - * cpplib.c (do_ident): Remove unused variable `len'. - (skip_if_group): Remove unused variables `at_beg_of_line' and - `after_ident'. - (cpp_get_token): Remove unused variable `dummy'. +Wed Jan 6 02:23:36 1999 "Charles M. Hannum" <root@ihack.net> - * dbxout.c (scope_labelno): Move static variable definition inside - the one function scope where it is used. - (dbxout_function_end): Wrap prototype and definition in - macro test !NO_DBX_FUNCTION_END. + * expr.c (store_expr): If the lhs is a memory location pointed + to be a postincremented (or postdecremented) pointer, always + force the rhs to be evaluated into a pseudo. - * dwarf2out.c (add_subscript_info): Wrap variable `dimension_number' - in macro test !MIPS_DEBUGGING_INFO. +Wed Jan 6 00:54:21 1999 Geoff Keating <geoffk@ozemail.com.au> - * expr.c (expand_builtin_setjmp): Move declaration of variable `i' - into the scope where it is used. Wrap empty else-statement body - in braces. + * real.c (mtherr): Print more reasonable warning messages. - * fix-header.c: Fix typo in comment. - (inf_skip_spaces): Cast results of INF_UNGET to (void). - (check_protection, main): Likewise. +Tue Jan 5 21:57:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * flow.c (find_basic_blocks_1): Remove dangling comment text. + * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h. - * function.c (contains): Wrap prototype and definition in macro - test HAVE_prologue || HAVE_epilogue. - (fixup_var_refs_1): Remove unused variable `width'. + * cccp.c: Include prefix.h, don't prototype prefix.c functions. + (new_include_prefix): Constify char* parameters. - * gen-protos.c (main): Remove unused variable `optr'. + * cppfiles.c (read_name_map): Likewise. + (append_include_chain): Likewise. Also, use a writable char* copy + of parameter `dir' which we then modify, rather than using the + parameter itself to store the new writable string. + (remap_filename): Constify some variables. Also, use a writable + char* to store an allocated string which we will be modifying. - * haifa-sched.c (debug_control_flow): Remove unused variable `j'. + * cpplib.c: Include prefix.h, don't prototype prefix.c functions. + (cpp_start_read): Constify variable `str'. - * libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0. - (__sjpopnthrow): Remove unused variable `jmpbuf'. - (__throw): Remove unused variable `val'. + * cpplib.h (append_include_chain): Constify a char* parameter. - * protoize.c: Check for a previously existing definition before - defining *_OK macros. + * gcc.c Include prefix.h, don't prototype prefix.c functions. + (add_prefix, save_string): Constify char* parameters. + (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. - * scan-decls.c (scan_decls): Remove unused variable `old_written'. + * prefix.c: Include prefix.h. + (get_key_value, translate_name, save_string, update_path, + set_std_prefix): Constify various char* parameters and variables. + (save_string): Use xmalloc, not malloc. + (translate_name): Use a writable temporary variable to create and + modify a string before setting it to a const char*. -Tue Mar 17 00:45:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * prefix.h: New file to prototype functions exported from prefix.c. - * vax.h (ADDR_VEC_ALIGN): Define. +Tue Jan 5 08:52:18 1999 Bruce Korb (korb@datadesign.com) -Mon Mar 16 15:57:17 1998 Michael Meissner <meissner@cygnus.com> + * fixinc/fixincl.c (various): Added debug code so + Manfred can trace the processing. - * gcc.c (default_arg): Don't wander off the end of allocated - memory. + * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of + struct utsname on Ultrix V4.[35]. - (From Geoffrey Keating <geoffk@ozemail.com.au>) - * rs6000.c (small_data_operand): Ensure that any address - referenced relative to the small data area is inside the SDA. + * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : Regenerated. -Mon Mar 16 12:55:15 1998 Jim Wilson <wilson@cygnus.com> +Mon Jan 4 15:37:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - * config/m68k/netbsd.h (ASM_SPEC): Add %{m68060}. + * cpplib.c (skip_if_group): Split out the logic that handles + directive recognition to its own function. Don't use + parse markers; use a bare pointer into the buffer. Use + copy/skip_rest_of_line instead of doing it by hand. Remove + `return on any directive' mode which was never used, and take + only one argument. + (consider_directive_while_skipping): New function, subroutine + of skip_if_group. Logic streamlined a bit. + (conditional_skip, do_elif, do_else): Call skip_if_group with + only one argument. -Mon Mar 16 15:50:20 EST 1998 Andrew MacLeod <amacleod@cygnus.com> +Mon Jan 4 15:27:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - * except.h (in_same_eh_region): New prototype. - (free_insn_eh_region, init_insn_eh_region): New prototypes. - * except.c (insn_eh_region, maximum_uid): New static variables. - (set_insn_eh_region): New static function to set region numbers. - (free_insn_eh_region): New function to free EH region table. - (init_insn_eh_region): New function to initialize EH region table. - (in_same_eh_region): New function used to determine if two rtl - instructions are in the same exception region or not. - * final.c (final): Initialize the table indicating which instructions - belong in which exception region. - * genpeep.c (main): Add "except.h" to include file list in generated - file insn-peep.c. - * config/sparc/sparc.md: Add calls to 'in_same_eh_region' in 4 - peepholes involving calls and unconditional branches. + * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an + error. -Mon Mar 16 11:16:50 1998 Jim Wilson <wilson@cygnus.com> +Mon Jan 4 11:55:51 1999 Jason Merrill <jason@yorick.cygnus.com> - * README.gnat: New file. + * extend.texi (Bound member functions): Document. -Mon Mar 16 11:14:20 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Mon Jan 4 11:01:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * config/m68k/m68k.c: Include <stdlib.h> for atoi. Include - "recog.h" for offsettable_memref_p. - (legitimize_pic_address): Remove unused variable `offset'. - (notice_update_cc): Change return type to void. Add default label - to switch. - (standard_68881_constant_p): Remove unused variable mode. - (print_operand): Define local variable i only if SUPPORT_SUN_FPA. - (const_int_cost): Explicitly declare as returning int. - (output_dbcc_and_branch): Change return type to void. + * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string, + lang_to_string, type_to_string): Make return type const char*. + (print_symbol): Apply `const' keyword to a char*. + (print_file_desc): Cast structure member `crfd' to ulong when + comparing against one. - * config/m68k/linux.h, config/m68k/m68k.md, config/m68k/m68k.c, - config/m68k/m68k.h: Replace gen_rtx (XXX, ...) with gen_rtx_XXX - (...). Use GEN_INT instead of gen_rtx_CONST_INT. + * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*. + (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. + (progname, input_name): Apply `const' keyword to a char*. + Don't redundantly include sys/stat.h. + (alloc_info): Apply `const' keyword to a char*. + (st_to_string, sc_to_string): Likewise. + (hash_string): Cast variable `hash_string' to a symint_t when + comparing against one. + (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one. + Likewise cast it to long when comparing against one. + (add_local_symbol): Apply `const' keyword to a char*. + (add_ext_symbol): Likewise. + (add_unknown_tag): Likewise. + (add_procedure): Cast a printf-style field width to an int. + (add_file): Cast PAGE_USIZE to long when comparing against one. + (parse_begin): Cast a printf-style field width to an int. + (parse_bend): Likewise. + (parse_def): Likewise. + (parse_end): Likewise. + (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED. + (parse_stabs_common): Fix format specifier. + (parse_input): Change type of variable `i' to Size_t. + (write_object): Fix arguments to match format specifiers. + Cast variable `num_write' to long when comparing against one. + (read_seek): Cast variable `sys_read' to symint_t when comparing + against one. Fix arguments to match format specifiers. Cast + variable `size' to long when comparing against one. + (copy_object): Cast result of `sizeof' to int when comparing + against one. Fix arguments to match format specifiers. Cast + variable `ifd' to long when comparing against a signed value. + Likewise, likewise. -Sun Mar 15 22:30:44 PST 1998 Jeff Law (law@cygnus.com) +Mon Jan 4 10:30:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c (decl_attributes): Allow applying attribute `unused' + on a LABEL_DECL. + + * c-parse.in (label): Parse attributes after a label, and call + `decl_attributes' to handle them. + + * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define. + + * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When + generating labels, mark them with ATTRIBUTE_UNUSED_LABEL. + + * invoke.texi: Note that labels can be marked `unused'. + +Sun Jan 3 23:32:18 1999 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Fri Mar 13 11:30:12 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Sun Jan 3 23:00:42 1999 Jeffrey A Law (law@cygnus.com) - * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Fix logic in range - check for 'M' constraint. + * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing + RTL for a compare/jump sequence. -Thu Mar 12 14:47:14 1998 Jim Wilson <wilson@cygnus.com> +Sun Jan 3 22:58:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * cccp.c (create_definition): If pedantic, call pedwarn for macro - varargs feature. + * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL + for a target with HAVE_cc0 defined. + (emit_cmp_and_jump_insns): New function. + * expr.h (emit_cmp_and_jump_insns): Prototype it. + * loop.c (check_dbra_loop): Use it to replace calls + to emit_cmp_insn and emit_jump_insn and to canonicalize + the comparison if necessary. + * unroll.c (unroll_loop): Likewise. -Thu Mar 12 13:43:25 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> +Sun Jan 3 21:01:04 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - * i386.c (ix86_logical_operator): New function. - (split_di): Ensure that when a MEM is split, the resulting MEMs have - SImode. - * i386.md (anddi3, xordi3, iordi3): New patterns. Add a define_split - to implement them. + * fixincludes (sys/utsname.h): Provide forward declaration of + struct utsname on Ultrix V4.[35]. -Thu Mar 12 15:13:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - Richard Earnshaw <rearnsha@arm.com> - Nick Clifton <nickc@cygnus.com> + * mips.md (div_trap): Use local labels instead of dot-relative + branches. - * tm.texi (DEFAULT_RTX_COSTS): Document new macro. +Sun Jan 3 20:40:34 1999 Jeffrey A Law (law@cygnus.com) - * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS. + * pa.md (branch, negated branch): Handle (const_int 0) as first + source operand. + * pa.c (output_cbranch): Likewise. - * cse.c (rtx_cost): Provide a default case in an enumeration - switch, and call DEFAULT_RTX_COSTS if it's defined. +Sun Jan 3 03:20:38 1999 David Edelsohn <edelsohn@gnu.org> -Thu Mar 12 10:02:38 1998 Manfred Hollstein <manfred@s-direktnet.de> + * rs6000.c (rs6000_stack_info): Undo spurious part of last + change. - * basic-block.h (compute_preds_succs): Change return type in - prototype to void. - * flow.c (compute_preds_succs): Likewise in function definition. +1999-01-01 Manfred Hollstein <manfred@s-direktnet.de> - * regmove.c (find_matches): Cast char used as array index to unsigned char - to supress warning. + * extend.texi (__builtin_constant_p): Add missing @smallexample. -Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> +Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com) - * i386.h (RTX_COSTS): Insert braces around nested if. - (ADDITIONAL_REGISTER_NAMES): Insert braces around structured - elements. + * i386.md (doubleword shifts): Fix dumb mistakes in previous change. - * gcc.c (default_compilers): Properly put brackets around array elements in - initializer. +Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) - * getopt.c (_getopt_internal): Add explicit braces around nested if; - reformatted. + * m68k.md (adddi_dilshr32): Allow all operands to be registers too. + (adddi_dishl32): Similarly. - * reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's. - (record_reg_life_pat): Add explicit parens around && and || in expression. - (stack_reg_life_analysis): Add parens around assignment used as expression. - (convert_regs): Likewise. + * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers + for each insn in the skipped block. + + * reload1.c (reload_as_needed): Verify that the insn satisfies its + constraints after replacing a register address with an autoincrement + address for reload inheritance purposes. + + * i386.md (doubleword shifts): Avoid namespace pollution. + +Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com> + + * configure.in (FreeBSD ELF): Needs special crt files. + +Wed Dec 30 22:50:13 1998 Geoffrey Noer <noer@cygnus.com> + + * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. + +1998-12-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * loop.c (check_dbra_loop): While reversing the loop, if the + comparison value has a VOID mode use the mode of the other operand + to compute the mask. + +Wed Dec 30 22:24:00 1998 Michael Meissner <meissner@cygnus.com> + + * rs6000.md ({save,restore}_stack_function): Take 2 operands to + avoid warnings in compiling explow.c. + + (patch from Ken Raeburn, raeburn@cygnus.com) + * rs6000.c (rs6000_stack_info): Force 8-byte alignment of + fpmem_offset. Compute total size after that, and then + rs6000_fpmem_offset using both values. + +Mon Dec 28 19:26:32 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> + + * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in + the future; indeed that already happens in some cases. -Thu Mar 12 09:25:29 1998 Manfred Hollstein <manfred@s-direktnet.de> +Tue Dec 29 11:58:53 1998 Richard Henderson <rth@cygnus.com> - * bitmap.c (bitmap_element_allocate): Remove unused parameter; - change callers accordingly. + * sparc.c (input_operand): Recognize (const (constant_p_rtx)). + (arith_operand): Remove constant_p_rtx handling. + (const64_operand, const64_high_operand): Likewise. + (arith11_operand, arith10_operand, arith_double_operand): Likewise. + (arith11_double_operand, arith10_double_operand, small_int): Likewise. + (small_int_or_double, uns_small_int, zero_operand): Likewise. + * sparc.h (PREDICATE_CODES): Likewise. - * cplus-dem.c (arm_special): Remove unused parameter work in prototype - and definition; change all callers accordingly. + * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. - * except.c (init_eh): Avoid assignment of unused return value of - build_pointer_type; cast it to void, instead, and remove unused - variable type. +Tue Dec 29 11:32:54 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - * gcc.c (lang_specific_driver): Define prototype only #ifdef - LANG_SPECIFIC_DRIVER. - (temp_names): Define only #ifdef MKTEMP_EACH_FILE. + * rtl.def (CONSTANT_P_RTX): Clarify commentary. + * 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. - * genoutput.c (output_epilogue): Initialize next_name to 0. +Tue Dec 29 11:30:10 1998 Richard Henderson <rth@cygnus.com> - * real.c (efrexp): #if 0 prototype and function definition. - (eremain): Likewise. - (uditoe): Likewise. - (ditoe): Likewise. - (etoudi): Likewise. - (etodi): Likewise. - (esqrt): Likewise. + * expr.c (init_expr_once): Kill can_handle_constant_p recognition. + * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. - * reload.c (push_secondary_reload): Define prototype only - #ifdef HAVE_SECONDARY_RELOADS. + * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling. + (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. + (sext_add_operand, and_operand, or_operand): Likewise. + (reg_or_cint_operand, some_operand, input_operand): Likewise. + * alpha.h (PREDICATE_CODES): Likewise. + +Sat Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) - * varasm.c (assemble_static_space): Define rounded only - #ifndef ASM_OUTPUT_ALIGNED_LOCAL. + * gengenrtl.c (gencode): Always use bzero to clear memory instead + of dangerous casts and stores. -Thu Mar 12 09:11:35 1998 Manfred Hollstein <manfred@s-direktnet.de> + * Makefile.in (compare, gnucompare): Add missing else true clauses. - * i386.md (andsi): Add default case in enumeration switch. - (iorsi3): Likewise. - (iorhi3): Likewise. - (xorsi3): Likewise. +Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) -Thu Mar 12 08:37:02 1998 Manfred Hollstein <manfred@s-direktnet.de> + * alpha.md (builtin_longjmp): Add missing "DONE". - * c-decl (finish_struct): Change type of min_align to unsigned. +Thu Dec 24 10:39:57 1998 Stan Cox <scox@cygnus.com> - * cplus-dem.c (demangle_function_name): Change type of variable i to size_t; - remove unused variable len. + * gcc.c (execute): Enable -pipe with win32. - * dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a - comment indicating this is proper behaviour. - (reg_loc_descriptor): Remove redundant comparison of unsigned variable - reg >= 0. - (based_loc_descr): Likewise. +Wed Dec 23 10:27:44 1998 Nick Clifton <nickc@cygnus.com> - * enquire.c (bitpattern): Change type of variable i to unsigned. + * config/arm/t-arm-elf: Add multiplib option for leading + underscores. - * final.c (output_asm_insn): Don't cast insn_noperands to unsigned. + * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable + 'user_label_prefix' rather than macro USER_LABEL_PREFIX. - * flow.c (life_analysis): Change type of variable i to size_t; - remove unused variable insn. + (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather + than variable 'reload_address_base_reg_class'. [Note this + change is unrelated to the others in this patch]. - * gcc.c (translate_options): Change type of variables optlen, arglen and - complen to size_t. - (input_filename_length): Change type to size_t. - (do_spec_1): Change type of variable bufsize to size_t. - (main): Change type of variables i and j to size_t; - remove subblock local definition of variable i. - (lookup_compiler): Change type of second argument to size_t; - change type of variable i to size_t. + * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no + leading underscore. - * genemit.c (output_init_mov_optab): Change type of variable i to size_t. +Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * genopinit.c (get_insn): Change type of variable pindex to size_t. + * alias.c (record_alias_subset): Remove ignored `&'. + (init_alias_once): Likewise. - * genrecog.c (add_to_sequence): Change type of variable i to size_t. + * c-lex.c (UNGETC): Cast first argument of comma expression to void. - * global.c (global_alloc): Change type of variable i to size_t. + * config/mips/mips.c (mips_asm_file_end): Cast the result of + fwrite to `int' when comparing against one. - * regclass.c (init_reg_sets): Change type of variables i and j to unsigned. + * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. + (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. - * stmt.c (expand_end_bindings): Change type of variable i to size_t. - (expand_end_case): Change type of variable count to size_t. + * cse.c (rehash_using_reg): Change type of variable `i' to + unsigned int. - * toplev.c (main): Change type of variable j to size_t. - (set_target_switch): Change type of variable j to size_t. - (print_switch_values): Change type of variable j to size_t; - remove unused variable flags. + * dwarf2out.c (initial_return_save): Cast -1 to unsigned before + assigning it to one. - * varasm.c (assemble_variable): Change type of variable align to size_t. - (const_hash_rtx): Change type of variable i to size_t. + * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. -1998-03-11 Mark Mitchell <mmitchell@usa.net> + * final.c (final_scan_insn): Likewise for variable `i'. + (output_asm_insn): Cast a char to unsigned char when used as an + array index. - * dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a - TREE_VEC if that's what it really is. + * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when + assigning it to one. -Wed Mar 11 15:16:01 1998 Michael Meissner <meissner@cygnus.com> + * loop.c (strength_reduce): Remove unused variables `count' and `temp'. - * {haifa-,}sched.c (rank_for_schedule): Only take void * arguments - as per ISO C spec. + * recog.c (preprocess_constraints): Cast a char to unsigned char + when used as an array index. -Wed Mar 11 12:05:20 1998 Teemu Torma <tot@trema.com> + * regmove.c (find_matches): Likewise. - * gthr.h: Changed the comment about return values. - * gthr-solaris.h (__gthread_once): Do not use errno; return the - error number instead of -1. - (__gthread_key_create): Any non-zero return value is an error. - * libgcc2.c (eh_context_initialize): Check for non-zero return - value from __gthread_once. - Check that the value of get_eh_context was really changed. + * reload1.c (calculate_needs): Add default case in switch. + (eliminate_regs_in_insn): Initialize variable `offset'. + (set_offsets_for_label): Change type of variable `i' to unsigned. + (reload_as_needed): Wrap variable `i' in macro check on + AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. -Wed Mar 11 18:26:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' + with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t + when comparing against one. - * sh.h (LOOP_ALIGN): Only align when optimizing. - * sh.c (find_barrier): Clear inc for CODE_LABELs. - When not optimizing, calculate alignment for BARRIERs directly. + * stor-layout.c (layout_decl): Cast maximum_field_alignment to + unsigned when comparing against one. Likewise for + GET_MODE_ALIGNMENT(). + (layout_record): Cast record_align to int when comparing against a + signed value. + (layout_type): Cast TYPE_ALIGN() to int when comparing against a + signed value. -Wed Mar 11 15:07:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * tree.c (get_identifier): Cast variable `len' to unsigned when + comparing against one. + (maybe_get_identifier): Likewise - * final.c (shorten_branches): Remove conditionalizing on - SHORTEN_WITH_ADJUST_INSN_LENGTH - * sh.h, pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Remove. +Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) -Wed Mar 11 02:37:41 1998 Jeffrey A Law (law@cygnus.com) + * toplev.c (rest_of_compilation): Do not set reload_completed. + * reload1.c (reload): Set reload_completed before calling + cleanup_subreg_operands. - * flow.c (find_basic_blocks_1): Keep the cfg accurate when removing - an unconditional jump around deleted blocks. +Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com> -Mon Mar 9 12:02:23 1998 Jim Wilson <wilson@cygnus.com> + * reload1.c (emit_reload_insns): Check `set' not null before use. - * profile.c (branch_prob): If see computed goto, call fatal instead of - abort. +Tue Dec 22 15:15:45 1998 Nick Clifton <nickc@cygnus.com> - * config/mips/sni-svr4.h (CPP_PREDEFINE): Add -DSNI and -Dsinix. + * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to + 'int'. - * configure.in (alpha-dec-osf): Add default case for osf* to switch. - Patch from Bruno Haible. +Tue Dec 22 13:55:44 1998 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - * function.c (put_reg_into_stack): Copy MEM_IN_STRUCT_P from new. - (assign_parms): Set aggregate if hide_last_arg and last_named. + * halfpic.c (half_pic_encode): Delete redundant code. -Mon Mar 9 19:57:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Tue Dec 22 13:02:22 1998 Michael Meissner <meissner@cygnus.com> - * final.c (shorten_branches): Initialize insn_addresses. + * toplev.c (main): Delete handling of -dM as a preprocessor + option. -Mon Mar 9 14:10:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Dec 21 17:39:38 1998 Michael Meissner <meissner@cygnus.com> - * sh.h (MUST_PASS_IN_STACK): Define. + * toplev.c (main): Don't emit any warnings when using -dD, -dM, or + -dI, which are handled by the preprocessor. -Sun Mar 8 13:01:56 1998 Jeffrey A Law (law@cygnus.com) +Sun Dec 20 16:13:44 1998 John F. Carr <jfc@mit.edu> - * final.c (shorten_branches): Fix minor logic error in - ADDR_DIFF_VEC shortening support. + * configure.in: Handle Digital UNIX 5.x the same as 4.x. + * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". -Sun Mar 8 02:17:42 PST 1998 Jeff Law (law@cygnus.com) +Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Sat Mar 7 00:54:15 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (is_cfg_nonregular): Change return type to - an int. No longer compute "estimated" number of edges. Use - computed_jump_p instead of duplicating the code. Fixup/add - some comments. - (build_control_flow): Returns a value indicating an irregularity - in the cfg was detected. Count the number of edges in the cfg. - allocate various edge tables. - (find_rgns): No longer look for unreachable blocks. - (schedule_insns): Do not allocate memory for edge tables here. - Free memory for edge tables before returning. Do not perform - cross block scheduling if build_control_flow returns nonzero. - * flow.c (compute_preds_succs): More accurately determine when - a block drops in. - - * basic-block.h (free_basic_block_vargs): Provide prototype. - - * cccp.c (main): Fix dumb mistakes in last change. - -Fri Mar 6 21:28:45 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (addr_diff_vec_flags): New typedef. - (union rtunion_def): New member rt_addr_diff_vec_flags. - (ADDR_DIFF_VEC_FLAGS): New macro. - - * sh.c (output_branch): Fix offset overflow problems. - - * final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE. - (final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT. - * rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags). - * stmt.c (expand_end_case): Supply new arguments to - gen_rtx_ADDR_DIFF_VEC. - * 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY. - * alpha.h, arc.h, clipper.h, convex.h : Likewise. - * dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise. - * i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise. - * mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise. - * rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise. - * vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise. - * i386/386bsd.h, i386/freebsd-elf.h : Likewise. - * i386/freebsd.h, i386/linux.h : Likewise. - * i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise. - * i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise. - * m68k/mot3300.h, m68k/sgs.h : Likewise. - * m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise. - * sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define. - (CASE_VECTOR_SHORTEN_MODE): Define. - (short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare. - (med_branch_p, braf_branch_p): Don't declare. - (mdep_reorg_phase, barrier_align): Declare. - (ADJUST_INSN_LENGTH): Remove alignment handling. - * sh.c (uid_align, uid_align_max): Deleted. - (max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted. - (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted. - (cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted. - (output_far_jump): Don't use braf_branch_p. - (output_branchy_insn): Don't use branch_offset. - (find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs. - Remove paired barrier stuff. - Don't use cache_align_p. - Take alignment insns into account. - (fixup_addr_diff_vecs): Reduce to only fixing up the base label of - the addr_diff_vec. - (barrier_align, branch_dest): New function. - (machine_dependent_reorg, split_branches): Remove infrastructure - for branch shortening that is now provided in the backend. - * sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes. - (braf_branch_p, braf_cbranch_p): Likewise. - (attribute length): Use new attributes. - (casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC. - (addr_diff_vec_adjust): Delete. - (align_2): Now a define_expand. - (align_log): Now length 0. - -Fri Mar 6 14:41:33 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.md (right): Correctly check for length == 2, not 1. - -Fri Mar 6 14:00:04 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips/mips.h: Prototype `machine_dependent_reorg'. - (ASM_OUTPUT_ALIGN): Remove unused variable `mask'. - -Fri Mar 6 11:43:35 1998 Joern Rennecke (amylaar@cygnus.co.uk) - - * final.c (shorten_branches): Restore accidentally removed code. - -Fri Mar 6 11:00:49 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure.in: Remove duplicate uses of AC_PROG_CC and - AC_PROG_MAKE_SET. - -Fri Mar 6 00:59:30 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (target_cpu_default2): Correct typo for alphapca56. - -Thu Mar 5 23:24:50 1998 Jeffrey A Law (law@cygnus.com) - Doug Evans (devans@cygnus.com) - - * haifa-sched.c (build_jmp_edges): Delete dead function. - (build_control_flow): Use cfg routines from flow.c - (schedule_insns): Remove debugging code accidentally checked - in earlier today. - - * basic-block.h: Add external integer list structures, typdefs, - accessor macros and function declarations. Simlarly for - basic block pred/succ support and simple bitmap stuff. - * flow.c: Add functions for integer list, basic block pred/succ - support and simple bitmap support. - (compute_dominators): New function to compute dominators and - post dominators. - (find_basic_blocks): Split into two functions. - (life_analysis): Likewise. - (flow_analysis): Removed. Now handled by calling find_basic_blocks, - the life_analysis from toplev.c - * toplev.c (rest_of_compilation): Call find_basic_blocks, then - life_analysis instead of flow_analysis. - -Thu Mar 5 23:06:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (jump_optimize): Call mark_jump_label also for deleted - insns. - (mark_jump_label): Don't increment ref counts for deleted insns. - -Thu Mar 5 09:55:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips/iris6.h (TARGET_DEFAULT): Parenthesize macro definition. - - * mips/mips.c: Include stdlib.h and unistd.h. - (mips_asm_file_end): Add braces around empty body in an if-statement. - (function_prologue): Wrap variable `fnname' in - !FUNCTION_NAME_ALREADY_DECLARED. Correct format specifier in fprintf. - (mips_select_rtx_section, mips_select_section): Declare as void. +Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) - * mips/mips.h: Add prototypes for extern functions in mips.c. - (FUNCTION_ARG_REGNO_P): Add parentheses around && within ||. - (ENCODE_SECTION_INFO): Add braces around empty body in an - if-statement. + * version.c: Bump for snapshot. - * mips/mips.md (movdi): Add parentheses around && within ||. - (movsf, movdf): Likewise. - (branch_zero, branch_zero_di): Add default case in - enumeration switch. +Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) + * version.c: Bump for snapshot. -Thu Mar 5 02:45:48 1998 Richard Henderson <rth@cygnus.com> +Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * genattr.c (fatal): Qualify a char* with the `const' keyword. + + * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set, + write_unit_name, write_eligible_delay, expand_units, + make_length_attrs, write_attr_case, find_attr, + make_internal_attr): Likewise. + * gencheck.c (tree_codes): Likewise. + * gencodes.c (fatal): Likewise. + * genconfig.c (fatal): Likewise. + * genemit.c (fatal): Likewise. + * genextract.c (fatal, walk_rtx, copystr): Likewise. + * genflags.c (fatal): Likewise. + * genopinit.c (fatal, optabs, gen_insn): Likewise. + * genoutput.c (fatal, error, predicates): Likewise. + * genpeep.c (fatal): Likewise. + * genrecog.c (fatal, decision, pred_table, add_to_sequence, + write_tree_1, write_tree, change_state, copystr, indents): Likewise. + +Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * configure.in (with-fast-fixincludes): Fix whitespace. + * configure: Rebuilt. - * alpha/alpha.h (TARGET_WINDOWS_NT, TARGET_OPEN_VMS): Just make them - real constants, since they can't be changed. - (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/alpha.md (builtin_setjmp_receiver): Use it. - * alpha/osf.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/osf2or3.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/vms.h (TARGET_OPEN_VMS): New. - * alpha/win-nt.h (TARGET_WINDOWS_NT): New. + * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific + asm() etc. function declarations in __DECC. -Thu Mar 5 02:41:27 1998 Richard Henderson <rth@cygnus.com> +Thu Dec 17 13:57:23 1998 Nick Clifton <nickc@cygnus.com> - * reload.c (find_reloads): Always force (subreg (mem)) to be - reloaded if WORD_REGISTER_OPERATIONS. + * expr.c (emit_move_insn_1): Only emit a clobber if the target + is a pseudo register. -Thu Mar 5 02:14:44 1998 Richard Henderson <rth@cygnus.com> +Thu Dec 17 13:50:29 1998 Nick Clifton <nickc@cygnus.com> - * haifa-sched.c (free_list): Rename from free_pnd_lst. - (free_pending_lists): Rename free_pnd_lst uses. - (remove_dependence): Place expunged element on unused_insn_list. - (alloc_INSN_LIST, alloc_EXPR_LIST): New. Change all callers of - gen_rtx_*_LIST and alloc_rtx to use them. - (compute_block_backward_dependences): Free the reg_last_* lists. + * gcse.c: Include expr.h in order to get the prototype for + get_condition() which is used in delete_null_pointer_checks(). -Thu Mar 5 00:05:40 1998 Jeffrey A Law (law@cygnus.com) +Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * cccp.c (main): Avoid undefined behavior when setting pend_includes - and pend_files. + * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. -Wed Mar 4 21:58:25 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> +Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com> - * rs6000/linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if - USE_GNULIBC_1 is defined - * configure.in: add a new case powerpc-*-linux-gnulibc1 which - includes the t-linux-gnulibc1 fragment + * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. + (ALL_CFLAGS): Delete SCHED_CFLAGS. -Wed Mar 4 12:11:36 1998 Jim Wilson <wilson@cygnus.com> +1998-12-17 Vladimir N. Makarov <vmakarov@cygnus.com> - * mips.md (movdf_internal1a): Fix misplaced parenthesis in condition. + * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of + ';'). -Wed Mar 4 18:47:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +1998-12-17 Michael Tiemann <tiemann@axon.cygnus.com> - * final.c (final_scan_insn, case CODE_LABEL: Cleanup. + * i960.md (extend*, zero_extend*): Don't generate rtl that looks + like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides + optimizations from the combiner. -Wed Mar 4 15:51:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * final.c (shorten_branches): Tag the loop alignment onto the - first label after NOTE_INSN_LOOP_BEG even if there is an - intervening insn. + * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. -Tue Mar 3 21:48:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com> - * final.c (insn_current_reference_address): - Use SEQ instead of BRANCH as argument to align_fuzz, to get a - proper alignment chain. + * toplev.c (main): Disable optimize_size if a specific + optimization level is requested. Always set optimization + level to 2 if -Os is specified. - * final.c (max_labelno): New static variable. - (final_scan_insn): Check max_labelno before outputting an - alignment for a label. - (shorten_branches): Remove unused variable length_align. +Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com> -Tue Mar 3 14:27:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with + cpplib. + * cpplib.c (cpp_start_read): If in_fname is not initialized, try to + initialize it using fname. - * sparc.c (ultrasparc_adjust_cost): Add default case in - enumeration switch. +1998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu> - * sparc.h: Add prototypes for extern functions defined in - sparc.c. + * cpplib.c (do_include): Treat #include_next in the + primary source file as #include plus warning. Treat + #include_next in a file included by absolute path as an + error. fp == CPP_NULL_BUFFER is a fatal inconsistency. -Tue Mar 3 10:00:11 1998 Nick Clifton <nickc@cygnus.com> +Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * toplev.c: Only generate <name>.dbr file when dumping RTL if - DEALY_SLOTS is defined. + * cccp.c: Don't define MIN/MAX anymore. + * cpplib.c: Likewise. + * machmode.h: Likewise. + * system.h: Provide definitions for MIN/MAX. + +Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * fix-header.c: Don't define xstrdup here. + +Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (consec_sets_giv): New argument last_consec_insn. + (strength_reduce): Provide / use it. + +Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Tue Mar 3 07:36:37 1998 Manfred Hollstein <manfred@s-direktnet.de> + * loop.h (loop_info): New field 'vtop'. + * loop.c (check_dbra_loop): Use loop_info->vtop rather than + scanning loop for vtop. + * unroll.c (subtract_reg_term, find_common_reg_term): New functions. + (loop_iterations): Use them to determine if loop has a constant + number of iterations. Set loop_info->vtop. Don't subtract + common reg term from initial_value and final_value if have a + do-while loop. + +Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. + + * mn10300.md (bset, bclr): Operand 0 is a read/write operand. + + * mn10200.md (abssf2, negsf2): New expanders. - * reorg.c (fill_eager_delay_slots): Add new argument delay_list - in call to fill_slots_from_thread. + * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. + +Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com> -Mon Mar 2 13:45:03 1998 Richard Henderson <rth@cygnus.com> + * integrate.c (copy_rtx_and_substitute): If a SUBREG is + replaced by a CONCAT whose components do not have the same + mode as the original SUBREG, use a new SUBREG to restore the + mode. + + * emit-rtl.c (subreg_realpart_p): Cope with subregs containing + multiword complex values. - * alpha/linux.h (CPP_PREDEFINES): Correct connecting whitespace - to SUB_CPP_PREDEFINES. Reported by asun@saul4.u.washington.edu. +1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> -Mon Mar 2 22:59:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * cppalloc.c: Add xstrdup here. + * cpplib.h: Remove savestring prototype. + * cpplib.c: Remove savestring function. s/savestring/xstrdup/ + throughout. + * cppfiles.c: s/savestring/xstrdup/ throughout. - * final.c (insn_last_address, insn_current_align, uid_align): - New variables. - (in_align_chain, align_fuzz, align_shrink_fuzz): New functions. - (insn_current_reference_address): Likewise. - (shorten_branches, final_scan_insn): Implement LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros. - (label_to_alignment): New function. - * genattrtab.c (write_test_expr): If one of LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call - insn_current_reference_address instead of insn_current_address. - (or_attr_value, write_length_unit_log): New functions. - (main): Call write_length_unit_log. - (write_const_num_delay_slots): Output extra '\n'. - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): - replace with: - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER). - * i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise. - * arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with: - (LOOP_ALIGN). - * i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with: - (LABEL_ALIGN_AFTER_BARRIER). - * ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise. - * ns32k/tek6000.h: Likewise. - * i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete. - * i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of - ASM_OUTPUT_ALIGN_CODE. - -Mon Mar 2 01:05:50 PST 1998 Jeff Law (law@cygnus.com) +1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpplib.c: Make all directive handlers read their own + arguments. + (struct directive): Remove last two arguments from FUNC + member prototype. Remove `command_reads_line' member + entirely. + (directive_table): Remove initializations of + command_reads_line flag. Pretty-print. + (eval_if_expression, do_define, do_line, do_include, + do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, + do_else, do_elif, do_sccs, do_assert, do_unassert, + do_warning): Take only two args. + + (cpp_define): Call do_define with two args and the text to + define stuffed into a buffer. + (make_assertion): Call do_assert with two args. + (handle_directive): Call do_line with two args. Call + kt->func with two args. Remove command_reads_line + processing. + (do_define, do_undef, do_error, do_warning, do_pragma, + do_sccs): Read the rest of the line here. + (do_ident): Gobble rest of line, as cccp does. + (cpp_undef): New function. + (cpp_start_read): Call cpp_undef instead of do_undef. + +1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpphash.h (union hash_value): Remove `keydef' member, add a + `struct hashnode *aschain' member for #assert. + + * cpplib.c (struct tokenlist_list, struct + assertion_hashnode): Delete structure definitions. + (assertion_install, assertion_lookup, delete_assertion, + check_assertion, compare_token_lists, reverse_token_list, + read_token_list, free_token_list): Delete functions. + (parse_assertion): New function. + (cpp_cleanup): Don't destroy the assertion_hashtable. + + (do_assert): Gut and rewrite. #assert foo (bar) places + entries for `#foo' and `#foo(bar)' in the macro hash table, + type T_ASSERT. The value union's `aschain' member is used + to chain all answers for a given predicate together. + (do_unassert): Also rewritten. Take an un-asserted + answer off the chain from its predicate and call + delete_macro on the hashnode, or walk a predicate chain + calling delete_macro on all the entries. + (cpp_read_check_assertion): Simply call parse_assertion to + get the canonical assertion name, and look that up in the + hash table. + + * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): + Removed. + + * cpphash.c (install): Use bcopy instead of an explicit loop + to copy the macro name. + + * cppexp.c (cpp_lex): Convert the result of + cpp_read_check_assertion to a `struct operation' directly; + don't go through parse_number. + +Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.h (struct induction): Delete times_used member. + * loop.c (n_times_set): Rename to set_in_loop. Changed all users. + (n_times_used): Rename to n_times_set. Changed all users. + (scan_loop): Free reg_single_usage before strength reduction. + (record_giv, combine_givs): Remove handling of times_used member. + (combine_givs_used_once): Rename to: + (combine_givs_used_by_other) . Changed all callers. + +Tue Dec 15 01:45:26 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". + +Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com> + + * real.c (endian): Disable last change unless + HOST_BITS_PER_WIDE_INT is greater than 32. + +Mon Dec 14 17:13:36 1998 Andrew MacLeod <amacleod@cygnus.com> + + * output.h (force_data_section): New prototype. + * varasm.c (force_data_section): New function to force the + data section, regardless of what in_section thinks. + * dwarf2out.c (output_call_frame_info): Call force_data_section + since varasm may not realize we've changes sections. + +Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com> + + * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes + after completing reload. + + * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are + deleted after reload. + +Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) + + * rtl.h (multiple_sets): Fix prototype. + * rtlanal.c (multiple_sets): Fix return type. + +Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Mon Mar 2 00:52:18 PST 1998 Jeff Law (law@cygnus.com) +Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Sun Mar 1 18:25:49 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> +1998-12-13 Manfred Hollstein <manfred@s-direktnet.de> - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. + * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. +Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Sun Mar 1 18:26:21 1998 Ken Rose (rose@acm.org) + * rtl.h (recompute_reg_usage): Add second argument. + * flow.c (recompute_reg_usage): Likewise. + * toplev.c (rest_of_compilation): Supply second argument to + recompute_reg_usage. - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. + * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 + after reload. -Sun Mar 1 18:25:37 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> +Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) - * frame.c (start_fde_sort, fde_split, heapsort, fde_merge, - end_fde_sort): New functions for fast sorting of an FDE array. - (fde_insert): Simplified. - (add_fdes): Change argument list. - (frame_init): Use the new functions. + * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32. + (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. + (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, + mcpu32 or m5200. -Sun Mar 1 18:06:21 1998 Jeffrey A Law (law@cygnus.com) + * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. - * ginclude/va-ppc.h (va_arg): Fix typo in long long support. + * rtlanal.c (multiple_sets): New function. + * rtl.h (multiple_sets): Declare it. + * local-alloc.c (wipe_dead_reg): Use it. + * global.c (global_conflicts): Likewise. - * i386.c (reg_mentioned_in_mem): Fix dangling else statement. +Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com> - * fold-const.c (fold_range_test): Always return a value. + * global.c (record_conflicts): Don't use an array of shorts to + store an array of ints. + (global_conflicts): Likewise. -Sun Mar 1 17:57:34 1998 Mumit Khan <khan@xraylith.wisc.edu> +Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com> - * config/i386/winnt.c (i386_pe_unique_section): Put read-only - data in the text section unless READONLY_DATA_SECTION is defined. + * alpha.c (alpha_expand_block_move): mode_for_size expects + bits, not bytes. Infer extra alignment from addressof. -Sun Mar 1 17:48:46 1998 Jeffrey A Law (law@cygnus.com) +1998-12-11 Michael Meissner <meissner@cygnus.com> - * c-parse.in (undeclared variable error): Tweak error message to - be clearer. + * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the + .sbss section, not .sdata. -Sun Mar 1 10:22:36 PST 1998 Jeff Law (law@cygnus.com) +1998-12-11 Manfred Hollstein <manfred@s-direktnet.de> - * version.c: Bump for snapshot. + * cccp.c: Do not #include <sys/stat.h> here; this is already done + by "system.h". + * collect2.c: Likewise. + * cpplib.h: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * getpwd.c: Likewise. + * protoize.c: Likewise. + * toplev.c: Likewise. + + * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h" + and don't try to define it here. + * Makefile.in (cppmain.o): Depend on machmode.h. + (cpplib.o): Likewise. + (cpperror.o): Likewise. + (cppexp.o): Likewise. + (cppfiles.o): Likewise. + (cpphash.o): Likewise. + (cppalloc.o): Likewise. + (fix-header.o): Likewise. + (scan-decls.o): Likewise. -1998-02-28 Mark Mitchell <mmitchell@usa.net> - - * final.c (final_scan_insn): Undo overzealous removal of `set'. - -Sat Feb 28 07:54:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com> - * pa.h (CONST_COSTS): When checking the CONST_DOUBLE enumerated - case, add parentheses to specify the proper order of precedence in - the if-statement. + * sh.c (print_operand): Lookup interrupt_handler attribute instead + of relying on static variable. + * (calc_live_regs): Likewise. + * (sh_pragma_insert_attributes): Create interrupt_handler + attribute if a pragma was specified. + * (sh_valid_machine_decl_attribute): Don't set static flag. + * sh.h (PRAGMA_INSERT_ATTRIBUTES): New. +Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * c-aux-info.c: Include string.h/strings.h. - - * pa.c: Include stdlib.h. - (pa_combine_instructions): Prototype the function. - (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. - (reloc_needed): Add default case for enumeration switch. - (remove_useless_addtr_insns): Remove unused variable `all'. - (hppa_expand_prologue): Add explicit braces to avoid - ambiguous `else'. - (output_function_epilogue): Remove unused variable `i'. - (output_millicode_call): Remove unused variable `link'. - (shadd_constant_p, forward_branch_p): Make the function static. - (following_call): Explicitly declare to return int. - (pa_reorg): Declare as void. - (pa_combine_instructions): Declare as static void. Add - parentheses around && within ||. + * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START + to determine if a register is live at a jump destination. + Everything is dead at a BARRIER. - * pa.h: Add prototypes for pa_reorg, symbolic_operand, - following_call, function_label_operand, lhs_lshift_cint_operand - and zdepi_cint_p. +Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com> - * pa.md: Add parentheses around && within ||. + * cse.c (simplify_unary_operation): Sign-extend constants when + they have the most significant bit set for the target. + * real.c (endian): Sign-extend 32 bit output values on a 64 bit + host. + * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in + HOST_WIDE_INT temporary before negating it. + * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000. - * cppalloc.c: Include stdlib.h. +Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com> - * cpperror.c (cpp_print_containing_files): Remove unused variable - `i'. Fix format specifier in fprintf. + * objc/objc-act.c (lang_init_options): Enclose cpplib related code in + #if USE_CPPLIB. - * cse.c (cse_around_loop): Add explicit braces to avoid - ambiguous `else'. - (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. +Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * expr.c (expand_expr): Add parentheses around && within ||. + * collect2.h: New header file for prototypes. - * final.c (app_enable): Replace fprintf with fputs where there are - no format specifiers and no trailing argument after the string. - Eg, when printing ASM_APP_ON/ASM_APP_OFF. - (app_disable): Likewise. - (final_end_function): Likewise. - (final_scan_insn): Likewise. Remove unused variable `set'. - (profile_function): Wrap empty if-statement body in {} brackets. + * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. - * function.c: Include stdlib.h. - (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. - (reposition_prologue_and_epilogue_notes): Add parentheses - around assignment used as truth value. + * collect2.c: Include collect2.h. + * tlink.c: Likewise. - * integrate.c (expand_inline_function): Wrap variable - `cc0_insn' in macro HAVE_cc0. +Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) - * jump.c (jump_optimize): Wrap variable `q' in macro - HAVE_cc0. Remove unused variable `prev1'. + * flow.c: Update some comments. - * libgcc2.c (__bb_exit_trace_func): Add parentheses around && - within ||. Fix format specifier in fprintf. - (__bb_init_prg): Add parentheses around assignment used as - truth value. +Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com> - * local-alloc.c: Include stdlib.h. - (requires_inout): Add parentheses around assignment used - as truth value. + * objc/objc-act.c (cpp_initialized): Removed. + (lang_init_options): Initialize cpplib. + (lang_decode_option): Move initialization of cpplib to + lang_init_options. + * c-lang.c (parse_options,parse_in): Added. + (lang_init_options): Initialized cpplib here. + * c-decl.c (parse_options,cpp_initialized): Removed. + (c_decode_option): Move initialization of cpplib to + lang_init_options. - * loop.c (analyze_loop_iterations): Wrap prototype and definition - in macro HAVE_decrement_and_branch_on_count. - (insert_bct, instrument_loop_bct): Likewise. - (move_movables): Add parentheses around assignment used as - truth value. - (consec_sets_invariant_p): Likewise. - (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. +Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * objc/objc-act.c: Include stdlib.h. - (lookup_method_in_protocol_list): Wrap empty else-statement body - in braces. - (lookup_protocol_in_reflist): Likewise. - (objc_add_static_instance): Remove unused variables `decl_expr' - and `decl_spec'. - (get_objc_string_decl): Remove unused variable `decl'. - (generate_static_references): Remove unused variables `idecl' and - `instance'. - (check_protocols): Wrap empty else-statement body in braces. + * reload1.c (reload_combine, reload_combine_note_store): + Make STORE_RUID always valid. + (reload_combine): Check if BASE is clobbered too early. - * protoize.c: Include stdlib.h. - (substr): Add parentheses around assignment used as truth value. - (abspath): Likewise. - (shortpath): Likewise. +Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com> + + * reload.c (find_reloads): Display the insn that cannot be + reloaded. + +Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com> + + * cccp.c (create_definition): Fix end of buffer logic. + +Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function + pointer parameters changed to use the PARAMS() macro. + +Wed Dec 9 09:12:40 1998 Andrew MacLeod <amacleod@cygnus.com> - * regmove.c (fixup_match_1): Add parentheses around assignment - used as truth value. + * except.h (struct handler_info): Add handler_number field. + * except.c (gen_exception_label): EH labels no longer need to be + on the permanent obstack. + (get_new_handler): Set the label number field. + (output_exception_table_entry): Regenerate handler label reference + from the label number field. + (init_eh): Remove a blank line. + * integrate.c (get_label_from_map): Labels no longer need to be + on the permanent obstack. - * reload.c (push_secondary_reload): Remove unused variable `i'. - (find_reloads): Add parentheses around assignment used as truth - value. +Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com> - * reload1.c: Include stdlib.h. + * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand + only when OUTER_CODE is SET. - * rtl.h: Correct typo in prototype of offsettable_memref_p. - - * stmt.c (add_case_node): Add parentheses around assignment used - as truth value. - (case_tree2list): Likewise. - - * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' - in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable - `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. - (merge_attributes): Add explicit braces to avoid ambiguous - `else'. - - * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in - macro HAVE_cc0. - - * varasm.c: Include stdlib.h. +Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * loop.c (strength_reduce): If scan_start points to the loop exit + test, be wary of subversive use of gotos inside expression statements. + Don't set maybe_multiple for a backward jump that does not + include the label under consideration into its range. + * unroll.c (biv_total_increment): Make use of maybe_multiple field. - * system.h: Remove sys/stat.h. - * gcc.c: Add sys/stat.h. +Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * genattr.c: Wrap prototype of `free' in NEED_DECLARATION_FREE. - * genattrtab.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * tlink.c: Likewise. Also wrap `getenv' in NEED_DECLARATION_GETENV. + * explow.c (plus_constant_wide): Don't immediately return with + result of recursive call. -Fri Feb 27 11:02:47 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Tue Dec 8 15:32:56 1998 Andrew MacLeod <amacleod@cygnus.com> - * invoke.texi: Use @itemx for a secondary item in a @table. + * eh-common.h (struct eh_context): Add table_index for rethrows. - * config/m68k/m68k.md (movsf+1): Optimize moving a CONST_DOUBLE - zero. + * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. + (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be + processed when inlined or unrolled (ie duplicated in some way). + + * rtl.c (reg_note_name): Add strings for new reg_note enums. + + * expr.h (rethrow_libfunc): New library decl. + + * optabs.c (rethrow_libfunc): Initialize. + + * except.h (struct eh_entry): Add new field 'rethrow_label'. + (new_eh_region_entry): No longer exported from except.c. + (duplicate_handlers): Renamed to duplicate_eh_handlers and + different prototype. + (rethrow_symbol_map, rethrow_used): New exported functions. + (eh_region_from_symbol): New exported function. + + * except.c (create_rethrow_ref): New function to create a single + SYMBOL_REF for a rethrow region. + (push_eh_entry): Initialize a rethrow ref. + (func_eh_entry): Add a rethrow_label field. + (new_eh_region_entry): Make static, and initialize the rethrow entry. + (duplicate_eh_handlers): Create a new region, and remap labels/symbols. + (eh_region_from_symbol): Find an EH region based on its rethrow symbol. + (rethrow_symbol_map): Given a label map, maps a rethrow symbol for + a region into an appropriate new symbol. + (rethrow_used): Indicate whether a rethrow symbol has been referenced. + (expand_eh_region_end): Don't issue jump around code for new-exceptions. + (end_catch_handler): Emit a barrier for new-exceptions since + control can never drop through the end of a catch block. + (expand_end_all_catch): new-exceptions never fall through a catch + block. + (expand_rethrow): Use __rethrow routine for new exceptions. + (output_exception_table_entry): Generate rethrow labels, if needed. + (output_exception_table): Generate start and end rethrow labels. + (init_eh): Create rethrow symbols for beginning and end of table. + (scan_region): Don't eliminate EH regions which are the targets of + rethrows. + + * flow.c (make_edges): Add different edges for rethrow calls, + identified by having the REG_EH_RETHROW reg label. + (delete_unreachable_blocks): Don't delete regions markers which are + the target of a rethrow. + + * integrate.c (save_for_inline_eh_labelmap): New callback routine to + allow save_for_inline_copying to call duplicate_eh_handlers. + (save_for_inline_copying): Call duplicate_eh_handlers instead of + exposing internal details of exception regions. + (copy_for_inline): Check if SYMBOL_REFs need adjustment. + (expand_inline_function_eh_labelmap): New callback routine to + allow expand_inline_function to call duplicate_eh_handlers. + (expand_inline_function): Call duplicate_eh_handlers instead of + exposing internal details of exception regions. + (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST + flag is set. + + * libgcc2.c (find_exception_handler): Generalize to enable it to + pick up processing where it left off last time for a rethrow. + (__unwinding_cleanup): New function. debug hook which is called before + unwinding when __throw finds there is nothing but cleanups left. + (throw_helper): Common parts of __throw extracted out for reuse. + (__throw): Common parts moved to throw_helper. + (__rethrow): New function for performing rethrows. + +Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (current_function_decl): Tweak declaration. + +Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com> + + * c-decl.c (flag_isoc9x): Default off. + (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x. + * cccp.c (print_help, main): Likewise. + * gcc.c (default_compilers): Update for -std=gnu*. + +Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. + * demangle.h: Deleted. + + * reload1.c (current_function_decl): Declare. + +Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. + +Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. + +1998-12-08 Ulrich Drepper <drepper@cygnus.com> + + * configure.in: Test for availability of putc_unlocked, fputc_unlocked, + and fputs_unlocked. + * configure: Rebuilt. + * system.h: If the *_unlocked functions are available use them + instead of the locked counterparts by defining macros. + * config.in: Regenerated. + +Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com> + + * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is + wrong and should only be used for dump related things, not + debugging information, instead main_input_filename should be used. + Also, reuse output_file_directive if possible. + * i386/aix386ng.h (ASM_FILE_START): Likewise. + * i386/isc.h (ASM_FILE_START): Likewise. + * i386/win-nt.h (ASM_FILE_START): Likewise. + * i386/sun386.h (ASM_FILE_START): Likewise. + +Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com> + + * configure.in (mips*-*-linux*): Handle big and little endian + systems. + * configure: Rebuilt. + +Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com> + + * emit-rtl.c: Fix typo. -Thu Feb 26 00:13:21 1998 Ian Lance Taylor <ian@cygnus.com> +Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org> - * choose-temp.c: Fix handling of sys/file.h to work in libiberty. + * reload1.c (eliminate_regs): Don't do anything, if we're not + generating code. -Wed Feb 25 23:40:54 1998 Jeffrey A Law (law@cygnus.com) +Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com> - * i386.c (struct machine_function): Add new fields for PIC stuff. - (save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx - and pic_label_name. - (restore_386_machine_status): Corresponding changes. - (clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name. + * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. + Add comment. + * mips/mips.c (mips_select_section): Add comment. -Wed Feb 25 01:31:40 1998 Jeffrey A Law (law@cygnus.com) +Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com> - * c-parse.y (undeclared variable error): Tweak error message - to be clearer. + * cccp.c (ignore_escape_flag): Add support for \ as `natural' + characters in file names in #line to be consistent with #include + handling. We support escape processing in the # 1 "..." version of + the command. See also support in cp/lex.c. + (handle_directive): Likewise. + (do_line): Likewise. -Tue Feb 24 23:54:07 1998 Richard Henderson <rth@cygnus.com> +1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> - * flags.h (g_switch_value, g_switch_set): Declare. - * alpha.c (override_options): Set g_switch_value=8 if not set. - * alpha/elf.h (CC1_SPEC): New. - (ASM_SPEC): New. - (LINK_SPEC): Pass along the -G value we were given. - (LOCAL_ASM_OP): Remove. - (ASM_OUTPUT_ALIGNED_LOCAL): Output to .bss or .sbss by size. - (MAX_OFILE_ALIGNMENT): New. - (BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP): New. - (EXTRA_SECTIONS): Add sbss and sdata. - (SECTION_FUNCTION_TEMPLATE): New. - (EXTRA_SECTION_FUNCTIONS): Use it. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. - (SELECT_SECTION): Use sdata when small enough. - * alpha/linux.h (ASM_SPEC): Remove. + * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM + so it'll work on non-ASCII platforms. Always consider $ an + identifier character. Take no arguments. + (cpp_reader_init): Call initialize_char_syntax with no + arguments. + (cpp_start_read): Don't call initialize_char_syntax again. + Clear is_idchar['$'] and is_idstart['$'] if not + opts->dollars_in_ident. + * cpplib.h (struct cpp_reader): Replace void *data element by + cpp_options *opts. Rearrange elements to make gdb printout + less annoying (put buffer stack at end). + (CPP_OPTIONS): Get rid of now-unnecessary cast. -Mon Feb 23 15:09:18 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - * config.sub (sco5): Fix typo. + * cppmain.c: s/data/opts/ when initializing cpp_reader + structure. + * c-decl.c: Likewise. + * objc/objc-act.c: Likewise. + * fix-header.c: Likewise. -Mon Feb 23 18:19:31 1998 Manfred Hollstein <manfred@s-direktnet.de> +1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> - * config/t-linux (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Add macros and - set to empty. - * config/t-linux-aout (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Likewise. - * config/alpha/t-linux: Remove file. - * config/sparc/t-linux: Remove file. - * config/m68k/t-linux (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/m68k/t-linux-aout (LIBGCC1, CROSS_LIBGCC1): Likewise. - * configure.in (alpha*-*-linux-gnulibc1*): Use t-linux instead of alpha/t-linux - for tmake_file. - (alpha*-*-linux-gnu*): Likewise. - (sparc-*-linux-gnulibc1*): Use t-linux instead of sparc/t-linux for tmake_file. - (sparc-*-linux-gnu*): Likewise. + * cpplib.h (struct cpp_buffer): Replace dir and dlen members + with a struct file_name_list pointer. + (struct cpp_reader): Add pointer to chain of `actual + directory' include searchpath entries. + (struct file_name_list): Add *alloc pointer for the sake of + the actual-directory chain. -Mon Feb 23 10:47:39 1998 Robert Lipe <robertl@dgii.com> - * collect2.c (ldd_file_name): Bracket declaration with same - manifests as use. - (full_real_ld_suffix): Deleted. Variable was calloced and - written into, but never read. + Move definition of HOST_WIDE_INT here. + (cpp_parse_escape): Change prototype to match changes in + cppexp.c. -1998-02-23 Mike Stump <mrs@wrs.com> + * cppfiles.c (actual_directory): New function. + (finclude): Use it to initialize the buffer's actual_dir + entry. + (find_include_file): We don't need to fix up max_include_len + here. - * configure.in: Add support for i386-wrs-vxworks configuration. - * i386/vxi386.h: New file. + * cpplib.c (do_include): Don't allocate a file_name_list on + the fly for current directory "" includes, use the one that's + been preallocated in pfile->buffer->actual_dir. Hoist out + duplicate code from the search_start selection logic. + (cpp_reader_init): Initialize pfile->actual_dirs. -Sun Feb 22 21:16:51 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> + Remove definition of HOST_WIDE_INT. Change calls + to cpp_parse_escape to match changes in cppexp.c (note + hardcoded MASK, which is safe since this is the source + character set). - * tree.c (contains_placeholder_p): Ensure function always returns - a value. - * sparc.md (movdi_sp64_insn): Add default case in enumeration switch. - (movsf_const_insn, movdf_const_insn, movtf_const_insn): Likewise. + * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c + to handle wide character constants in #if directives. The + function now returns a HOST_WIDE_INT, and takes a third + argument which is a binary mask for all legal values (0x00ff + for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define + MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of + cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c] -Sun Feb 22 20:58:19 1998 Jeffrey A Law (law@cygnus.com) +Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com> - * vms.h (SELECT_SECTION): Use TREE_CODE_CLASS correctly. + * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. -1998-02-22 Paul Eggert <eggert@twinsun.com> +Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): - Define this new symbol. - (DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef. - * toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if - LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. + * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB. + * cppalloc.c: Move function `xcalloc' from cpplib.c to here. + * cpplib.c: Move function `xcalloc' from here to cppalloc.c. -Sun Feb 22 20:07:32 1998 Jim Wilson <wilson@cygnus.com> +Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com> - * iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. + * final.c (output_asm_name): Use tabs to separate comments from + assembly text. -Sun Feb 22 15:29:48 1998 Richard Henderson <rth@cygnus.com> + Include instruction lengths (if defined) in output. - * objc/Object.m (-error): Call objc_verror with our va_list. +Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Sun Feb 22 09:45:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value + in the loop_info structure. - * collect2.c (scan_prog_file): Completely cover uses of variable - `exports' with macro COLLECT_EXPORT_LIST. +Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com> + + * configure.in (arm*-*-ecos-elf): New target. + * configure: Regenerated. + * config/arm/elf.h (ASM_WEAKEN_LABEL): Define. + * config/arm/ecos-elf.h: New file. + * config/arm/unknown-elf.h (TARGET_VERSION): Check + for redefinition. + +Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.c (output_far_jump): Emit braf only for TARGET_SH2. -Sat Feb 21 20:36:23 1998 Jeff Law (law@cygnus.com) +Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Fri Feb 20 16:22:13 1998 Michael Meissner <meissner@cygnus.com> +Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * sched.c (schedule_block): Remove code to get arguments from hard - regs into pseudos early. Same as Aug 25, 1997 change to - haifa-sched.c. + * loop.c (check_dbra_loop): New argument loop_info. Update fields + as needed. -1998-02-20 Jason Merrill <jason@yorick.cygnus.com> +Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) - * collect2.c (main): Still handle !do_collecting for non-AIX targets. + * version.c: Bump for snapshot. -1998-02-16 Mark Mitchell <mmitchell@usa.net> +Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - * toplev.c (rest_of_compilation): Do not defer the output of a - nested function. + * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger + compressed reports are ok and preferred over URLs. -Fri Feb 20 10:39:47 1998 Michael Tiemann <michael@impact.tiemann.org> +Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - * ginclude/va-mips.h (va_arg): Remove trailing space after '\' - continuation character (line 243). + * invoke.texi (Warning Options): Soften the tone of -pedantic. -Fri Feb 20 12:10:26 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) - * genrecog.c (main): Remove duplicated sentence in emitted comment. + * print-rtl.c (print_rtx): Add prototype. -Thu Feb 19 22:36:53 1998 Andrey Slepuhin <pooh@msu.net> - David Edelsohn <edelsohn@mhpcc.edu> + * unroll.c (iteration_info): Make it static. - * collect2.c (XCOFF_SCAN_LIBS): Remove. - (export_flag): New variable. - (export_file): #ifdef COLLECT_EXPORT_LIST. - (import_file, exports, imports, undefined): New variables. - (libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same. - (dump_list, dump_prefix_list, is_in_list): New functions. - (write_export_file): $ifdef COLLECT_EXPORT_LIST. - (write_import_file, resolve_lib_name): New functions. - (use_import_list, ignore_library): Same. - (collect_exit): maybe_unlink import_file and #ifdef. - (handler): Same. - (main): New variable importf, #ifdef exportf. Move parsing of - -shared before general argument parsing. Resolve AIX library - paths and import libgcc.a symbols. Treat .so shared libraries the - same as objects and .a libraries. Create alias for object_lst and - increment it instead of original pointer. Scan AIX libraries as - objects earlier instead of using scan_libraries. Perform AIX - tlink later to resolve templates instead of forking ld. - (GCC_OK_SYMBOL): Ensure symbol not in undef section. - (GCC_UNDEF_SYMBOL): New macro. - (scan_prog_file): Loop for members of AIX libraries. Handle - export/import of ctors/dtors. - (aix_std_libs): New variable. - (scan_libraries, XCOFF): Delete. +Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com> -Thu Feb 19 22:36:52 1998 Robert Lipe <robertl@dgii.com> + * alias.c (memrefs_conflict_p): A second ANDed address + disables the aligned address optimization. - * collect2.c (full_real_ld_suffix): #ifdef CROSS_COMPILE. +Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com> -1998-02-19 Mike Stump <mrs@wrs.com> + * alpha.c (alpha_emit_set_const_1): Fix parenthesis error + in -c << n case. - * Makefile.in: Use $tooldir for sys-include to match toplevel - configure. +Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com> -Thu Feb 19 01:32:37 1998 Jeffrey A Law (law@cygnus.com) - Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * i960.h (BOOL_TYPE_SIZE): Define. - * emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__. +Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. + * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality + from old valid_parallel_operands_4. + (valid_parallel_operands_4): Check that operands for 4 operand + parallel insns are valid, excluding load/store insns. + * config/c4x/c4x.h (valid_parallel_load_store): Add prototype. + * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use + valid_parallel_load_store instead of valid_parallel_operands_4. + (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, + *negqf2_movqf_clobber, *absqi2_movqi_clobber, + *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber, + *notqi_movqi_clobber): Use valid_parallel_operands_4. + (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber, + *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber, + *subqi3_movqi_clobber): Use valid_parallel_operands_5. - * combine.c: Revert previous patch. +Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -1998-02-19 Paul Eggert <eggert@twinsun.com> + * config/c4x/c4x.c (iteration_info): Delete extern. - * config/sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using the - system linker. +Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Thu Feb 19 00:46:59 1998 Jeffrey A Law (law@cygnus.com) + * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. - * loop.c (force_movables): Fix typo. + * final.c (cleanup_subreg_operands): Delete some unused code. -Thu Feb 19 08:26:30 1998 Manfred Hollstein <manfred@s-direktnet.de> + * recog.h (MAX_RECOG_ALTERNATIVES): New macro. + (struct insn_alternative): New structure definition. + (recog_op_alt): Declare variable. + (preprocess_constraints): Declare function. + * recog.c (recog_op_alt): New variable. + (extract_insn): Verify number of alternatives is in range. + (preprocess_constraints): New function. + * reg-stack.c: Include recog.h. + (constrain_asm_operands): Delete. + (get_asm_operand_lengths): Delete. + (get_asm_operand_n_inputs): New function. + (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and + N_OUTPUTS args. All callers changed. + Compute number of inputs and outputs here by calling + get_asm_operand_n_inputs. + Instead of constrain_asm_operands, call extract_insn, + constrain_operands and preprocess_constraints. Use information + computed by these functions throughout. + (record_reg_life): Delete code that is unused due to changes in + record_asm_reg_life. + (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, + N_INPUTS and N_OUTPUTS args. All callers changed. + Similar changes as in record_asm_reg_life. + (subst_stack_regs): Move n_operands declaration into the if statement + where it's used. + Delete code that is unused due to changes in subst_asm_stack_regs. + * stmt.c (expand_asm_operands): Verify number of alternatives is in + range. + * Makefile.in (reg-stack.o): Depend on recog.h. - * m88k.h: Change file pattern to match reality. +Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) -Wed Feb 18 23:19:52 1998 Jeffrey A Law (law@cygnus.com) + * except.c (set_exception_version_code): Argument is an "int". - * varasm.c (output_constant_pool): Fix dumb thinko in last - change. +Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Correctly translate from - a function name to a section name. + * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. + * configure: Rebuilt. -1998-02-18 Doug Evans <devans@cygnus.com> +Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com> - * tree.h (merge_machine_{type,decl}_attributes): Declare. - (split_specs_attrs, strip_attrs): Add prototypes. - * tree.c (merge_machine_{type,decl}_attributes): New functions. - * c-decl.c (duplicate_decls): Call merge_machine_decl_attributes. - Update olddecl's attributes too. - * c-common.c (strip_attrs): New function. - * c-typeck.c (common_type): Call merge_machine_type_attributes. - * varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P. - (make_decl_rtl): Likewise. + * configure.in (mipsel-*-linux*): New target. + * mips/linux.h: New file, based on other Linux targets. -1998-02-18 Jim Wilson <wilson@cygnus.com> +Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com> - * c-decl.c (shadow_tag_warned): Call split_specs_attrs. + * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook + runs in the context of the deleter, not the deletee, so we must + use taskVarGet to find the correct memory to free. + (__gthread_key_create): Initialize the task + variable subsystem so that the task variable is still active when + the delete hook is run. -Wed Feb 18 09:09:50 1998 Jeffrey A Law (law@cygnus.com) +1998-12-03 Joseph S. Myers <jsm28@cam.ac.uk> - Remove this change until we can fix it correctly. - * collect2.c: Bracket declaration of 'exportf' and - 'full_real_ld_suffix'. + * pdp11.h: Use optimize_size for space optimizations. + * pdp11.c: Likewise. + * pdp11.md: Likewise. -Wed Feb 18 08:44:25 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> + * pdp11.h (TARGET_40_PLUS): Fix typo. - * Makefile.in (STAGESTUFF): Add genrtl.c, genrtl.h and gengenrtl. +Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) -Tue Feb 17 23:30:20 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> + * local-alloc.c (block_alloc): Slightly retune heuristic to widen + qty lifetimes. - * c-common.c (c_expand_start_cond, c_expand_end_cond, - c_expand_start_else): Don't warn about non-ambiguous else even if - braces are missing. +Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Tue Feb 17 23:56:50 1998 Robert Lipe <robertl@dgii.com> + * alias.c (addr_side_effect_eval): New function. + (memrefs_conflict_p): Use it. + * rtl.h (addr_side_effect_eval): Prototype it. - * sco5.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_LONG_DOUBLE): Delete. Use the ones from i386.h - instead. +1998-12-02 Joseph S. Myers <jsm28@cam.ac.uk> -Tue Feb 17 22:56:14 1998 Richard Henderson <rth@cygnus.com> + * pdp11.md (extendsfdf2): Fix mode mismatch in SET. - * combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when - simplifying a subreg of a hard reg. - (expand_compound_operation): Likewise. - (force_to_mode): Likewise. +Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com> -Tue Feb 17 22:37:22 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * reload.c (find_reloads): When force const to memory, put result + in substed_operand not *recog_operand_loc. - * fold-const.c: Include "system.h" to get stdlib.h and stdio.h. - (lshift_double): Add parentheses around + or - inside shift. - (rshift_double): Likewise. - (size_int_wide): Explicitly set type of `bit_p' to `int'. +1998-12-02 Ulrich Drepper <drepper@cygnus.com> - * Makefile.in (fold-const.o): Depend on system.h. + * c-lex.c: Fix indentation from last patch. + Remove trailing whitespace. + * real.c: Likewise. - * Makefile.in (gcc.o): Depend on system.h, in accordance with last - change to gcc.c. +Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) - * haifa-sched.c: Include "system.h" to get <stdlib.h> and <stdio.h>. - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (sched_note_set): Remove unused parameter `b', all callers changed. - (schedule_block): Likewise for `rgn'. - (split_hard_reg_notes): Likewise for `orig_insn'. - (check_live): Likewise for `trg'. - (update_live): Likewise. - (check_live_1): Explcitly declare variable `i' as int. - (update_live_1): Likewise. - (insn_issue_delay): Remove unused variable `link'. - (sched_analyze_2): Add default case in enumeration switch. - (schedule_insns): Remove unused variable `i'. + * flow.c (delete_block): Call set_last_insn after we have reset + NEXT_INSN (kept_tail). - * Makefile.in ($(SCHED_PREFIX)sched.o): Depend on system.h. +Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) -Tue Feb 17 22:31:04 1998 Jeffrey A Law (law@cygnus.com) + * mips.md (trap_if): Use "$0" for the value zero. - * loop.c (rtx_equal_for_loop_p): Add some braces to disambiguate - a dangling else clause. +Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com> + Stephen L Moshier <moshier@world.std.com> + Richard Henderson <rth@cygnus.com> -Tue Feb 17 21:28:12 1998 Gavin Koch <gavin@cygnus.com> + * c-common.c (declare_function_name): Declare predefined variable + `__func__'. - * mips/mips.h (CAN_ELIMINATE): Don't eliminate the frame - pointer for the stack pointer in MIPS16 and 64BIT. + * c-decl.c (flag_isoc9x): Set to 1 by default. + (c_decode_option): Handle -std= option. Remove -flang-isoc9x. + (grokdeclarator): Always emit warning about implicit int for ISO C 9x. -Tue Feb 17 21:17:30 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * c-parse.in: Allow constructors in ISO C 9x. + Rewrite designator list handling. + Allow [*] parameters. + Don't warn about comma at end of enum definition for ISO C 9x. - * rtl.h (force_line_numbers, restore_line_number_status): Declare. - * emit-rtl.c (force_line_numbers, restore_line_number_status): - New functions. - * stmt.c (struct nesting): Replace seenlabel with line_number_status. - (expand_start_case): Adjust to this change. - (check_seenlabel): New function. - (pushcase, pushcase_range, expand_endcase): Use it. + * cccp.c (c9x): New variable. + (rest_extension): New variable. + (print_help): Document new -std= option. + (main): Recognize -std= option. Set c9x appropriately. + (create_definition): Recognize ISO C 9x vararg macros. -Tue Feb 17 10:14:32 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * gcc.c (default_compilers): Adjust specs for -std options. + (option_map): Add --std. + (display_help): Document -std. - * i386.md (adddi3): Add =!r,0,0,X alternative. + * toplev.c (documented_lang_options): Add -std and remove + -flang-isoc9x. -Mon Feb 16 16:13:43 1998 David Edelsohn <edelsohn@mhpcc.edu> + * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF + or REAL_VALUE_HTOF based on base of the constants. + * fold-const.c (real_hex_to_f): New function. Replacement function + for hex FP conversion if REAL_ARITHMETIC is not defined. + * real.c (asctoeg): Add handling of hex FP constants. + * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or + real_hex_to_f. - * rs6000.h (MY_ISCOFF): Add numeric value of U803XTOCMAGIC. - * x-aix31 (INSTALL): Delete. +Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com> -Mon Feb 16 09:24:32 1998 Gavin Koch <gavin@cygnus.com> + * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add + -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro + expansion. Use hi/lo as destination register. + (div_trap): New. + (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*, + umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking. + Avoid as macro expansion. Use hi/lo as destination register. - * mips/mips.c (mips_expand_epilogue): Update tsize_rtx if - tsize changes to something other than zero. + * mips.h (MASK_CHECK_RANGE_DIV): New. + (MASK_NO_CHECK_ZERO_DIV): New. + (ELIMINABLE_REGS): Added GP_REG_FIRST + 31. + (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting + return address for leaf functions out of r31 to support + builtin_return_address. -Mon Feb 16 09:11:48 1998 Gavin Koch <gavin@cygnus.com> +Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * ginclude/va-mips.h: Replace casts of pointers to int with - casts of pointers to __PTRDIFF_TYPE__. + * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x), + NEXT_INSN(x) to check insn x. -Mon Feb 16 08:17:14 1998 John Carr <jfc@mit.edu> +Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com) - * loop.c (strength_reduce, record_biv, record_giv): Use - HOST_WIDE_INT_PRINT_DEC to print CONST_INT values. + * flow.c (delete_block): Call set_last_insn if we end up deleting the + last insn in the rtl chain. -1998-02-16 Jason Merrill <jason@yorick.cygnus.com> + * reload1.c (reload): Do not set reload_completed or split insns + here. Instead... + * toplev.c (rest_of_compilation): Set reload_completed after + reload returns. Split insns after reload_cse has run. - * tree.c (first_rtl_op): New fn. - (unsave_expr_now): Use it. - * print-tree.c (print_node): Likewise. - * tree.c (has_cleanups): New fn. - * fold-const.c (fold, case CLEANUP_POINT_EXPR): Use it. Be more - conservative about pushing the cleanup point down. - * tree.h: Declare them. +Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com> -Sun Feb 15 23:28:44 1998 Jeffrey A Law (law@cygnus.com) + * final.c (final_scan_insn): Abort if block_depth falls below 0. - * toplev.c (flag_schedule_reverse_before_reload): Delete variable. - (flag_schedule_reverse_after_reload): Likewise. - (f_options): Remove reverse scheduling support. - * flags.h (flag_schedule_reverse_before_reload): Delete declaration. - (flag_schedule_reverse_after_reload): Likewise. - * haifa-sched.c (rank_for_schedule): Remove support for reverse - scheduling. +Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com> -Sun Feb 15 21:33:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc. - * gcc.c: Get system includes, prototypes and macros via "system.h" - instead of doing it manually. Change all calls of the ctype - macros to custom versions defined in "system.h". +Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com> - * system.h: Fix return type of bcmp prototype from `void' to `int'. - Make bcopy, bcmp and bzero prototypes explicitly `extern'. - Add a prototype for getenv. + * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove + use of user-label_prefix. -Sun Feb 15 17:05:41 1998 Jim Wilson <wilson@cygnus.com> +Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. + * reload1.c (emit_reload_insns): Clear spill_reg_store + when doing a new non-inherited reload from the same pseudo. -Sun Feb 15 15:23:15 1998 John Carr <jfc@mit.edu> + * local-alloc.c (function_invariant_p): New function. + (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P + to decide if an equivalence should be recorded. + * reload1.c (num_eliminable_invariants): New static variable. + (reload): Set it. Use function_invariant_p instead of CONSTANT_P + to decide if an equivalence should be recorded. + Unshare PLUS. + (calculate_needs_all_insns): Skip insns that only set an equivalence. + Take num_eliminable_invariants into account when deciding + if register elimination should be done. + (reload_as_needed): Take num_eliminable_invariants into account + when deciding if register elimination should be done. + (eliminate_regs): Handle non-constant reg_equiv_constant. + * rtl.h (function_invariant_p): Declare. - * alias.c: Include <stdlib.h> and <string.h>. - (init_alias_analysis): Pass NULL_RTX instead of 0 to record_set. +Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) -Sat Feb 14 11:23:09 PST 1998 Jeff Law (law@cygnus.com) + * version.c: Bump for snapshot. + +Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Sat Feb 14 05:08:21 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] when compiling hard - float. - (movdfcc): Only accept fpu_add_operand for operands[3]. - - * arm/t-semi (STMP_FIXPROTO): Define to nothing. - * arm/t-semiaof (STMP_FIXPROTO): Likewise. - -Sat Feb 14 02:02:41 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (output_constant_pool): Bring back 'done' label inside - an appropriate #ifdef. - - * bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an - appropriate #ifdef. - (bitmap_copy, bitmap_operation): Likewise. - * combine.c (combinable_i3pat): Similarly for 'src'. - * function.c (fixup_var_refs_1): Similarly for 'outerdest'. - (locate_and_pad_parm): Similarly for 'reg_parm_stack_space'. - * regclass.c (copy_cost): Similarly for 'secondary_class'. - * reload.c (make_memloc): Simliarly for 'i'. - (find_reloads_address_1): Similarly for 'link'. - * reload1.c (reload): Similarly for 'previous_frame_pointer_needed'. - (emit_reload_insns): Similarly for 'second_reloadreg'. - * unroll.c (iteration_info): Similarly for 'v'. - - * caller-save.c (insert_save_restore): Remove unused variable 'i'. - * calls.c (expand_call): Similarly for 'i'. - (emit_library_call, emit_library_call_value): Similarly for 'mode'. - * fold-const.c (strip_compund_expr): Similarly for 'type'. - * function.c (fixup_var_refs_1): Similarly for 'width'. - (fixup_memory_subreg): Similarly for 'saved'. - (locate_and_pad_parm): Similarly for 'boundary_in_bytes.' - (setjmp_protect): Similarly for 'sub'. - (thread_prologue_and_epilogue_insns): Similarly for 'insn'. - * loop.c (record_giv): Similarly for 'p'. - (combine_givs): Similarly for 'temp_iv'. - (indirect_jump_in_function_p): Similarly for 'is_indirect_jump'. - * recog.c (validate_replace_rtx_1): Similarly for 'width'. - * tree.c (get_set_constructor_bytes): Similarly for 'vals'. - * unroll.c (unroll_loop): Similarly for 'copy'. - (iteration_info): Similarly for 'b'. - * varasm.c (assemble_string): Similarly for 'i'. - * i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'. - -1998-02-13 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it - -Fri Feb 13 14:38:34 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (decl_scope_node): New type. - (decl_scope_table): Change type to use it. - (decl_scope_table_allocated, decl_scope_depth): Change type to int. - (push_decl_scope): Use new type. New locals containing_scope, i. - Add code to handle setting previous field. - (scope_die_for): Change type of local i to int. Add code to use - previous field. - (dwarf2out_init): Use new type. - -1998-02-13 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (emit_throw): Lose throw_used. - -Fri Feb 13 20:36:05 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (update_flow_info, REG_WAS_0): Ignore if setting insn - was deleted. - * haifa-sched.c (update_flow_info, REG_WAS_0): Likewise. - -Fri Feb 13 12:18:40 1998 Jeffrey A Law (law@cygnus.com) - - * genextract.c (main): Fix typo. - -Fri Feb 13 08:41:49 1998 Robert Lipe <robertl@dgii.com> - - * c-lang.c (finish_file): Bracket declaration of static_ctors, - static_dtors. - - * calls.c (expand_call): Bracket declaration of 'rtx_before_call', - 'old_stack_arg_under_construction' - (emit_library_call): Bracket declaration of 'upper_bound', - 'lower_bound', 'i', 'reg_parm_stack_space' - (emit_library_call_value): Likewise. - (store_one_arg): +Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com> + + * except.c (add_new_handler): Complain about additional handlers + after one that catches everything. + +Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha*-*-netbsd): Fix typo. + * configure: Rebuilt. - * collect2.c: include <unistd.h> when appropriate. - Bracket declaration of 'exportf' and 'full_real_ld_suffix'. +Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * emit-rtl.c (prev_cc0_setter): Remove unused variable 'link'. + * system.h: Include libiberty.h. - * explow.c (plus_constant_for_output_wide): Remove unused variable - 'code'. - (memory_address): Remove unused variable 'orig_x'. + * c-aux-info.c: Remove prototypes for concat/concat3. Change + function `concat' from fixed parameters to variable parameters, + as is done in libiberty. All callers of concat/concat3 + changed to use the new `concat' with variable args. + + * cccp.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + * cexp.y: Likewise. + * collect2.c: Likewise. + * config/1750a/1750a.h: Likewise. + * cppalloc.c: Likewise. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.c: Likewise. + * cpplib.c: Likewise. + * dyn-string.c: Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * genattr.c: Likewise. + * genattrtab.c: Likewise. + * gencheck.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * gengenrtl.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * getpwd.c: Likewise. + * halfpic.c: Likewise. + * hash.c: Likewise. + * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes + in NEED_DECLARATION_* macros. - * genattrtab.c (make_canonical): Remove unreferenced label 'cond:'. - (write_const_num_delay_slots): Remove unused variable 'i'. + * mips-tfile.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + (fatal): Fix const-ification of variable `format' in + !ANSI_PROTOTYPES case. - * genopinit.c (main): Remove unused variables 'dummy', 'insn_ptr'. - (gen_insn): Remove unused variable 'obstack_ptr'. + * prefix.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. - * libgcc2.c (__bb_exit_func): Remove unused variables 'ret', - 'j', 'tmp', 'i'. - (__bb_exit_trace_func): Remove unused variable 'e'. + * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid + conflicting with function `spaces' from libiberty. - * optabs.c (expand_binop): remove unused variables 'lhs', 'rhs', - 'funexp'. - (expand_unop): Remove unused variable 'funexp'. - (expand_complex_abs): Remove unused variable 'funexp'. - (init_optabs): Bracket declaration of 'j'. - (init_complex_libfuncs): Deleted. Dead static function. + * profile.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + * protoize.c: Likewise. + * rtl.h: Likewise. + * scan.h: Likewise. + * tlink.c: Likewise. + * toplev.c: Likewise. + * toplev.h: Likewise. + * tree.h: Likewise. - * profile.c (branch_prob): Remove unused variables 'insn', 'dest'. +Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reg-stack.c: Fix typo in proto for 'get_asm_operand_lengths' - (reg_to_stack): 'initialized', 'before_function_beg' - explictly type as ints instead of defaulting. - (emit_swap_insn): Remove unused variable 'i2'. - (compare_for_stack_reg): Remove unused variable 'src_note'. + * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. - * rtlanal.c (computed_jump_p): Remove unused variable 'computed_jump'. +Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * sched.c (actual_hazard): Bracket declaration of 'this_cost'. + * README.C4X: Updated URLs. + * config/c4x/c4x.c (c4x_address_conflict): Fix typo. + (valid_parallel_operands_5): Remove unused variable. - * stmt.c (add_case_node): Add parens for assignment used as truth. - (all_cases_count): Remove unused variable 'count_high'. - (mark_seen_cases): Remove unused variable 'i'. - (check_for_full_enumeration_handling): Remove unused variable 't'. - Bracket declaration of 'all_values', 'l'. +Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * tlink.c: Include <stdlib.h>, <unistd.h>, <string.h>/<strings.h>. + * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. - * varasm.c (assemble_string): Remove unused variable 'i'. - (immed_double_const): Remove unused variable 'in_current_obstack'. - (immed_real_const_1): Likewise. - (output_constant_pool): Remove unreferenced label 'done'. - (output_constant): Remove unused variable 'x'. +1998-11-26 Manfred Hollstein <manfred@s-direktnet.de> - * i386/i386.h (ENCODE_SECTION_INFO): TREE_PUBLIC is an int, not - a string. + * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages + which can be configured. + (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@ + (Makefile): Pass actual LANGUAGES through the environment when + re-configuring. + (cstamp-h): Likewise. + (config.status): Likewise. - * i386/sco5.h (ASM_OUTPUT_ASCII): Add parens for assignment used - as truth. + * configure.in (enable_languages): Add new configuration parameter + "--enable-languages=lang1,lang2,...". + (${srcdir}/*/config-lang.in): Change handling to configure only + those directories, that the user might have enabled; default to + "all" existing languages. + * configure: Regenerate. -Fri Feb 13 10:21:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (regs_set_between_p): New function. + * rtl.h (regs_set_between_p): Prototype it. + * jump.c (jump_optimize): Use it instead of modified_between_p + in the Sep 2 change. + +Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au> + Matthias Pfaller <leo@dachau.marco.de> + + * invoke.texi (Option Summary, NS32K Options): Add description + of NS32K specific options. + + * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2, + fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2, + fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3, + negdf2, absdf2): Use l instead of f since the double class and + float class are no longer the same. + (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3, + divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2, + ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...): + Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been + fixed. + (cmpsi, cmphi, cmpqi): Use general_operand instead of + non_immediate_operand. Removes erroneous assumption that can't + compare constants. + (movsf, movsi, movhi, movqi,...): New register numbering scheme. + (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded + constants. + (movstrsi, movstrsi1, movstrsi2): Completely new block move + scheme. + (...): Patterns to exploit multiply-add instructions. + (udivmodsi4, udivmodsi_internal4, udivmodhi4, + udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New + patterns to exploit extended divide insns. + (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi + etc patterns. + + * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex + float return values as well as simple scalar floats. + (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES): + Support new flag to denote 32381 fpu. + (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081. + (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not + compiling for 32381. + (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, + REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES, + REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM, + L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, + LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES, + REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS, + REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, + REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P, + REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381 + fpu registers and special register classes for new 32381 + instructions dotf and polyf. + (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to + be tieable. + (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX, + INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is + required. + (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option. + (MOVE_RATIO): Set to zero because of smart movstrsi implementation. + (REGISTER_MOVE_COST): Move code to register_move_cost function for + ease of coding and debugging. + (CLASS_LIKELY_SPILLED_P): Under new register scheme class + LONG_FLOAT_REGO is likely spilled but not caught by default + definition. + (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro + instead of hard coded numbers in range check. + (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused. + (...): Add prototypes for functions in ns32k.c but disable because + of problems when ns32k.h is included in machine independent files. + + * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h". + (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names, + hard_regno_mode_ok, secondary_reload_class, + print_operand, print_operand_address): New register scheme to + include 32381 fpu registers and special register classes for new + 32381 instructions dotf and polyf. + (gen_indexed_expr): Make static to keep namespace clean. + (check_reg): Remove since never called. + (move_tail, expand_block_move): Helper functions for "movstrsi" + block move insn. + (register_move_cost): Helper function for REGISTER_MOVE_COST macro. + Increase cost of moves which go via memory. + * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag. + (CPP_PREDEFINES): No longer predefine "unix". + + * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...): + Remove erroneous %$. print_operand() can work out from the rtx is + an immediate prefix is required. + + * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling + convention. + (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of + pic operands. + + * ns32k.c (symbolic_reference_mentioned_p, print_operand): + Correct handling of pic operands. + (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p, + ns32k_comp_type_attributes, ns32k_return_pops_args): Support for + -mrtd calling convention. + +Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com> + + * gcc.c (option_map): Recognize --output-class-directory. + +Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.h (precondition_loop_p): Added new mode argument. + * unroll.c (precondition_loop_p): Likewise. + (approx_final_value): Function deleted and subsumed + into loop_iterations. + (loop_find_equiv_value): New function. + (loop_iterations): Use loop_find_equiv_value to find increments + too large to be immediate constants. Also use it to find terms + common to initial and final iteration values that can be removed. + +Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.h (struct loop_info): Define new structure. + (precondition_loop_p): Added prototype. + (unroll_loop): Added new argument loop_info to prototype. + (final_biv_value, final_giv_value): Added new argument n_iterations + to prototype. + * loop.c (strength_reduce): Declare new structure loop_iteration_info + and new pointer loop_info. + (loop_n_iterations): Replace global variable by element in + loop_info structure. + (check_final_value): New argument n_iterations. + (insert_bct): New argument loop_info. + (loop_unroll_factor): Replace global array by element in + loop_info structure. + (loop_optimize): Remove code to allocate and initialize + loop_unroll_factor_array. + * unroll.c (precondition_loop_p): No longer static since + used by branch on count optimization. + (precondition_loop_p, unroll_loop): New argument loop_info. + (final_biv_value, final_giv_value, find_splittable_regs): New + argument n_iterations. + (loop_iteration_var, loop_initial_value, loop_increment, + loop_final_value, loop_comparison_code, loop_unroll_factor): + Replaced global variables by loop_info structure. + (loop_unroll_factor): Replace global array by element in + loop_info structure. + +Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn + when loop reversed. + + * unroll.c (precondition_loop_p): Return loop_initial_value + for initial_value instead of loop_iteration_var. + +Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md: Fix minor formatting problems. Update docs. + (*b, *b_rev, *b_noov, *b_noov_rev, *db, + decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch + to output the instruction sequences. + (rpts): Delete. + (rptb_top): Provide alternatives to use any register or memory + for loop counter. + (rptb_end): Emit use of operands rather than assigning them + explicitly to the RS and RE registers. + +Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p, + c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p, + c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg, + c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, + c4x_merge_notes, c4x_parallel_process, + c4x_combine_parallel_independent, c4x_combine_parallel_dependent, + c4x_combine_parallel): Delete. + +Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_override_options): For compatibility + with old target options clear flag_branch_on_count_reg if + -mno-rptb specified and set flag_argument_alias is -mno-aliases + specified. + (c4x_output_cbranch): Handle a sequence of insns rather than a + single insn. + (c4x_rptb_insert): Do not emit a RPTB insn if the RC register + has not been allocated as the loop counter. + (c4x_address_conflict): Do not allow two volatile memory references. + (valid_parallel_operands_4, valid_parallel_operands_5, + valid_parallel_operands_6): Reject pattern if the register destination + of the first set is used as part of an address in the second set. + +Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG. + (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES + is no longer enabled if PARALLEL_MPY_FLAG set. + (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity. + (REG_CLASS_CONTENTS): Add braces around initializers. + (HAVE_MULTIPLE_PACK): Define. + (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with + REAL_VALUE_TO_DECIMAL. + (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with + REAL_VALUE_TO_DECIMAL. + (ar0_reg_operand): Add prototype. + (ar0_mem_operand): Likewise. + (ar1_reg_operand): Likewise. + (ar1_mem_operand): Likewise. + (ar2_reg_operand): Likewise. + (ar2_mem_operand): Likewise. + (ar3_reg_operand): Likewise. + (ar3_mem_operand): Likewise. + (ar4_reg_operand): Likewise. + (ar4_mem_operand): Likewise. + (ar5_reg_operand): Likewise. + (ar5_mem_operand): Likewise. + (ar6_reg_operand): Likewise. + (ar6_mem_operand): Likewise. + (ar7_reg_operand): Likewise. + (ar7_mem_operand): Likewise. + (ir0_reg_operand): Likewise. + (ir0_mem_operand): Likewise. + (ir1_reg_operand): Likewise. + (ir1_mem_operand): Likewise. + (group1_reg_operand): Likewise. + (group1_mem_operand): Likewise. + (ir1_reg_operand): Likewise. + (arx_reg_operand): Likewise. + (not_rc_reg): Likewise. + (not_modify_reg): Likewise. + (c4x_group1_reg_operand): Remove prototype. + (c4x_group1_mem_operand): Likewise. + (c4x_arx_reg_operand): Likewise. + +Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com> + + * emit-rtl.c (gen_lowpart_common): Remove earlier change. + * real.c (make_nan): Make SIGN arg actually specify the sign bit. + +Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern + during reload. - * combine.c (can_combine_p): Handle USEs in PARALLELs. +Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 + unless FMOVD_WORKS is defined. + +Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * regclass.c (init_reg_sets): Move code that calculates tables + dependent on reg_class_contents from here... + (init_reg_sets_1): To here. + +Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpplib.h: Delete struct import_file. Add ihash element to + struct cpp_buffer. Delete dont_repeat_files and + import_hash_table elements from cpp_reader; change + all_include_files to a hash table. Delete all foobar_include + / last_foobar_include elements from struct cpp_options; put + back four such: quote_include, bracket_include, + system_include, after_include. Redo struct file_name_list + completely. Add new structure type include_hash. Add + prototypes for merge_include_chains and include_hash. Change + prototypes for finclude, find_include_file, and + append_include_chain to match changes below. + + * cppfiles.c (simplify_pathname, include_hash, + remap_filename, merge_include_chains): New functions. + (add_import, lookup_import, open_include_file): Removed. + (INO_T_EQ): Define this (copied from cccp.c). + (hack_vms_include_specification): Remove all calls and #if 0 + out the definition. It was being called incorrectly and at + the wrong times. Until a VMSie can look at this, it's better + to not pretend to support it. + (append_include_chain): Change calling convention; now takes + only one directory at a time, and sets up the data structure + itself. + (redundant_include_p): Rewritten - this is now used for all + include redundancy, whether by #ifndef, #import, or #pragma + once. Looks up things in the include hash table. + (file_cleanup): Decrement pfile->system_include_depth here if + it's >0. + (find_include_file): Calling convention changed; now passes + around a struct include_hash instead of 3 separate parameters. + Guts ripped out and replaced with new include_hash mechanism. + (finclude): Calling convention changed as for + find_include_file. Error exits pulled out-of-line. Reformat. + (safe_read): Return a long, not an int. + (deps_output): Don't recurse. + + * cpplib.c (is_system_include): Deleted. + (path_include): Fix up call to append_include_chain. + (do_include): Fix up calls to find_include_file and finclude. + Clean up dependency output a bit. Shorten obnoxiously lengthy + #import warning message. Don't decrement + pfile->system_include_depth here. + (do_pragma): Understand the include_hash structure. Reformat. + (do_endif): Correct handling of control macros. Understand + the include_hash. + (cpp_start_read): Fix up calls to finclude. Call + merge_include_chains. + (cpp_handle_option): Fix up calls to append_include_chain. + Understand the four partial include chains. + (cpp_finish): Add debugging code (#if 0-ed out) for the + include_hash. + (cpp_cleanup): Free the include_hash, not the import hash and + the all_include and dont_repeat lists which no longer exist. + +Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (no_new_pseudos): Define. + (rest_of_compilation): Set no_new_pseudos as needed. + * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo + if no_new_pseudos is set. + * rtl.h (no_new_pseudos): Declare it. + * reload1.c (reload): Update comments. + * md.texi: Corresponding changes. + +Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo. + (choose_reload_regs): Rename it here as well. When computing it, + also merge in used hardregs. + +1998-11-25 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * gcc.c: Split out Objective-C specs to... + * objc/lang-specs.h: here. (New file.) Make the specs cpplib + aware. + + * c-lex.c (init_parse): Always initialize the filename global. + * objc/objc-act.c (lang_init): Always call check_newline at + beginning of file. + +Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk> + + * reload1.c (reload): Remove unused variable. + (reload_reg_free_for_value_p): Add missing parameter definition. + + * jump.c (jump_optimize): Remove unused variable. + +Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h. + + * cse.c (fold_rtx): Make autoincrement addressing mode tests be + runtime selectable. + * expr.c (move_by_pieces): Similarly. + (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly. + * flow.c (find_auto_inc): Similarly. + (try_pre_increment): Similarly. + * loop.c (strength_reduce): Similarly. + * regclass.c (auto_inc_dec_reg_p): Similarly. + * regmove.c (try_auto_increment): Similarly. + (fixup_match_1): Similarly. + * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined. + (HAVE_PRE_DECREMENT): Similarly. + (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly. + * Corresponding changes to all target header files. + * tm.texi: Update docs for autoinc addressing modes. + +Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com> + + * configure.in (m68020-*-elf*, m68k-*-elf*): New targets. + * configure: Rebuild. + * config/elfos.h: New file. + * config/m68k/m68020-elf.h, config/m68k/m68kelf.h, + config/m68k/t-m68kelf: New file. -Fri Feb 13 01:34:14 1998 H.J. Lu (hjl@gnu.org) +Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com) - * config/linux.h (LIB_SPEC): Add -lc for -shared if - USE_GNULIBC_1 is not defined. - * config/sparc/linux.h; Ditto. + * Makefile.in (HOST_AR): Define. + (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly. + (libcpp.a): Use the host tools explicitly. + (STAGESTUFF): Add libcpp.a. - * config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared. +Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com> - * config/alpha/linux-elf.h (LIB_SPEC): New. Defined if - USE_GNULIBC_1 is not defined. + * config/m32r/m32r.md (movstrsi_internal): Describe changes made + to source and destination registers. -Fri Feb 13 01:29:29 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> +Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com> - * rs6000/sysv4.h (ENDFILE_SPEC): add missing %(endfile_linux) - for -mcall-linux + * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. + The strategy we now use is to pre allocate the top_elt along + with the EH context so that each thread has its own top_elt. + This is necessary as the dynamic cleanup chain is used on the + top element of the stack and each thread MUST have its own. + (eh_context_static): Likewise. + (new_eh_context): Likewise. + (__sjthrow): Likewise. -Fri Feb 13 01:23:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> - * system.h: New file to get common systems includes and various - definitions and declarations based on autoconf macros. + * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while. + * i386.md (prologue_get_pc): Remove unused variable. -Fri Feb 13 00:46:19 1998 Jeffrey A Law (law@cygnus.com) +Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com> - * cccp.c (new_include_prefix): Correctly handle -I./. + * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_. -Thu Feb 12 20:16:35 1998 Michael Meissner <meissner@cygnus.com> +Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com> - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. + * Makefile.in (OBJS): Add graph.o. + (graph.o): New dependency list. + * flags.h: Declare dump_for_graph and define graph_dump_types type. + * print-rtl.c (dump_for_graph): Define new variable. + (print_rtx): Rewrite to allow use in graph dumping functions. + * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file, + finish_graph_dump_file. + Define graph_dump_format. + (compile_file): If graph dumping is enabled also clear these files. + Finish graph dump files. + (rest_of_compilation): Also dump graph information if enabled. + (main): Recognize -dv to enabled VCG based graph dumping. + * graph.c: New file. Graph dumping functions. -Thu Feb 12 16:45:17 1998 Robert Lipe <robertl@dgii.com> +Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com> - * expr.c (expand_assignment): Correct typo exposed by -Wall. - offset should have been a truth value, not an assignment. + * configure.in: Look for <sys/stat.h>. + * system.h: Include it before substitute S_ISREG definitions. -Thu Feb 12 15:26:50 1998 Jeffrey A Law (law@cygnus.com) +Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com> - * cse.c (delete_dead_from_cse): If a libcall produces a constant - result and that result can be substituted into SET_SRC of the - insn with the REG_RETVAL note, then perform the substitution - and delete the libcall. + * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage. + * config/mips/iris6.h: Same. + * config/mips/mips.md: Same. + * config/mips/mips.c: Same; also add "-mabi=o64" option. + * config/mips/mips.h: Same; also define ABI_O64. -Thu Feb 12 14:04:09 1998 Gavin Koch <gavin@cygnus.com> +Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * mips.md (trucndihi2,truncdiqi2): Change these to support - mips16. + * configure.in: Use AC_PREREQ(2.12.1). -Thu Feb 12 11:34:55 1998 Gavin Koch <gavin@cygnus.com> +Mon Nov 23 10:16:38 1998 Melissa O'Neill <oneill@cs.sfu.ca> - * mips/mips.c (movdi_operand): Direct referances to symbols - that arn't mips16 consts in mips16 mode arn't valid operands. + * cccp.c (S_ISREG, S_ISDIR): Delete defines. + * cpplib.c, gcc.c: Likewise. + * system.h (S_ISREG, S_ISDIR): Define if not already defined. - * mips/mips.c (mips_move_2words): Add gprel handling. +Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com> -Thu Feb 12 11:18:37 1998 Gavin Koch <gavin@cygnus.com> + * local-alloc.c (local_alloc): Use malloc not alloca for + reg_qty, reg_offset, ref_next_in_qty. - * mips.md (extendsidi2): Allow extension to/from a non-mips16 - register. +Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * caller-save.c (insert_one_insn): Initialize the live_before and + live_after register sets. + + Add SH4 support: + + * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define. + (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define. + * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS. + (fp_reg_names, assembler_dialect): New variables. + (print_operand_address): Handle SUBREGs. + (print_operand): Added 'o' case. + Don't use adj_offsettable_operand on PRE_DEC / POST_INC. + Name of FP registers depends on mode. + (expand_block_move): Emit different code for SH4 hardware. + (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate. + (from_compare): Likewise. + (add_constant): New argument last_value. Changed all callers. + (find_barrier): Don't try HImode load for FPUL_REG. + (machine_dependent_reorg): Likewise. + (sfunc_uses_reg): A CLOBBER cannot be the address register use. + (gen_far_branch): Emit a barrier after the new jump. + (barrier_align): Don't trust instruction lengths before + fixing up pcloads. + (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG. + Use auto-inc addressing for fp registers if doubles need to + be loaded in two steps. + Set sh_flag_remove_dead_before_cse. + (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul. + (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul. + (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR. + Support for FIRST_XD_REG .. LAST_XD_REG. + (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG. + (sh_expand_epilogue): Likewise. + (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4. + (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account. + (arith_reg_operand): FPUL_REG is OK for SH4. + (fp_arith_reg_operand, fp_extended_operand): New functions. + (tertiary_reload_operand, fpscr_operand): Likewise. + (commutative_float_operator, noncommutative_float_operator): Likewise. + (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise. + (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise. + (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise. + (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise. + * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only. + (CONDITIONAL_REGISTER_USAGE): Likewise. + (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define. + (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define. + (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define. + (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd. + (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer + to -1 and sh_flag_remove_dead_before_cse to 1. + (ASSEMBLER_DIALECT): Define to assembler_dialect. + (assembler_dialect, fp_reg_names): Declare. + (OVERRIDE_OPTIONS): Add code for TARGET_SH4. + Hide names of registers that are not accessible. + (CACHE_LOG): Take TARGET_CACHE32 into account. + (LOOP_ALIGN): Take TARGET_HARWARD into account. + (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define. + (FIRST_PSEUDO_REGISTER: Now 49. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers. + (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG. + (HARD_REGNO_MODE_OK): Update. + (enum reg_class): Add DF_REGS and FPSCR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise. + (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update. + (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define. + (NPARM_REGS): Eight floating point parameter registers on SH4. + (BASE_RETURN_VALUE_REG): SH4 also passes double values + in floating point registers. + (GET_SH_ARG_CLASS): Likewise. + Complex float types are also returned in float registers. + (BASE_ARG_REG): Complex float types are also passes in float registers. + (FUNCTION_VALUE): Change mode like PROMOTE_MODE does. + (LIBCALL_VALUE): Remove trailing semicolon. + (ROUND_REG): Round when double precision value is passed in floating + point register(s). + (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are + passed on the stack. + (FUNCTION_ARG): Little endian adjustment for SH4 SFmode. + (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4. + (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account. + (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD. + (MODE_DISP_OK_8): Not for SH4 DFmode. + (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode. + Allow indexed addressing for PSImode after reload. + (LEGITIMIZE_ADDRESS): Not for SH4 DFmode. + (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode. + Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS. + (DOUBLE_TYPE_SIZE): 64 for SH4. + (RTX_COSTS): Add PLUS case. + Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case. + (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS, + MAC_REGS, PR_REGS, DF_REGS. + (REGISTER_NAMES): Use fp_reg_names. + (enum processor_type): Add PROCESSOR_SH4. + (sh_flag_remove_dead_before_cse): Declare. + (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare. + (PREDICATE_CODES): Add binary_float_operator, + commutative_float_operator, fp_arith_reg_operand, fp_extended_operand, + fpscr_operand, noncommutative_float_operator. + (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR. + (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4. + * sh.md (attribute cpu): Add value sh4. + (attrbutes fmovd, issues): Define. + (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv. + (function units memory, int, mpy, fp): Make dependent on issue rate. + (function units issue, single_issue, load_si, load): Define. + (function units load_store, fdiv, gp_fpul): Define. + (attribute hit_stack): Provide proper default. + (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4. + (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns. + (udivsi3, divsi3): Emit special patterns for SH4 hardware, + (mulsi3_call): Now uses match_operand for function address. + (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL / + REG_RETVAL notes. + (push, pop, push_e, pop_e): Now define_expands. + (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders. + (movsi_ie): Added y/i alternative. + (ic_invalidate_line_i, movdf_i4): New insns. + (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters. + (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders. + (movdf): Add special code for SH4. + (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible. + (call_valuei, calli, call_value): Likewise. + (movsf): Emit no-op move. + (mov_nop, movsi_y): New insns. + (blt, sge): Generalize to handle DFmode. + (return predicate): Call emit_fpscr_use and remove_dead_before_cse. + (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4. + (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns. + (fpu_switch0, fpu_switch1, movpsi): New expanders. + (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters. + (toggle_sz): New insn. + (addsf3, subsf3, mulsf3, divsf3): Now define_expands. + (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns. + (macsf3): Make use of fpscr visible. Disable for SH4. + (floatsisf2): Make use of fpscr visible. + (floatsisf2_i4): New insn. + (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4. + (ieee_ccmpeqsf_t): Likewise. + (fix_truncsfsi2): Emit different code for SH4. + (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns. + (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns. + (negsf2, sqrtsf2, abssf2): Now expanders. + (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders. + (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns. + (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns. + (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders. + (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns. + (fix_truncdfsi2_i4_2+1): New splitters. + (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns. + (extendsfdf2, truncdfsf2): New expanders. + (truncdfsf2_i4): New insn. + * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4. + (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4. + * float-sh.h: When testing for __SH3E__, also test for + __SH4_SINGLE_ONLY__ . + * va-sh.h (__va_freg): Define to float. + (__va_greg, __fa_freg, __gnuc_va_list, va_start): + Define for __SH4_SINGLE_ONLY__ like for __SH3E__ . + (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise. + (__PASS_AS_FLOAT): Use different definition for __SH4__ and + __SH4_SINGLE__. + (TARGET_SH4_P): Define. + (va_arg): Use it. -Thu Feb 12 00:04:16 1998 Marc Lehmann <pcg@goof.com> + * sh.md (movdf_k, movsf_i): Tweak the condition so that + init_expr_once is satisfied about the existence of load / store insns. - * i386.c: Conditionally include <stdlib.h>, <string.h>, and - <strings.h>. + * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie): + Change m constraint in source operand to mr / mf. -Wed Feb 11 11:43:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * va-sh.h (__va_arg_sh1): Use __asm instead of asm. - * Makefile.in (WARN_CFLAGS): New variable. - (bootstrap, bootstrap2, bootstrap3, bootstrap4): Use it. + * (__VA_REEF): Define. + (__va_arg_sh1): Use it. -1998-02-11 Mark Mitchell <mmitchell@usa.net> + * va-sh.h (va_start, va_arg, va_copy): Add parentheses. - * config/i386/i386.c (reg_mentioned_in_mem): Don't abort when - falling through default case in switch. - (i386_aligned_p): Likewise. +Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com) -Wed Feb 11 12:59:56 1998 Lee Iverson <leei@Canada.AI.SRI.COM> + * i386/dgux.c (struct option): Add new "description field". + * m88k/m88k.c (struct option): Likewise. - * mips/mips.h (mips_abi_string): Correct typo in comment. +Sun Nov 22 16:07:57 1998 Jeff Law (law@cygnus.com) -Wed Feb 11 08:29:56 1998 Gavin Koch <gavin@cygnus.com> + * version.c: Bump for snapshot. - * mips/mips.md (movdi): These PLUS's need to be Pmode. +Sun Nov 22 13:40:02 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Wed Feb 11 01:47:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * regmove.c (regmove_profitable_p): Use return value of find_matches + properly. - * Makefile.in (dwarf2out.o, emit-rtl.o, jump.o, cse.o, unroll.o, - reorg.o, regmove.o): Depend on insn-codes.h, it gets included - indirectly via expr.h. +Sun Nov 22 02:47:37 1998 Jeff Law (law@cygnus.com) -Wed Feb 11 01:44:13 1998 Richard Henderson <rth@cygnus.com> + * version.c: Bump for snapshot. - * stor-layout.c (layout_type): Do upper - lower in the native type, - so as to properly handle negative indices. +Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called + without reload having been called earlier. + + * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP + addressing modes. + (v850_reorg): Similarly. + + * loop.c (check_dbra_loop): Avoid using gen_add2_insn. + +Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (move_movables): Start of libcall might be new loop start. + +Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS(). + +Fri Nov 20 08:34:00 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * function.c (nonlocal_goto_handler_slots): Renamed from + nonlocal_goto_handler_slot; now an EXPR_LIST chain. + (push_function_context_to): Adjust for this change. + (pop_function_context_from): Likewise. + (init_function_start): Likewise. + (expand_function_end): Likewise. + * function.h (struct function): Likewise. + * calls.c (expand_call): Likewise. + * explow.c (allocate_dynamic_stack_space): Likewise. + * expr.h (nonlocal_goto_handler_slots): Rename its declaration. + * stmt.c (declare_nonlocal_label): Make a new handler slot for each + label. + (expand_goto): When doing a nonlocal goto, find corresponding handler + slot for it. Don't put the label address in the static chain register. + (expand_end_bindings): Break out nonlocal goto handling code into + three new functions. + (expand_nl_handler_label, expand_nl_goto_receiver, + expand_nl_goto_receivers): New static functions, broken out of + expand_end_bindings and adapted to create one handler per nonlocal + label. + * function.c (delete_handlers): Delete insn if it references any of + the nonlocal goto handler slots. + * i960.md (nonlocal_goto): Comment out code that modifies + static_chain_rtx. + * sparc.md (nonlocal_goto): Likewise. + (goto_handler_and_restore_v9): Comment out. + (goto_handler_and_restore_v9_sp64): Comment out. + +Thu Nov 19 23:44:38 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * expr.c (STACK_BYTES): Delete unused macro. + * calls.c: Provide default for PREFERRED_STACK_BOUNDARY. + (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + (expand_call): Likewise. + (emit_library_call): Likewise. + (emit_library_call_value): Likewise. + * function.c: Provide default for PREFERRED_STACK_BOUNDARY. + (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + * explow.c: Provide default for PREFERRED_STACK_BOUNDARY. + (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + (allocate_dynamic_stack_space): Likewise. + * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro. + (STACK_BOUNDARY): Update description to reflect the new situation. -Wed Feb 11 01:35:55 1998 Robert Lipe <robertl@dgii.com> +Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com) - * except.c (start_dynamic_cleanup): Remove unused variable 'dhc'. - (expand_eh_region_start_tree): Remove unused variable 'note'. - (exception_optimize): Remove unused variable 'regions'. - (expand_builtin_eh_stub): Remove unused variable 'temp'. - (copy_eh_entry): Deleted. Dead function. + * reorg.c (relax_delay_slots): When optimizing for code size, if a + return with a filled delay slot is followed by a return with an + unfilled delay slot, delete the first return and reemit the insn + that was previously in its delay slot. - * expr.c (move_block_to_reg) Bracket declaration of 'pat' and - 'last' with same #if HAVE_load_multiple as use of it. - (move_block_from_reg): Likewise. - (emit_move_insn_1): Remove unused variable 'insns'. - (store_constructor): Bracket declaration of startb, endb with - #if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size' - 'target', and 'xtarget'. - (expand_builtin_setjmp): Remove unused variables 'op0', - 'next_arg_reg', 'old_inhibit_defer_pop'. - (expand_builtin): Remove unused variable 'offset'. - (do_store_flag): Remove unused variables 'pattern', 'jump_pat'. - (emit_queue): Add parens for assignment used as conditional. - (expand_expr): case TARGET_EXPR: Remove unused variable 'temp'. + * i860.c (single_insn_src_p): Add missing parens. + * ginclude/math-3300.h: Likewise. -Wed Feb 11 01:30:49 1998 Marc Lehmann <pcg@goof.com> +Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org) - * i386.c: Added include for recog.h. - (override_options): Removed unused variable p. Initialized regno to - avoid warning. - (order_regs_for_local_alloc): Initialized regno to avoid warning. - (legitimize_address): Likewise for 'other'. - (i386_aligned_reg_p): Added default case with abort (). - (print_operand): Likewise. - (reg_mentioned_in_mem): Likewise. - (ix86_expand_binary_operator): Removed unused variables i & insn. - (ix86_expand_unary_operator): Removed unused variable insn. - (output_fp_cc0_set): Removed unused variable unordered_label. + * regclass.c (init_reg_sets_1): Add prototype. + (init_reg_modes): Likewise. -Wed Feb 11 01:23:03 1998 John F. Carr <jfc@mit.edu> +1998-11-19 Zack Weinberg <zack@rabi.phys.columbia.edu> - * i386.c, i386.h, i386.md: Change gen_rtx (X, ...) to gen_rtx_X (...). - Use GEN_INT instead of gen_rtx (CONST_INT). Make printf arguments - and format string match. + * c-common.c: Change warning messages to say `comparison is + always true' or `comparison is always false' instead of the + confusing `is always 0', `is always 1'. -Wed Feb 11 01:17:39 1998 Jeffrey A Law (law@cygnus.com) +Thu Nov 19 19:05:49 1998 Per Bothner <bothner@cygnus.com> - * flow.c (life_analysis): Do not conside the stack pointer live at - the end of a function if the fucntio ncalls alloca. - (mark_used_regs): Similarly. + * print-tree.c (print_node): After printing BLOCK or BIND_EXPR, + break instead of return (which loses closing '>'). -1998-02-10 John F Carr <jfc@mit.edu> +Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com) - * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative - 1, fzero on alternative 8. + * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not + standard 387 constants. -Tue Feb 10 09:02:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * i386.md (jump): Explicitly set "memory" attribute. + (indirect_jump, prologue_set_stack_ptr): Likewise. + (prologue_get_pc_and_set_got, pop): Likewise. + (allocate_stack_worder, blockage, return_internal): Likewise. + (return_pop_internal, nop): Likewise. + (epilogue_set_stack_ptr, leave): Likewise. - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. +Thu Nov 19 15:42:54 1998 Nick Clifton <nickc@cygnus.com> -Tue Feb 10 03:35:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * config/arm/coff.h: Set USER_LABEL_PREFIX to "_". - * reload.c (find_reloads_toplev): Handle arbitrary non-paradoxical - SUBREGs of CONST_INTs. +Thu Nov 19 23:20:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon Feb 9 17:52:36 1998 John Carr <jfc@mit.edu> + * reload1.c (reload_reg_free_for_value_p): + Early auto_inc reloads don't conflict with outputs. - * mips.c (print_operand, function_prologue): Make printf format - match argument type. +Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon Feb 9 02:37:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h). + Instead call AC_HEADER_SYS_WAIT. - * alpha.c (alpha_return_addr): Remove unused variable `first'. - (alpha_ra_ever_killed): Remove unused variables `ra' and `i'. - (output_epilog): Remove unused variable `frame_size_from_reg_save'. + * collect2.c: Don't provide defaults for sys/wait.h macros. + * gcc.c: Likewise. + * protoize.c: Likewise. Also, don't include sys/wait.h. -Sun Feb 8 14:56:03 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * system.h: Include sys/wait.h and provide macro defaults. - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. +1998-11-19 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Sun Feb 8 13:21:38 1998 John Carr <jfc@mit.edu> + * Makefile.in (mandir): Set to @mandir@. + (man1dir): New variable to hold the former value of $(mandir). + Replace all uses of $(mandir) by $(man1dir). - * bitmap.c (bitmap_debug_file): HOST_PTR_PRINTF converts a pointer, - not a HOST_WIDE_INT. +Wed Nov 18 16:31:28 1998 Jim Wilson <wilson@cygnus.com> - * calls.c (expand_call): Change test of expand_inline_function - return value to stop compiler warning. + * reload.c (find_reloads_address_part): If have a CONST_INT, create + a new one before passing it to force_const_mem. - * genattrtab.c (RTL_HASH): Cast pointer to long, not HOST_WIDE_INT. + * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in + find_reloads_address call. -Sun Feb 8 12:04:24 1998 Jim Wilson (wilson@cygnus.com) - Jeff Law (law@cygnus.com) +Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * regmove.c: Fix various minor formatting problems. - (optimize_reg_copy_1): Stop search at CALL_INSNs if flag_exceptions - is true. Make end of basic block tests consistent through regmove.c. - (optimize_reg_copy_2, optimize_reg_copy_3): Likewise. - (fixup_match_2, fixup_match_1, regmove_optimize): Likewise. + * expr.c (store_expr): Don't generate load-store pair + if TEMP is identical (according to ==) with TARGET. -Sun Feb 8 01:49:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Tue Nov 17 22:25:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * gansidecl.h: Check for a conflicting macro definition before - attempting to prototype bcopy, bcmp or bzero. + * reload1.c (reload_reg_free_for_value_p): When considered reload + has an output, matching inputs are not sufficient to avoid conflict. -Sun Feb 8 00:09:59 1998 Jeffrey A Law (law@cygnus.com) +Tue Nov 17 11:51:16 1998 Mark Mitchell <mark@markmitchell.com> - * expr.c (clear_pending_stack_adjust): Handle case where a function - calls alloca, but the user has specified -fomit-fframe-pointer. + * hash.h (hash_table_key): New type. + (hash_entry): Change `string' field to generic `key'. + (hash_table): Add `comp' and `hash' functions. + (hash_table_init): Take them as input. + (hash_table_init_n): Likewise. + (hash_lookup): Modify for generic keys. + (hash_newfunc): Likewise. + (hash_traverse): Likewise. + (string_hash): New function. + (string_compare): Likewise. + (string_copy): Likewise. + * hash.c (hash_table_init_n): Modify for generic keys. + (hash_table_init): Likewise. + (hash_lookup): Likewise. + (hash_newfunc): Likewise. + (hash_traverse): Likewise. + (string_hash): Split out from hash_lookup. + (string_compare): New function. + (string_copy): Split out from hash_lookup. + * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash + tables. + (symbol_hash_lookup): Likewise. + (file_hash_newfunc): Likewise. + (file_hash_lookup): Likewise. + (demangled_hash_newfunc): Likewise. + (demangled_hash_lookup): Likewise. + (tlink_int): Likewise. + (read_repo_file): Likewise. + (recompile_files): Likewise. + (demangle_new_symbols): Likewise. + (scan_linker_output): Likewise. - * function.c (assign_parms): Fix typo in last change. +Tue Nov 17 17:13:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Sat Feb 7 23:54:29 1998 Robert Lipe <robertl@dgii.com> + * flow.c (insn_dead_p): New argument NOTES. Changed all callers. - * gcc.c: Include <strings.h>/<string.h>, <stdlib.h>, <unistd.h>, - <fcntl.h>. - (free_path_suffix): Remove unreferenced static function. - (process_command): Remove unused variable temp. - (default_arg): Remove unused variable i. - (do_spec_1): Add parens for assignment used as truth value. - (main): Likewise. - (validate_all_switches): Likewise. - (main): Remove unused variables i, first_time> +Mon Nov 16 17:56:07 1998 David Edelsohn <edelsohn@gnu.org> - * c-common.c: Include <stdlib.h> and <string.h>/<strings.h>. + * rs6000.c (output_mi_thunk): Improve test for local branch. - * calls.c (expand_call): Remove unused variables funtree, - n_regs, and tmpmode. +Mon Nov 16 17:56:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - * dbxout.c, except.c: Include <string.h>/<strings.h>. + * rs6000.c (output_mi_thunk): Correct test for aggregate values. - * explow.c: (plus_constant_for_output_wide) Removed unused - variable all_constant. +Mon Nov 16 21:02:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c - genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c, - genrecog.c, global.c, integrate.c , stupid.c : Include - <stdlib.h>. + * reload1.c (reload_reg_free_before_p): Delete. + Changed all callers to use reload_reg_free_for_value_p instead. + (reload_reg_free_for_value_p): Handle more reload types. + A RELOAD_FOR_INPUT doesn't conflict with its + RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS. + Add special case for OUT == const0_rtx. + Added ignore_address_reloads argument. Changed all callers. - * genextract.c: (walk_rtx) Remove unused variable link. +Mon Nov 16 02:22:29 1998 Jason Merrill <jason@yorick.cygnus.com> - * genrecog.c: (concat) Remove unreferenced static function. + * toplev.c (compile_file): Don't pedwarn about undefined static + functions just because we passed -Wunused. - * prefix.c: Include <string.h>/<strings.h>, <stdlib.h> +Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * stmt.c: Include <stdlib.h>. - (expand_asm_operands): Remove unused variable val1. - (expand_return): Remove unused variable block. - (pushcase): Remove unused variables l and n. - (pushcaserange): Likewise. + * function.c (purge_addressof_1): Unshare rtl created by + store_bit_field. - * unroll.c (unroll_loop): Remove unused variable temp. +Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Sat Feb 7 23:46:09 1998 Greg McGary <gkm@gnu.org> + * regmove.c (regmove_optimize): Don't do anything but + optimize_reg_copy[123] when flag_regmove is not set. - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. +Sat Nov 14 15:05:07 1998 Richard Henderson <rth@cygnus.com> -Sat Feb 7 15:11:28 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode + value in paradoxical SImode result, rather than truncating midpoint. - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): New macro to test the printf - functions for whether they support the %p format specifier. - * acconfig.h (HOST_PTR_PRINTF): Insert stub for autoconf. - * configure.in (GCC_FUNC_PRINTF_PTR): Use it. - * configure, config.in: Rebuild. +Fri Nov 13 22:19:23 1998 Richard Henderson <rth@cygnus.com> -Fri Feb 6 14:20:16 1998 Jim Wilson <wilson@cygnus.com> + * alpha.c (reg_not_elim_operand): New. + * alpha.h (PREDICATE_CODES): Add it. + * alpha.md (s48addq, s48subq patterns): Use it as the predicate + for the multiplicand. + +Fri Nov 13 22:50:37 1998 David Edelsohn <edelsohn@gnu.org> + + * rs6000.md (movsf): Remove explicit secondary-reload-like + functionality. Only truncate SFmode store if in FPR. + (movsf splitters): Combine const_double splitters. + (movsf_hardfloat): Add GPR support. + +Fri Nov 13 11:02:11 1998 Stan Cox <scox@cygnus.com> + + * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to + deprecate -mlive-g0 and -mbroken-saverestore. + * t-splet (MULTILIB_OPTIONS): Likewise. + + * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size + in a leaf function. Clarify total_size/extra_size relationship. + +Thu Nov 12 19:20:57 1998 Geoffrey Noer <noer@cygnus.com> + + * i386/cygwin32.asm: Delete. + * i386/cygwin.asm: New file, renamed from cygwin32.asm. + * i386/cygwin32.h: Delete. + * i386/cygwin.h: New file, renamed from cygwin32.h. + * i386/t-cygwin32: Delete. + * i386/t-cygwin: New file, renamed from t-cygwin32. Include + cygwin.asm instead of cygwin32.asm. Remove "32" from comment. + * i386/x-cygwin32: Delete. + * i386/x-cygwin: New file, renamed from x-cygwin32. + * i386/xm-cygwin32: Delete. + * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly + renamed cygwin_ funcs for path translations. + * i386/win32.h: Define __CYGWIN__ when -mcygwin given. + * i386/winnt.c: Remove "32" from comment about cygwin. + * i386/mingw32.h: Fix references to cygwin32.h in light of above. + * rs6000/cygwin32.h: Delete. + * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add + -D__CYGWIN__ to CPP_PREDEFINES. + * rs6000/x-cygwin32: Delete. + * rs6000/x-cygwin: New file, renamed from x-cygwin32. + * rs6000/xm-cygwin32: Delete. + * rs6000/xm-cygwin: New file, renamed from xm-cygwin32. + + * configure.in: Check for cygwin* instead of cygwin32. Account + for the rename of cygwin-related config files to lose the "32"s. + * configure: Regenerate. - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. + * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c, + toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__. -Fri Feb 6 14:34:28 1998 Gavin Koch <gavin@cygnus.com> +Wed Nov 11 12:25:19 1998 Tom Tromey <tromey@cygnus.com> - * mips/t-r3900: New - same as t-ecoff but eliminate - multilibs: mips1 and mips3. - * configure.in (tx39*): Use new mips/t-r3900. - * configure: Rebuild. - * mips/r3900.h (MULTILIB_DEFAULTS): Eliminate mips1. + * Makefile.in (JAVAGC): New macro. + * configure: Rebuilt. + * configure.in: Recognize --enable-java-gc argument. Subst + `JAVAGC' variable. -1998-02-06 Jason Merrill <jason@yorick.cygnus.com> +Thu Nov 12 03:32:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * dwarf2out.c: Add old_args_size. - (dwarf2out_args_size): Use it. - (dwarf2out_begin_prologue): Initialize it. - (dwarf2out_stack_adjust): If !asynchronous_exceptions, save up - pushed args until we see a call. - * final.c (final_scan_insn): Hand CALL_INSNs off to the dwarf2 code - before outputting them. + Handle equivalences that have been obscured by gcse: -1998-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> + * reload1.c (reload): Handle equivalences set up in multiple places. + * local-alloc.c (reg_equiv_init_insns): New variable. + (no_equiv): New function. + (update_equiv_regs): Handle equivalences set up in multiple places. + Don't ignore an insn just because its destination is likely to be + spilled. - * cplus-dem.c (demangle_template_template_parm): New function. - (demangle_template): Handle template template parameters. +Wed Nov 11 13:46:13 1998 Jim Wilson <wilson@cygnus.com> -1998-02-02 Mark Mitchell <mmitchell@usa.net> + * except.c (expand_eh_return): Readd force_operand call lost in + Sept 15 change. - * calls.c (expand_call): Don't confuse member functions named - realloc, setjmp, and so forth with the standard library - functions of the same names. +Tue Nov 10 17:04:11 1998 David Edelsohn <edelsohn@gnu.org> -Thu Feb 5 21:59:49 1998 Jeffrey A Law (law@cygnus.com) + * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case. - * stmt.c (expand_asm_operands): Correctly identify asm statements - no output operands. +1998-11-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Thu Feb 5 21:56:06 1998 Mumit Khan <khan@xraylith.wisc.edu> + * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H. - * c-common.c (decl_attributes): Flag unrecognized attribute - functions as warnings instead of as errors. +Mon Nov 9 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * regmove.c (regmove_optimize): Fix error in last change. -1998-02-05 Marc Lehmann <pcg@goof.com> +Mon Nov 9 16:37:52 1998 Andrew Cagney <cagney@b1.cygnus.com> - * integrate.c (INTEGRATE_THRESHOLD): Inline only small functions - when -Os is specified. - * toplev.c (main): Don't disable flag_inline_functions anymore when - -Os is in effect. + * mips.c (function_prologue): When TARGET_MIPS16, adjust the register + offset in the .mask pseudo to compensate for frame pointer adjustments. + (mips16_fp_args, build_mips16_call_stub): For little endian, do not + word swap arguments moved to/from FP registers. + * mips16.S (DFREVCMP): Reverse arguments to OPCODE. -Fri Feb 6 00:27:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Nov 9 09:47:06 1998 Jeff Law (law@cygnus.com) - * regmove.c: Update. - * flags.h (flag_regmove): Declare. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Don't declare. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): - Moved into regmove; changed caller. - * toplev.c (rest_of_compilation): Call regmove_optimize also for - expensive_optimizations. + * version.c: Bump for snapshot. -Thu Feb 5 13:38:42 PST 1998 Jeff Law (law@cygnus.com) +Mon Nov 9 02:14:14 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Thu Feb 5 01:45:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - Undo this change (the problem was actually in reload): - Fri Jan 23 23:28:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (delete_output_reload_insn): If a pseudo is set multiple + times, then it can not be completely replaced. + +Mon Nov 9 00:39:02 1998 Richard Henderson <rth@cygnus.com> + + * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length. + +Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * sh.md (movqi_i+1): New peephole. + * gansidecl.h: Prepend a "G" to the macro wrapping this file + (to distinguish it from the macro wrapping ansidecl.h.) + Include libiberty's ansidecl.h. Remove all redundant definitions. + Define the PROTO() style macros in terms of the PARAMS() ones. -Tue Feb 3 01:11:12 1998 Jeffrey A Law (law@cygnus.com) - * jump.c (jump_optimize): Lose calls to modified_in_p they are - not needed anymore due to changes elsewhere in jump.c. + * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not + __STDC__, when deciding whether to use ANSI variable args. + (emit_library_call_value): Likewise. - * jump.c (jump_optimize): Fix first arg to modified_in_p in - previous change. + * cccp.c (error): Likewise. + (warning): Likewise. + (error_with_line): Likewise. + (warning_with_line): Likewise. + (pedwarn): Likewise. + (pedwarn_with_line): Likewise. + (pedwarn_with_file_and_line): Likewise. + (fatal): Likewise. -Mon Feb 2 19:18:14 1998 Richard Henderson <rth@cygnus.com> + * cexp.y (error): Likewise. + (pedwarn): Likewise. + (warning): Likewise. - * expr.c (expand_builtin_setjmp): Accept two new arguments for - the labels to branch to on first and subsequent executions. Don't - play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', - and provide it with the jmp_buf. Use only one of - `builtin_setjmp_receiver' or `nonlocal_goto_receiver', - and provide the former with the target label. - (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. - (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... - (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' - insn to replace all of the normal nonlocal_goto code. Don't play - with __dummy. Correct arguments to nonlocal_goto. - * expr.h (expand_builtin_setjmp): Update prototype. - * except.c (start_dynamic_handler): When using builtin_setjmp, - generate more accurate flow information. + * collect2.c (fatal_perror): Likewise. + (fatal): Likewise. + (error): Likewise. - * alpha.md (nonlocal_goto_receiver_osf): Delete. - (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. - (builtin_longjmp, builtin_setjmp_receiver): New. - * sparc.md (update_return): Disambiguate unspec number. - (nonlocal_goto): Rearrange arguments to match caller in except.c. - (builtin_setjmp_setup): Rename from setjmp. Match and ignore the - jmp_buf operand. - * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. - (builtin_setjmp_setup*, builtin_longjmp): New. + * combine.c (gen_rtx_combine): Likewise. -Mon Feb 2 16:43:10 1998 John Carr <jfc@mit.edu> + * cpperror.c (cpp_message): Likewise. + (cpp_fatal): Likewise. - * mips.md: Change gen_rtx (CONST_INT) to GEN_INT. + * cpplib.c (cpp_error): Likewise. + (cpp_warning): Likewise. + (cpp_pedwarn): Likewise. + (cpp_error_with_line): Likewise. + (cpp_warning_with_line): Likewise. + (cpp_pedwarn_with_line): Likewise. + (cpp_pedwarn_with_file_and_line): Likewise. -Mon Feb 2 13:06:47 1998 Jim Wilson <wilson@cygnus.com> + * cpplib.h: Don't define PARAMS() macro. - * vmsconfig.com: Remove bytecode references. + * demangle.h: Likewise. -1998-01-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, + when deciding whether to use ANSI variable args. - * dwarf2out.c (dwarf2out_frame_init): Undo last change, so that - -fno-sjlj-exceptions works for a target that defines - DWARF2_UNWIND_INFO as zero. + * emit-rtl.c (gen_rtx): Likewise. + (gen_rtvec): Likewise. - * regmove.c (fixup_match_1): Undo last change which removed some - "useless" code, and add a comment explaining this. + * final.c (asm_fprintf): Likewise. -Mon Feb 2 10:47:14 1998 Gavin Koch (gavin@cygnus.com) + * fix-header.c (cpp_message): Likewise. + (fatal): Likewise. + (cpp_fatal): Likewise. - * mips.c (mips_expand_prologue): Change uses of TARGET_64BIT - to TARGET_LONG64. + * gcc.c (concat): Likewise. + (fatal): Likewise. + (error): Likewise. -Mon Feb 2 10:38:41 1998 Klaus Kaempf <kkaempf@progis.de> + * genattr.c (fatal): Likewise. - * makefile.vms: Remove bytecode references. - Create genrtl files. + * genattrtab.c (attr_rtx): Likewise. + (attr_printf): Likewise. + (fatal): Likewise. -Mon Feb 2 02:08:04 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> + * gencodes.c (fatal): Likewise. - * jump.c (jump_optimize): Allow conditional loading of floating point - constants and constants from memory. Reinstalled modified_in_p tests. + * genconfig.c (fatal): Likewise. -Mon Feb 2 01:38:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * genemit.c (fatal): Likewise. - * loop.c (get_condition): Handle sign-extended constants. + * genextract.c (fatal): Likewise. -Mon Feb 2 01:22:46 1998 Hans-Peter Nilsson <hp@axis.se> + * genflags.c (fatal): Likewise. - * expr.c (emit_push_insn): Add code to use movstrti if present. + * genopinit.c (fatal): Likewise. - * expr.c (emit_push_insn): Use same max-move-amount for movstrhi - and movstrqi as in emit_block_move (). + * genoutput.c (fatal): Likewise. + (error): Likewise. -Mon Feb 2 00:09:52 1998 Toon Moene <toon@moene.indiv.nluug.nl> + * genpeep.c (fatal): Likewise. - * config/m68k/x-next: Remove /NextDeveloper/Headers from - the directories to fixinclude - /usr/include is a link - to it and hence its contents are fixed by default. + * genrecog.c (fatal): Likewise. -Sun Feb 1 14:15:33 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> + * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when + deciding whether to declare `tree_node' and `rtx_def'. - * rs6000/linux.h: define JUMP_TABLES_IN_TEXT_SECTION + * hash.h: Don't define stuff we get from gansidecl.h. -Sun Feb 1 13:01:15 1998 Klaus Kaempf <kkaempf@progis.de> + * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). + (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding + whether to use ANSI variable args. + (error): Likewise. - * cccp.c (main): Predefine __VMS_VER on VMS. + * prefix.c (concat): Likewise. -Sun Feb 1 12:39:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * scan.h: Likewise. - * expr.c (get_inner_reference): Use sbitsizetype for type sizes. - * fold-const.c (size_int): Replace with - (size_int_wide). - (make_bit_field_ref): Use bitsize_int for bit position. - * stor-layout.c (sizetype): Delete. - (sizetype_tab, sbitsizetype, ubitsizetype): Declare. - (layout_record, layout_union, layout_type): - Use bitsize_int for bit size. - (set_sizetype): New function. - (make_signed_type, make_unsigned_type): Use it. - * c-decl.c (init_decl_processing): Likewise. - * tree.h (size_int): Don't delcare, #define. - (size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare. - (set_sizetype): Declare. - (bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype): - Define. - * c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes): - Convert result to sizetype. - (really_start_incremental_init, push_init_level): - Set type of constructor_bit_index to sbitsizetype. - (push_init_level): Use unsigned arithmetic to determine padding. - (output_init_element): Likewise. - -Sun Feb 1 03:32:07 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_shift_const): Fix typo in last change. - -Sun Feb 1 02:50:46 1998 John Carr <jfc@mit.edu> - - * combine.c (simplify_shift_const): (lshiftrt (truncate (lshiftrt))) - is (truncate (lshiftrt)). - -Sun Feb 1 01:06:53 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_unaligned_load): Use expand_binop properly. - Make sure result winds up in TGT. - (alpha_expand_unaligned_store): Use expand_binop properly. Allow - src to be other than DImode. - (alpha_expand_unaligned_load_words): Tidy. Take an offset argument. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Use REGNO_POINTER_ALIGN. Restructure so - that source and destination are separately optimized for alignment. - (alpha_expand_block_clear): Use REGNO_POINTER_ALIGN. - -Sun Feb 1 01:55:09 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (adddi3_internal_2): Be consistent with adddi3 expander - with handling of -32768. - -Sun Feb 1 01:48:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a - shell variable argument instead of only hard coded functions. - (GCC_NEED_DECLARATIONS): New macro to accept multiple functions. - - * configure.in: Collapse multiple calls to AC_CHECK_FUNCS into one - call. Collapse multiple calls to GCC_NEED_DECLARATION into one - call to GCC_NEED_DECLARATIONS (new macro.) Check if we need - declarations for bcopy, bcmp and bzero. - - * acconfig.h: Add stubs for bcopy, bcmp and bzero declarations. - - * gansidecl.h: If we have bcopy but don't declare it, then do so. - Likewise for bcmp and bzero. Only define macros for bcopy, bcmp, - bzero, index and rindex if they aren't already present. - -Sat Jan 31 11:26:58 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (close_dump_file): Wrap function prototype for - argument "func" in PROTO. - (dump_rtl): Likewise. - -Fri Jan 30 22:30:39 1998 John Carr <jfc@mit.edu> - - * sparc.c (sparc_override_options): Make v8plus and ultrasparc set - MASK_V8PLUS. - (output_function_epilogue): Omit epilogue if nothing drops through. - (output_move_double): Supress int ldd usage on ultrasparc and v9. - (registers_ok_for_ldd_peep): Likewise. - (print_operand): Supress b,a on ultrasparc. Let Y accept a constant. - (ultrasparc_adjust_cost): New function. - (sparc_issue_rate): New function. - * sparc.h (MASK_VIS, TARGET_VIS): New - (MASK_V8PLUS, TARGET_V8PLUS): New. - (TARGET_HARD_MUL32, TARGET_HARD_MUL): New. - (TARGET_SWITCHES): Add vis and v8plus. - (REG_CLASS_FROM_LETTER): Accept d and b for VIS. - (REGISTER_MOVE_COST): FP<->INT move cost 12 for ultrasparc. - (RTX_COSTS): Use TARGET_HARD_MUL - (ADJUST_COST): Call ultrasparc_adjust_cost. - (ISSUE_RATE): New. - * sparc.md (attr type): Add sload, fpmove, fpcmove. Adjust users - of load & fp appropritely. - (supersparc function units): Adjust for Haifa. - (ultrasparc function units): Likewise. - (get_pc_via_rdpc): All v9, not just arch64. - (movdi_v8plus, movdi_v8plus+1): New. - (adddi3_sp32+1): New. - (subdi3_sp32+1): New. - (movsi_insn, movsf_const_insn, movdf_const_insn): Know VIS. - (addsi3, subsi3, anddi3_sp32, andsi3, and_not_di_sp32): Likewise. - (and_not_si, iordi3_sp32, iorsi3, or_not_di_sp32, or_not_si): Likewise. - (xorsi3_sp32, xorsi3, xor_not_di_sp32, xor_not_si): Likewise. - (one_cmpldi2_sp32, one_cmplsi2): Likewise. - (ldd peepholes): Suppress for v9. - (return_adddi): Kill redundant test. Arg1 may be arith_operand. - (return_subsi): Revmove. - -Fri Jan 30 18:30:03 1998 John F Carr <jfc@mit.edu> - - * mips.c (save_restore_insns): Set RTX_UNCHANGING_P in register - save/restore MEM rtl. - -Fri Jan 30 09:08:16 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for declaration of abort. - * acconfig.h: Corresponding changes. - * toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should - be declared. - -Thu Jan 29 20:26:12 1998 Jeffrey A Law (law@cygnus.com) - - * genattrtab.c (optimize): Define in case PRESERVE_DEATH_INFO_REGNO_P - uses it. - -Thu Jan 29 09:27:56 PST 1998 Jeff Law (law@cygnus.com) + * system.h: Likewise. + + * toplev.c (error_with_file_and_line): Likewise. + (error_with_decl): Likewise. + (error_for_asm): Likewise. + (error): Likewise. + (fatal): Likewise. + (warning_with_file_and_line): Likewise. + (warning_with_decl): Likewise. + (warning_for_asm): Likewise. + (warning): Likewise. + (pedwarn): Likewise. + (pedwarn_with_decl): Likewise. + (pedwarn_with_file_and_line): Likewise. + (sorry): Likewise. + (really_sorry): Likewise. + + * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding + whether to declare `tree_node' and `rtx_def'. + + * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when + deciding whether to use ANSI variable args. + (build_nt): Likewise. + (build_parse_node): Likewise. + +Sun Nov 8 13:10:55 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Thu Jan 29 10:12:27 1998 Jeffrey A Law (law@cygnus.com) +Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * configure.in: Check for atoq and atoll. - * rtl.c (read_rtx): Use HAVE_ATOLL and HAVE_ATOQ to select the - proper routine for converting ascii into long long values. + * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB. -Thu Jan 29 01:28:14 1998 Klaus Kaempf <kkaempf@progis.de> +Sat Nov 7 22:26:19 1998 David Edelsohn <edelsohn@gnu.org> - * cccp.c (SYS$SEARCH, SYS$PARSE): Write as upper-case. + * collect2.c (main, case 'b'): Use else if. - * vmsconfig.com: Remove bytecode references. +Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * alpha/vms.h (PREFIX): Define. + * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): + Arrange to include gansidecl.h in {ht}config.h & tm.h just + before the config/ directory headers. + (tm_file_list, host_xm_file_list, build_xm_file_list): Handle + gansidecl.h in the list of dependencies. - * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. + * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. + (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, + mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, + gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, + dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, + cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): + Likewise. - * am-alpha.h: Don't include alloca for OPEN_VMS. + * cccp.c: Don't include gansidecl.h. + * cexp.y: Likewise. + * collect2.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/v850/v850.h: Likewise. + * cppalloc.c: Likewise. + * cpperror.c: Likewise. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.c: Likewise. + * cpplib.c: Likewise. + * cppmain.c: Likewise. + * cppulp.c: Likewise. + * demangle.h: Likewise. + * doprint.c: Likewise. + * dyn-string.c: Likewise. + * eh-common.h: Likewise. + * fix-header.c: Likewise. + * frame.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * gen-protos.c: Likewise. + * gencheck.c: Likewise. + * halfpic.h: Likewise. + * hash.c: Likewise. + * machmode.h: Likewise. + * mbchar.c: Likewise. + * prefix.c: Likewise. + * protoize.c: Likewise. + * recog.h: Likewise. + * rtl.h: Likewise. + * scan-decls.c: Likewise. + * tree.h: Likewise. + * varray.h: Likewise. - * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Define. +Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com> - * alpha/xm-vms.h (INCLUDE_DEFAULTS): Define. - (GCC_INCLUDE_DIR): Define + * i386.md (call_value_pop): If we're not popping anything, + defer to call_value. + (call_pop): Likewise defer to call. - * make-cc.com, make-cccp.com, make-cc1.com: Removed. - * makefile.vms: New file. +Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com> - * alpha/vms.h (CPP_PREDEFINES): Remove -Dalpha. + * function.c (purge_addressof): Clear purge_addressof_replacements + only after processing the whole function. - * alpha.c (output_prolog): Output '.name' directive - for minimal traceback information. +Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) - * alpha.c (output_prolog): Don't prepend entry point symbols - with '$' on OPEN_VMS. + * reload1.c (reload): If we can not perform a particular elimination + when we thought we could earlier, then we must always iterate through + the loop at least one more time. -Thu Jan 29 00:25:35 1998 David S. Miller <davem@tanya.rutgers.edu> - Jeffrey A Law (law@cygnus.com) +Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com> - * rtl.c (read_rtx): Use atol/atoq based upon disposition of - HOST_WIDE_INT. + * alpha.c (add_operand): Simplify the CONST_INT match. + (sext_add_operand): Correct typo in comparison by using + CONST_OK_FOR_LETTER_P. + * alpha.md (s?addq): Use sext_add_operand to allow the negative + constant alternatives to be generated. + (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow + small constants, since the hw instructions do. - * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC - as needed. - * genemit.c (gen_exp): Likewise. - * genpeep.c (match_rtx): Likewise. - * genrecog.c (write_tree_1): Likewise. +Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * c-lex.c (yyprint): Use proper format string based upon - disposition of HOST_BITS_PER_WIDE_INT. - (yylex): Put casts in right place for args to build_int_2. + * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a + previous insn to store directly into our reload register, make sure + that if the source of the previous insn is a reload register, its + spill_reg_store and spill_reg_stored_to values are cleared. -Thu Jan 29 00:24:29 1998 Jeffrey A Law (law@cygnus.com) +Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@gnu.org> - * combine.c: Fix typos in Jan27 changes. + * rs6000.md (floatunssidf2_internal splitter): Use base register + operand, not hard-coded SP. -Thu Jan 29 00:07:49 1998 Ollivier Robert <roberto@keltia.freenix.fr> +Fri Nov 6 04:07:53 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * i386/freebsd.h (LIB_SPEC): Correctly handle -shared, -p and friends. - (LINK_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. + * jump.c (calculate_can_reach_end): Fix thinko. -1998-01-28 Mike Stump <mrs@wrs.com> +Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com) - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after - reload completes. - * genattrtab.c (reload_completed): Define. + * reorg.c (fill_simple_delay_slots): Fix typo. - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Remove obsolete - comments. + * romp.h (LEGITIMIZE_ADDRESS): Fix typo. -Wed Jan 28 20:11:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the - SUBREG_REG if the word count is unchanged, also in the input reload - case. Disable non-applicable sanity checks. - -Wed Jan 28 20:08:26 1998 Jeffrey A Law (law@cygnus.com) - - * config/t-svr4 (TARGET_LIBGCC2_CFLAGS): Add -fPIC. - -Wed Jan 28 20:04:43 1998 Ian Lance Taylor <ian@cygnus.com> - - * i386/t-cygwin32 (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. - -Wed Jan 28 11:45:27 1998 Per Bothner <bothner@cygnus.com> - - * dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO - is a TREE_VEC before trying to use it for baseclasses. - (Chill uses the same field for a different purpose.) - - * toplev.c (strip_off_ending): Generalize to endings up to 5 chars. - -Tue Jan 27 23:15:55 1998 Lassi A. Tuura <lat@iki.fi> - - * config.sub: More accurate determination of HP processor types. - -Tue Jan 27 23:11:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. Add - prototype for `handle_sysv_pragma', and make it static. Add - parentheses around assignment used as truth value. - - * combine.c (combine_instructions): Protect variable `prev' with - macro HAVE_cc0. - (can_combine_p): Protect variable `link' with AUTO_INC_DEC. - (extract_left_shift): Add parentheses around operand of &. - (merge_outer_ops): Avoid an empty body in an else-statement. - (gen_rtx_combine): Remove unused variable `i'. - - * sparc/gmon-sol2.c: Include <fcntl.h>. Make return type of - function monstartup `void'. Likewise for internal_mcount. Add - `static void' prototype for moncontrol. Reconcile sprintf format - vs. args. - - * sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>. - Make return type of function_arg_slotno explicitly `int'. - (reg_unused_after): Add parentheses around assignment used as - truth value. - (save_regs): Add explicit braces to avoid ambiguous `else'. - (function_arg_slotno): Add parentheses around && within ||. - (function_arg_pass_by_reference): Likewise. - (sparc_flat_output_function_prologue): Reconcile fprintf format - vs. args. - - * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around - assignment used as truth value. - - * cplus-dem.c: Include <stdlib.h>. - (demangle_signature): Avoid an empty body in an else-statement. - (do_type): Remove unused variable `lvl'. - - * cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS. - Include <string.h>/<strings.h>. - (cpp_lex): Remove unused variable `namelen'. - (cpp_lex): Explicitly declare `num_chars' as an int. - - * cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include - <unistd.h> instead. Explicitly declare is_system_include - returning int. - (make_assertion): Remove unused variable `kt'. - (cpp_expand_to_buffer): Hide variable `obuf'. - (output_line_command): Remove unused variables, `line_end', - `line_cmd_buf' and `len'. - (macarg): Remove unused variable `arg_start'. - (special_symbol): Remove unused variable `i'. Add parentheses - around assignment used as truth value. - (do_include): Remove unused variables `pcfname' and `retried', - hide `pcf' and `pcfbuflimit'. - (do_line): Remove unused variable `i'. - (finclude): Hide variable `missing_newline'. - (cpp_handle_options): Remove unused variable `j'. - (read_token_list): Remove unused variable `eofp'. - (cpp_error_with_line): Remove unused variable `i'. - (cpp_warning_with_line): Likewise. - (cpp_pedwarn_with_line): Explicitly declare `column' as int. - (cpp_error_from_errno): Remove unused variable `i'. - - * cse.c (invalidate): Add parentheses around assignment used as - truth value. - (find_best_addr): Move declaration of variable `our_cost' inside - the conditional macro where its used. - (fold_rtx): Avoid an empty body in an if-statement. - (cse_insn): Wrap variables `this_insn_cc0_mode' and - `this_insn_cc0' in macro HAVE_cc0. - - * dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>. - (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's. - (output_uleb128): Likewise. - (output_sleb128): Likewise. - (output_cfi): Likewise. - (output_call_frame_info): Remove unused variables `j', `fde_size' - and `fde_pad'. - (comp_unit_has_inlines): Hide declaration as per rest of file. - (size_of_line_prolog): Correct typo in prototype. - (add_arange): Likewise. - (output_aranges): Likewise. - (add_name_and_src_coords_attributes): Likewise. - (gen_array_type_die): Likewise. - (gen_inlined_subroutine_die): Likewise. - (equate_decl_number_to_die): Remove unused variable `i'. - (print_die): Reconcile format vs. args in fprintf's. - (print_dwarf_line_table): Likewise. - (output_die): Likewise. - (output_line_info): Likewise. - (add_subscript_info): Avoid an empty body in an else-statement. - (gen_subprogram_die): Remove unused variable `fp_loc'. - - * dwarfout.c: Explicitly declare `next_pubname_number' as int. - Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE - macro. Protect `src_coords_attribute' prototype with - DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die' - prototype as in the rest of the file. Likewise for - `output_pointer_type_die' and `output_reference_type_die'. Remove - prototype for `type_of_for_scope'. - (output_unsigned_leb128): Reconcile format vs. args in fprintf. - (type_attribute): Add explicit braces to avoid ambiguous `else'. - - * final.c: Include <stdlib.h> and <string.h>/<strings.h>. - (shorten_branches): Protect declaration of tmp_length with - SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros. - (profile_function): Protect declaration of `sval' and `cxt' - variables with appropriate macros. - (final_scan_insn): Likewise for `note' variable. Add explicit - braces to avoid empty body in an if-statement. - (output_asm_insn): Move variable `i' inside macro conditional - where it is used. Add parentheses around assignment used as truth - value. - (asm_fprintf) Likewise, likewise. - - * fix-header.c (main): Remove unused variable `done'. Protect - declaration of `i' with FIXPROTO_IGNORE_LIST. - - * pexecute.c: Include <unistd.h>. Prototype `my_strerror'. - - * print-rtl.c (print_inline_rtx): Explicitly declare the parameter - `ind'. - - * profile.c: Include <string.h>/<strings.h>. - (instrument_arcs): Remove unused variables `note', `inverted', - `zero' and `neg_one'. - (branch_prob): Avoid empty body in an if-statement. - - * regclass.c: Include <stdlib.h>. - (reg_alternate_class): Explicitly declare parameter `regno'. - - * regmove.c (regmove_optimize): Remove unused variable `p'. Add - parentheses around assignment used as truth value. - (find_matches): Remove unused variables `output_operand' and - `matching_operand'. - (fixup_match_1): Remove statement with no effect: "if (0) ;". - - * scan.c (sstring_append): Explicitly declare `count' as int. - (scan_string): Explicitly declare parameter `init' as int. - - * sched.c: Include <stdlib.h>. - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (rank_for_schedule): Add parentheses around assignment used as - truth value. - (schedule_block): Likewise. - (regno_use_in): Likewise. - (schedule_insns): Remove unused variable `i'. - - * toplev.c: Include <stdlib.h> and <string.h>/<strings.h>. - (v_message_with_decl): Remove unused variable `n'. - (botch): Explicitly declare parameter `s' as char *. - (main): Add parentheses around assignment used as truth value. - - * tree.c (make_node): Protect the variable `kind' with the - GATHER_STATISTICS macro. - (real_value_from_int_cst): Move variable `e' inside conditional - macro area where it is used. - (tree_last): Add parentheses around assignment used as truth value. - (build1): Protect the variable `kind' with the GATHER_STATISTICS - macro. - (print_obstack_statistics): Reconcile format vs. args in fprintf. - Protect variables `i', `total_nodes', and `total_bytes' with the - GATHER_STATISTICS macro. - -Tue Jan 27 23:01:55 1998 Mike Stump (mrs@wrs.com) - - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Add - some comments regarding use of dead_or_set_p. - -Tue Jan 27 22:14:48 1998 Todd Vierling <tv@pobox.com> - - * fixincludes: Tweak fix for struct exception in math.h - -Tue Jan 27 17:21:09 1998 Gavin Koch (gavin@cygnus.com) - - * mips/mips.c (mips_expand_prologue,mips_expand_epilogue): - Change mode of registers used to add/sub from - hard_frame_pointer_rtx from word_mode to Pmode. - -Tue Jan 27 11:02:04 1998 Nick Clifton <nickc@cygnus.com> - - * v850.h (ASM_OUTPUT_ALIGNED_BSS): Use - asm_output_aligned_bss() instead of asm_output_bss(). - - * toplev.c (rest_of_compilation): Replace references to - stack_reg_dump_file and dbr_sched_dump_file with references to - rtl_dump_file. - -Tue Jan 27 10:22:13 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * tlink.c (scan_linker_output): Call fclose() for opened files. - -Tue Jan 27 05:05:26 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (output_epilog [!VMS]): Don't tag global functions if - compiling with -fpic -- we want to be able to override symbols - properly. - (alpha_expand_block_move): Fix thinko in last change. +Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz) - * alpha.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): New undef. + * i386.md (extendsidi2): Use # in the output template. + (extendsidi splitters): New splitters. -Tue Jan 27 03:21:23 1998 Richard Henderson <rth@cygnus.com> +Thu Nov 5 11:13:27 1998 Nick Clifton <nickc@cygnus.com> - * alpha.md (abssf, absdf): Revert last change. + * configure.in: Use unknown-elf.h as tm_file for arm-elf + configurations. + * configure: Regenerate. -Tue Jan 27 00:26:50 1998 John Carr <jfc@mit.edu> +Thu Nov 5 07:59:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * dwarf2out.c (dwarf2out_frame_init): Test value of DWARF2_UNWIND_INFO. - * mips/sni-svr4.h: Define DWARF2_UNWIND_INFO as 0. + * jump.c (init_label_info, delete_barrier_successors, + mark_all_labels, delete_unreferenced_labels, + delete_noop_moves, calculate_can_reach_end): New functions broken + out of jump_optimize. + (jump_optimize): Use them. -Tue Jan 27 00:07:02 1998 Jeffrey A Law (law@cygnus.com) +Thu Nov 5 07:57:45 1998 Andrew MacLeod <amacleod@cygnus.com> - * emit-rtl.c (gen_lowpart_common): Handle more case where converting - a CONST_INT into SFmode. + * except.c (expand_fixup_region_end): Make sure outer context labels + are not issued in an inner context during cleanups. -Tue Jan 20 16:01:03 1998 Anthony Green <green@cygnus.com> +Thu Nov 5 04:03:06 1998 Richard Henderson <rth@cygnus.com> - * 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, f/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 (OPTIMIZATION_OPTIONS): New SIZE argument - to macro. - * config/i386/i386.c (optimization_options): Accept new SIZE argument. + * alpha.md (addsi3, subsi3): No new temporaries once cse is + no longer expected. -Mon Jan 26 23:57:39 1998 Manfred Hollstein <manfred@s-direktnet.de> +Thu Nov 5 03:29:19 1998 Richard Henderson <rth@cygnus.com> - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. + * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as + to expose this midpoint to CSE. -Mon Jan 26 23:52:51 1998 Markus F.X.J. Oberhumer <k3040e4@c210.edvz.uni-linz.ac.at> +Thu Nov 5 03:42:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * configure.in (i*86-pc-msdosdjgpp): Treat like msdos & go32 - configurations. + * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. -Fri Jan 23 09:39:36 1998 Nick Clifton <nickc@cygnus.com> +Thu Nov 5 10:53:01 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * 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: Bring over gcc2 change of Nov 19 1997. -Mon Jan 26 12:09:42 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> +Wed Nov 4 23:43:08 1998 Graham <grahams@rcp.co.uk> - * except.c (check_exception_handler_labels): Disable warning when - flag_syntax_only. + * toplev.c (output_lang_identify): Make definition dependent on + ASM_IDENTIFY_LANGUAGE. -Mon Jan 26 18:17:32 1998 Jim Wilson <wilson@cygnus.com> + * print-rtl.c (spaces): Make static. - * sparc.c (pic_setup_code): Don't set LABEL_PRESERVE_P. +Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson <hp@axis.se> -Mon Jan 26 18:11:30 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + * extend.texi: Clarify proper uses for register clobbers in asms. - * c-decl.c (grokdeclarator): Get parameter tags from - last_function_parm_tags. - * dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before - traversing the parameter types. - (output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context. +Wed Nov 4 22:16:36 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Mon Jan 26 01:44:12 1998 Jeffrey A Law (law@cygnus.com) + * recog.h (enum op_type): Define. + (constrain_operands): Adjust prototype. + (recog_op_type): Declare new variable. + * recog.c (recog_op_type): New variable. + (insn_invalid_p): Allow modifying an asm statement after reload. + (extract_insn): Set up recog_op_type. + (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. + Don't compute operand types, use recog_op_type. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. + * reorg.c (fill_slots_from_thread): Likewise. + * reload1.c (reload_as_needed): Likewise. + (gen_reload): Likewise. + (inc_for_reload): Likewise. + (reload_cse_simplify_operands): Likewise. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * genattrtab.c (write_attr_case): Generate call to extract_insn, not + insn_extract. + * final.c (final_scan_insn): Use extract_insn, not insn_extract. + (cleanup_operand_subregs): Use extract_insn, not insn_extract. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * regmove.c (find_matches): Likewise. Change meaning of the return + value to be nonzero if the optimization can be performed, zero if + not. All callers changed. + Shorten some variable names to fix formatting problems. + (regmove_optimize): Shorten some variable names to fix formatting + problems. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * regclass.c (scan_one_insn): Likewise. + (record_reg_classes): Don't compute operand types, use recog_op_type. + * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use + recog_constraints instead. - * h8300.c (print_operand): Handle CONST_DOUBLE for 'e', 'f', and - the default case. - (get_shift_alg): Fix typo. +Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com) -Sun Jan 25 22:22:04 1998 Richard Henderson <rth@cygnus.com> + * rtl.h (flow2_completed): Declare. + * flow.c (flow2_completed): Definition. + * toplev.c (rest_of_compilation): Set and clear flow2_completed + as necessary. - * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. +Wed Nov 4 19:15:37 1998 Melissa O'Neill <oneill@cs.sfu.ca> -Sun Jan 25 22:14:28 1998 Richard Henderson <rth@cygnus.com> + * Makefile.in (libcpp.a): Ranlib libcpp.a. - * toplev.c (get_run_time): Make sure each case gets its variables. + * cppulp.c (user_label_prefix): Initialize. -Sun Jan 25 22:10:21 1998 Richard Henderson <rth@cygnus.com> +Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com) - * configure.in (build_xm_file): Add auto-config.h if host=build. - (host_xm_file_list): Don't add $(srcdir) to auto-config.h. - (build_xm_file_list): Likewise. - * configure: Rebuild. + * flow.c (mark_regs_live_at_end): Mark the stack pointer as live + at a RETURN if current_function_sp_is_unchanging is set. -Sun Jan 25 22:00:25 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> +Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * recog.c (validate_replace_rtx_1): Only perform substitutions - of arguments to commutative and comparison operators once. + * emit-rtl.c (try_split): Fixed error in Oct 10 patch. -Sun Jan 25 12:30:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Wed Nov 4 15:11:15 1998 Geoffrey Noer <noer@cygnus.com> - * sparc.c (output_cbranch): Add default case in - enumeration switch. + * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL, + TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New. + (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options. + (CPP_PREDEFINES): Don't define __CYGWIN32__ here. + (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options. + (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition + to __CYGWIN32__. + (LIB_SPEC): Handle -mno-cygwin option. + (LINK_SPEC): Handle -mdll. - * reorg.c (insn_sets_resource_p): Correct typo in prototype. - (emit_delay_sequence): Eliminate unused parameter, all callers - changed. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (fill_eager_delay_slots): Likewise. - (mark_referenced_resources): Add default case in enumeration switch. - (mark_set_resources): Likewise. - (rare_destination): Likewise. - (mostly_true_jump): Likewise. - (find_dead_or_set_registers): Likewise. - (redirect_with_delay_slots_safe_p): Remove unused variable `slots'. - (update_reg_unused_notes): Remove unused variable `p'. - (mark_target_live_regs): Remove unused variables `next' and - `jump_count'. - (fill_simple_delay_slots): Remove unused variable `j'. - (fill_slots_from_thread): Add parentheses around assignment used - as truth value. - (dbr_schedule): Likewise. +Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise. + * reload.c (find_reloads): Fix test for usage by other reload + to handle secondary reloads properly. -Sun Jan 25 12:13:47 1998 Michael Tiemann <michael@tiemann.org> +Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * cse.c (simplify_ternary_operation): Don't try to simplify - IF_THEN_ELSE expressions (created by combine) that don't use - relational operators. + * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an + intermediate structure which has exactly the members provided by + ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the + static intermediate structure. -Fri Jan 23 22:48:24 1998 Jeffrey A Law (law@cygnus.com) + (init_elim_table): Xmalloc() `reg_eliminate', and initialize it + from the intermediate structure. Do the same analogous fix in + the case where ELIMINABLE_REGS is not defined. - * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE - simplifications. +Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com) - * crtstuff.c (init_dummy): Keep the epilogue in the init - section for non-ELF systems. + * pa.h (SELECT_SECTION): Fix thinko. -Fri Jan 23 23:28:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Tue Nov 3 17:51:36 1998 Jim Wilson <wilson@cygnus.com> - * sh.md (movqi_i+1): New peephole. + * dwarf2out.c (output_call_frame_info): Comments on last change. -Fri Jan 23 15:39:42 1998 Jim Wilson <wilson@cygnus.com> +Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com) - * Makefile.in: Remove remaining bytecode stuff. - * emit-rtl.c, expr.c: Likewise. + * arm.c (add_constant): When taking the address of an item in the + pool, get the mode of the item addressed. -Fri Jan 23 12:41:10 1998 Nick Clifton (nickc@cygnus.com) + * arm.c (final_prescan_insn case INSN): If an insn doesn't + contain a SET or a PARALLEL, don't consider it for conditional + execution. - * toplev.c (lang_options): Add unknown-pragma options. + Restore ABI compatibility for NetBSD. + * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in + arm.h. + (RETURN_IN_MEMORY): Likewise. -Thu Jan 22 23:43:38 1998 Per Bothner <bothner@cygnus.com> +Mon Nov 2 11:46:17 1998 Doug Evans <devans@canuck.cygnus.com> - * dwarfout.c (byte_size_attribute): Simplify and fix - don't need - special (and incomplete) handling for Chill arrays. + * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations. + (m32r_output_block_move): Rewrite bytes < 4 handling. -Fri Jan 23 00:27:23 1998 John Carr <jfc@mit.edu> +Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * toplev.c (get_run_time): Call sysconf(_SC_CLK_TCK), when available, - to get clock rate. + * configure.in: Call AC_FUNC_VFORK. -Fri Jan 23 00:19:36 1998 Gavin Koch (gavin@cygnus.com) + * collect2.c: Define VFORK_STRING as a printable string for + error messages (either "vfork" or "fork".) If HAVE_VFORK_H is + defined, include vfork.h. If VMS is defined, define vfork() + appropriately. Remove vfork check on USG, we're using autoconf. + (collect_execute): Pass VFORK_STRING to fatal_perror instead of + checking locally what string to pass. + (scan_prog_file): Likewise. + (scan_libraries): Likewise. - * mips.md (muldi3_internal2): Reverse test for TARGET_MIPS16. + * gcc.c: Remove vfork check on USG, we're using autoconf. + Besides, no calls to vfork/fork occur in this file. -1998-01-22 scott snyder <snyder@d0sgif.fnal.gov> + * protoize.c: Likewise. - * mips.c (function_prologue): Use HARD_FRAME_POINTER_REGNUM in - .frame directive instead of FRAME_POINTER_REGNUM. +Mon Nov 2 07:52:28 1998 Alexandre Oliva <oliva@dcc.unicamp.br> -Fri Jan 23 00:08:55 1998 Robin Kirkham <rjk@mlb.dmt.csiro.au> + * configure.in (DEFAULT_LINKER): Renamed from LD. + (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch. + (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS. + * configure: Rebuilt. - * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881. - (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__. - * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES. - (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise. - (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__. - * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32. - (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. - (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, - mcpu32 or m5200. - * longlong.h: Replace __mc68332__ with __mcpu32__. +Mon Nov 2 01:48:10 1998 Alexandre Oliva <oliva@dcc.unicamp.br> -Thu Jan 22 19:55:40 PST 1998 Jeff Law (law@cygnus.com) + * BUGS: Fix the regexp for `more' to find the appropriate node. + Reported by Joerg Pietschmann <joerg_pietschmann@zkb.ch> - * version.c: Bump for snapshot. + * BUGS: Added link to the WWW FAQ. -Thu Jan 22 14:47:31 1998 Jim Wilson <wilson@cygnus.com> +Sun Nov 1 18:27:15 1998 Jeff Law (law@cygnus.com) - * reload.c (push_reload): In WORD_REGISTER_OPERATIONS code, add test - to require the SUBREG mode to be smaller than the SUBREG_REG mode. - * reload1.c (eliminate_regs): Likewise. + * version.c: Bump for snapshot. -Thu Jan 22 14:49:14 1998 Jeffrey A Law (law@cygnus.com) +Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) - * regmove.c (find_matches): Initialize matches->earlyclobber too. + * From Christian Gafton: + * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. + * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. + * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__. -Thu Jan 22 01:40:52 1998 Richard Henderson <rth@cygnus.com> +Sat Oct 31 21:42:39 1998 Mark Mitchell <mark@markmitchell.com> - * alpha.md (abssf2, absdf2): Disable in IEEE mode. - (negsf2, negdf2): Use proper subtract in IEEE mode. + * c-common.c (c_get_alias_set): Allow all type-punning through + unions. Don't get confused about the type of a bit-field, despite + the antics of build_modify_expr. -Tue Jan 20 09:29:09 1998 Jeffrey A Law (law@cygnus.com) +Sat Oct 31 22:35:29 1998 Jean-Pierre Radley <jpr@jpr.com> - * Makefile.in: Remove more bytecode stuff. - * expr.c, stmt.c, config/msdos/top.sed: Likewise. - * vax/xm-vms.h, winnt/config-nt.sed: Likewise. - * f/install.texi, objc/Make-lang.in: Likewise. + * fixinc.sco: Parameterize #include_next values. + * fixinc/fixinc.sco: Likewise. - * Makefile.in: Remove all bytecode support. - (OBJS): Make sure last entry is a real object file, not EXTRA_OBJS. - * emit-rtl.c: Remove all bytecode support. - * expr.c, expr.h function.c, integrate.c: Likewise. - * output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise. - * tree.h, varasm.c: Likewise. - * config/m68k/m68k.h: Likewise. - * bi-*, bc-*, bytecode*: Delete bytecode related files. - * modemap.def: Likewise. +Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com) -Tue Jan 20 09:02:31 1998 Gavin Koch (gavin@cygnus.com) + * toplev.c (rest_of_compilation): No longer set reload_completed. + * reload1.c (reload): Set it here. Perform instruction splitting + after reload has completed if we will be running the scheduler + again. - * mips/mips.md (divsi3,divdi3,modsi3,moddi3,udivsi3,udivdi3, - umodsi3,umoddi3): Handle mips16 div/mod by a constant. +Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com) -Mon Jan 19 21:57:00 1998 Richard Henderson <rth@cygnus.com> + * jump.c (jump_optimize): Initialize mappings from INSN_UID to + EH region if exceptions are enabled and we're performing cross + jump optimizations. + (find_cross_jump): Exit loop if the insns are in different EH regions. - * i386.md (push): Prohibit symbolic constants if flag_pic. - (movsi+1): Likewise for move to non-register. +Sat Oct 31 10:02:48 1998 Mark Mitchell <mark@markmitchell.com> -Mon Jan 19 11:15:38 1998 Jim Wilson <wilson@cygnus.com> + * dwarf2out.c (output_call_frame_info): Use + ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c. - * alpha.c (mode_mask_operand): Accept 0xffffffff on 32 bit host. - (print_operand): Handle 0xffffffff on 32 bit host. +Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * configure.in (thread_file): Rename uses before main loop to - target_thread_file. Initialize to empty in main loop. Set thread_file - to target_thread_file after main loop if not set. - * configure: Rebuild. + Reinstall Apr 24th fix, lost during May 6th gcc2 merge: + * c-common.c (check_format_info): Don't check for the 'x' + format character twice, instead check for 'x' and 'X' - * genattrtab.c (find_and_mark_used_attributes): Handle CONST_INT. - (add_values_to_cover): Revert last change (which had no ChangeLog - entry). - (simplify_with_current_value_aux): Handle CONST_INT. +Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com) -Mon Jan 19 10:14:55 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * configure.in (assembler features): Also make gas is configured if + we find it in the source tree. - * unprotoize.c: Define UNPROTOIZE first, to actually take effect. +Fri Oct 30 13:23:20 1998 Richard Henderson <rth@cygnus.com> -Mon Jan 19 10:11:52 1998 Richard Henderson <rth@cygnus.com> + * i386.c (i386_comp_type_attributes): Compare whether the + attributes are defined, not their tree nodes. - * configure.in: Add cpp stringify test. - * acconfig.h (HAVE_CPP_STRINGIFY): New tag. - * gengenrtl.c: Use it. - * configure, config.in: Rebuild. +Fri Oct 30 11:39:47 1998 Alexandre Oliva <oliva@dcc.unicamp.br> -Mon Jan 19 09:43:15 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * configure.in (gxx_include_dir): Bitten by autoconf quoting + characters. :-( + * configure: Rebuilt. - * Makefile.in (genrtl.c genrtl.h): Add dummy command for GNU make. +Fri Oct 30 10:43:29 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Mon Jan 19 09:38:18 1998 Richard Henderson <rth@cygnus.com> + * configure.in: Ignore non-absolute value in $AS. - * configure.in: Find declaration for sbrk. - * acconfig.h (NEED_DECLARATION_SBRK): New tag. - * config.in, configure: Rebuild. - * mips-tfile.c: Properly protect declaration of sbrk and free. - * toplev.c: Properly protect declaration of sbrk. +Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de> -Sun Jan 18 20:18:01 1998 Richard Henderson <rth@cygnus.com> + * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. - * alpha.c (alpha_handle_trap_shadows): Ignore CLOBBERs. +Fri Oct 30 00:42:34 1998 Mark Elbrecht <snowball3@usa.net> + + * configure.in (msdosdjgpp): Set exeext and target_alias. + +Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * flow.c (XNMALLOC): New macro. + (flow_int_list_blocks, basic_block_succ, basic_block_pred): New + static variables. + (add_edge, add_edge_to_label): New static functions. + (free_bb_memory): New function. + (flow_delete_insn): Delete function. + (basic_block_drops_in): Delete variable. + (find_basic_blocks): Allocate and initialize basic_block_head, + basic_block_succ. Don't allocate basic_block_drops_in. + Call free_bb_memory at the beginning. + (find_basic_blocks_1): Don't do multiple passes. + Delete code to compute basic_block_drops_in. + After calling make_edges, mark blocks reached by current block live. + Update test for unreachable live blocks. + (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers + changed. + Simplify to call add_edge_to_label when a LABEL_REF is found. + (make_edges): Simplify to call add_edge_to_label instead of + mark_label_ref most of the time. + Compute here whether control drops into the next block. + (delete_unreachable_blocks): Return void. All callers changed. + Delete unreachable blocks in reverse order. + After deleting all unreachable blocks, renumber the remaining ones + and update n_basic_blocks. + (delete_block): Speed up deletion a bit. + Don't set basic_block_drops_in for deleted blocks. + (free_basic_block_vars): Don't free basic_block_drops_in. + (life_analysis_1): Update to use new edge representation. + (dump_flow_info): Delete code to print basic block info; call + dump_bb_data instead. + (compute_preds_succs): Delete code to recompute basic_block_drops_in + and uid_block_number. + Simply copy the previously computed cfg. + (dump_bb_data): New arg LIVE_INFO. All callers changed. + Print register lifetime information if LIVE_INFO is nonzero. + * basic-block.h (dump_bb_data): Adjust prototype. + * gcse.c (gcse_main): Update call to dump_bb_data. + * rtl.h (free_bb_memory): Declare. + * toplev.c (rest_of_compilation): Call free_bb_memory. + + * reload1.c (struct elim_table): Delete MAX_OFFSET member. + (update_eliminable_offsets): Don't compute it. + (set_initial_elim_offsets): Don't initialize it. + Break out some code into set_initial_label_offsets so the rest of + this function can be called from reload_as_needed. + Assume that INITIAL_FRAME_POINTER_OFFSET is defined when + ELIMINABLE_REGS isn't. + (set_initial_label_offsets): New function, broken out of + set_initial_elim_offsets. + (set_offsets_for_label): New function, broken out of set_label_offsets + and reload_as_needed. + (reload): Call the two new functions. + (reload_as_needed): Call set_initial_elim_offsets instead of + duplicating the code. Likewise for set_offsets_for_label. + + * reload1.c (choose_reload_regs): Fix typo in Oct 17 change. + (emit_reload_insns): Ensure that when we set reg_reloaded_valid for + any hard reg, reg_reloaded_dead contains valid data. + +Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de> + + * i386.c (i386_comp_type_attributes): Return nonzero for mismatched + "stdcall" and "cdecl" attributes. + +Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com> + + * sched.c (update_flow_info): Add code to ! found_orig_dest case to + handle deleted no-op moves of hard registers. + * haifa-sched.c (update_flow_info): Likewise. -Sun Jan 18 01:54:27 1998 Jeffrey A Law (law@cygnus.com) +Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com) - * alpha/xm-winnt.h (HAS_INIT_SECTION): Undefine. + * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end + of the sequences to reload the HILO register which do not actually + reference HILO. -Sun Jan 18 00:57:35 1998 Mike Stump (mrs@wrs.com) +Thu Oct 29 12:39:35 1998 Jim Wilson <wilson@cygnus.com> - * configure.in (i960-wrs-vxworks): Default to latest vxworks release. + * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. -Sat Jan 17 23:41:36 1998 David S. Miller <davem@tanya.rutgers.edu> +Thu Oct 29 14:10:22 1998 Andrew MacLeod <amacleod@cygnus.com> - * combine.c (force_to_mode, nonzero_bits): Correctly optimize - constant offset computations from objects with known alignment in - the presence of STACK_BIAS. + * except.c (emit_eh_context): Make the EH context register stay alive + at -O0 so stupid.c doesn't get confused. - * varasm.c (immed_double_const): Add casts to HOST_WIDE_INT where - necessary. - (const_hash): Hash val is unsigned long. - (SYMHASH): Likewise. +1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * tree.c (TYPE_HASH): Type of hash val is unsigned long. + * emit-rtl.c (try_split): Do not try to split a BARRIER. - * print-tree.c (print_node_brief): HOST_PTR_PRINTF format wants a - char pointer, not HOST_WIDE_INT. - (print_node): Likewise. Also hash is unsigned long not - HOST_WIDE_INT. +Thu Oct 29 01:33:54 1998 Jan Hubicka <hubicka@freesoft.cz> + Jeffrey A Law (law@cygnus.com) - * cse.c (canon_hash): Hash is unsigned long not HOST_WIDE_INT. + * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM. + (zero_extendsidi2): Use # in output template and handle completely by + splits. + (zero_extend splitters): New define_splits. + (ashiftrt_32): New pattern. - * explow.c (optimize_save_area_alloca): New function for targets - where SETJMP_VIA_SAVE_AREA is true. - (allocate_dynamic_stack_space): On SETJMP_VIA_SAVE_AREA targets, - compute the amount of stack space needed should we find later that - setjmp is never called by this function, stuff rtl for this inside - a REG_NOTE of the final SET of stack_pointer_rtx. - * toplev.c (rest_of_compilation): If SETJMP_VIA_SAVE_AREA and - current_function_calls_alloca, call optimize_save_area_alloca. +Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com> -Sat Jan 17 23:22:59 1998 John Wehle (john@feith.com) + * tree.c (append_random_chars): New fn. + (get_file_function_name_long): Use it. - * i386.md: Remove redundant integer push patterns. - Don't bother checking for TARGET_PUSH_MEMORY when - pushing constants or registers. +Wed Oct 28 22:27:05 1998 Richard Henderson <rth@cygnus.com> + + * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last. + (LIBCPP_OBJS): New. Add cppulp.o. + (cppmain, fix-header): Depend on and use libcpp.a. + * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead + of the individual object files. + * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@, + last. + + * cccp.c (user_label_prefix): New. + (main): Set it off -f*leading-underscore. + (special_symbol): Use it. + * cpplib.c (special_symbol): Likewise. + (cpp_handle_option): Handle -f*leading-underscore. + * cppulp.c: New file. -Sat Jan 17 22:35:39 1998 Mumit Khan <khan@xraylith.wisc.edu> - J.J VanderHeijden <J.J.vanderHeijden@student.utwente.nl> + * output.h (user_label_prefix): Declare it. + * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix. + * toplev.c (f_options, main): Handle -f*leading-underscore. + + * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of + referencing USER_LABEL_PREFIX directly. + * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise. + * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. + * final.c (asm_fprintf): Use user_label_prefix instead. + * arm/thumb.c (thumb_print_operand): Likewise. + + * gcc.c (default_compilers): Pass -f*leading-underscore on to + cpp wherever appropriate. + +Wed Oct 28 23:09:25 1998 Robert Lipe <robertl@dgii.com> - * pexecute.c (pexecute): New function for mingw32. Supports pipes. - (pwait): New function for mingw32. + * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer- + specific compiler switches. - * gcc.c (execute): Mingw32 pexecute() supports pipes, but cygwin32 - pipe support is broken for now. +Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com) -1998-01-17 Lee Iverson <leei@Canada.AI.SRI.COM> + * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead + of rtl.h. - * emit_rtl.c (init_emit_once): Ensure that potential aliasing - between frame_pointer_rtx, hard_frame_pointer_rtx, and - arg_pointer_rtx is respected in initialization. - (init_emit_once): Use gen_rtx_raw_REG() to create - return_address_pointer_rtx. +Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reorg.c: #include "expr.h" for rtx prototypes. - * Makefile.in (reorg.o): Depend on expr.h + * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate + structure which has exactly the members provided by EXTRA_SPECS. + Xmalloc() the real `extra_specs', and initialize it from this + intermediate structure. -Sat Jan 17 21:28:08 1998 Pieter Nagel <pnagel@epiuse.co.za> + * alpha.h (EXTRA_SPECS): Revert change for missing initializers. - * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and - local_prefix to sub-make invocations. + * mips.h (EXTRA_SPECS): Likewise. -Sat Jan 17 21:24:16 1998 David T. McWherter <dtm@waterw.com> + * sparc.h (EXTRA_SPECS): Likewise. - * objc-parse.c: Recognize protocol qualifiers in class definitions. +Wed Oct 28 16:46:07 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> -Sat Jan 17 21:16:19 1998 Jeffrey A Law (law@cygnus.com) + * function.c (purge_addressof_1): Instead of aborting when a + bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not + work just put the ADDRESSOF on stack. Otherwise remember all such + successful replacements, so that exactly the same replacements + can be made on the REG_NOTEs. Remove the special case for CALL + insns again. + (purge_addressof_replacements): New variable. + (purge_addressof): Clear it at end. - * rtl.h: Fix typos. +1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> - * acconfig.h (NEED_DECLARATION_ATOL): New declaration to check for. - * configure.in: Check for atol. - * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. + * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB. + (lang_init): Call check_newline always. + * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling + cpp_start_read, set yy_cur and yy_lim to read from + parse_in.token_buffer, so that we'll see the first #line + directive. + * cpplib.c (cpp_start_read): finclude the main input file + before processing -include/-imacros. Process -imacros and + -include separately, and handle -include by stacking a + buffer for the file in question as if it'd been #included. + * toplev.c (documented_lang_options): Recognize -H when + USE_CPPLIB is on. + +1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cpplib.c: Merge do_once into do_pragma. Break file handling + code out of do_include. + Move append_include_chain, deps_output, + file_cleanup, redundant_include_p, import_hash, + lookup_import, add_import, read_filename_string, read_name_map, + open_include_file, finclude, safe_read to cppfiles.c. + Move prototypes for deps_output, append_include_chain, + finclude to cpplib.h. Move definition of struct + file_name_list there also. + + * cppfiles.c: New file. Contains all the above functions + broken out of cpplib.c; also hack_vms_include_specification + from cccp.c and find_include_file, a new function broken out of + do_include. + + * Makefile.in (cppmain): Depend on cppfiles.o. + (fix-header): Likewise. + (cppfiles.o): New target. + * configure.in (--enable-c-cpplib): Add cppfiles.o to + extra_c_objs. Add ../cppfiles.o to extra_cxx_objs. + +Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com> + + * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort + if pending_types is non-zero. + (dwarfout_finish): Verify pending_types is zero before finishing. + +Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com> + + * expr.c (convert_move): Use shifts to perform the move if a + suitable extend pattern cannot be found. Code written by + Richard Henderson <rth@cygnus.com>. + +Wed Oct 28 03:59:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * regclass.c (renumber, regno_allocated): New static variables, moved + out of allocate_reg_info. + (allocate_reg_info): Move these two variables outside the function. + Move code to free memory into new function free_reg_info. + (free_reg_info): New function, broken out of allocate_reg_info. + * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info. + * rtl.h (allocate_reg_info): Don't declare. + (free_reg_info): Declare. + + * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment. + +Wed Oct 28 02:38:12 1998 Jason Merrill <jason@yorick.cygnus.com> + + * toplev.c (compile_file): Temporarily revert last change. + +Wed Oct 28 00:00:35 1998 Jason Merrill <jason@yorick.cygnus.com> + + * c-typeck.c (convert_for_assignment): Parenthesize. + +1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * reload1.c (delete_output_reload): Avoid ambigous else. + +Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (compile_file): Call allocate_reg_info to free register + table memory. + * rtl.h (allocate_reg_info): Declare. + + * PROJECTS: Remove entry for local spilling. + + * final.c (cleanup_subreg_operands): New function. + (final_scan_insn): Use it. + (alter_subreg): Clear the "used" field when we turn a SUBREG into + a REG. + * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG + operands when reload has finished. + * reload.h (cleanup_subreg_operands): Declare.. + * flow.c (life_analysis_1): No longer delete CLOBBER insns after + reload. Handled in reload itself. + +Tue Oct 27 23:32:34 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * reload1.c (verify_initial_offsets): New function. + (reload): Call it after reload_as_needed. Also verify that the frame + size stays constant during reload_as_needed. + * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change. + + * reload.h (struct insn_chain): Add need_operand_change element. + * reload1.c (new_insn_chain): Clear it. + (calculate_needs_all_insns): Set it; don't overload need_reload. + (reload_as_needed): Use it. + + * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of + reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS + and reload_address_index_reg_class. + (find_reloads_address_1): Likewise. + * reload.h (reload_address_base_reg_class, + reload_address_index_reg_class): Don't declare. + * reload1.c (reg_old_renumber, pseudo_previous_regs, + pseudo_forbidden_regs, bad_spill_regs_global): New static variables. + (used_spill_regs): Now static. + (reload_address_base_reg_class, reload_address_index_reg_class, + regs_explicitly_used, counted_for_groups, counted_for_nongroups, + basic_block_needs, max_needs, group_size, group_mode, max_groups, + max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn, + forbidden_regs): + Deleted variables. + (init_reload): Delete code to compute base/index reg classes. + (reload): Delete variable J. + Delete code to manage basic_block_needs. + Don't compute regs_explicitly_used. + Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs, + pseudo_previous_regs. + Initialize bad_spill_regs_global. + Don't call order_regs_for_reload here. + Don't initialize spill_reg_order and n_spills. + Don't forbid explicitly used regs to be used for spill regs. + Change main loop to infinite loop, with explicit break statements. + Make SOMETHING_CHANGED variable local to that loop. + Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn, + max_groups_insn, max_nongroups_insn, group_size, group_mode. + Make sure spilled_pseudos is cleared before calling spill_hard_reg or + new_spill_reg. + Don't call dump_needs. + Delete code to reset potential_reload_regs. + Delete code to terminate loop conditional on the global needs variables + showing no further needs. + (calculate_needs_all_insns): Return void. All callers changed. + Initialize something_needs_elimination here, not in reload. + Delete avoid_return_reg kludge. + (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void. + All callers changed. + Initialize the group_mode and group_size elements of the arg CHAIN. + Delete code to manage basic_block_needs. + Operate on elements of CHAIN instead of global variables. + Delete avoid_return_reg kludge. + (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + Delete special SMALL_REGISTER_CLASSES code. + Delete spill_failure code; now in new_spill_reg. + (find_group): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + (maybe_mark_pseudo_spilled): New static function. + (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + Call order_regs_for_reload here, not in reload. + Initialize spill_reg_order and n_spills. + Simplify test whether an asm insn is involved. + Delete spill_failure code; now in new_spill_reg. + Call maybe_mark_pseudo_spilled for everything marked as live in + CHAIN. Merge CHAIN's used_spill_regs into the global variable + used_spill_regs. + (dump_needs): Take CHAIN arg. No longer static, to prevent the + compiler from optimizing this function (now unused) away. + Operate on elements of CHAIN instead of global variables. + (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers + changed. + Operate on elements of CHAIN instead of global variables. + (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args, + take CHAIN arg. All callers changed. + Operate on elements of CHAIN instead of global variables. + (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take + CHAIN, NONGROUP args. Return void. All callers changed. + Verify caller isn't trying to spill a pseudo. + Simplify test for illegal reg, just use bad_spill_regs. + Generate better error messages. + Operate on elements of CHAIN instead of global variables. + Mark spilled register in CHAIN's used_spill_regs element. + Don't call spill_hard_reg. + (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed. + Mark spilled hard regs in bad_spill_regs_global. + Mark affected pseudos in spilled_pseudos, but don't spill them. + (ior_hard_reg_set): New static function. + (finish_spills): Return int. All callers changed. + Compute spill_reg_order, n_spills and spill_regs here. Also update + regs_ever_live for regs used as spills. + For every pseudo in spilled_pseudos, spill it and mark the previous + hard reg it had in pseudo_previous_regs. Compute which hard regs + are used as spills in insns during which it is live, and retry global + register allocation. Update all life information in the + reload_insn_chain not to include pseudos without hard regs. + Call alter_reg for all affected speudos. + + (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special + case, it's not clear what it's supposed to do. + + (hard_reg_use_compare): Take bad_spill_regs into account. + (pseudos_counted): New static variable. + (count_pseudo): New static function. + (order_regs_for_reload): Take CHAIN arg. All callers changed. + Initialize bad_spill_regs from bad_spill_regs_global, then merge any + hard registers explicitly used across the current insn into the set. + Compute hard_reg_n_uses taking only pseudos live across this insn + into account. + Tweak sorting of potential_reload_regs. + (compare_spill_regs): Delete function. + (reload_as_needed): Don't sort the spill_regs array, it's computed + in proper order in finish_spills. + Delete avoid_return_reg kludge. + Delete code to manage basic_block_needs. + (allocate_reload_reg): Minor speed/readability tweaks. + Operate on elements of CHAIN instead of global variables. + (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed. + Delete avoid_return_reg kludge. + Initialize reload_reg_used from CHAIN's used_spill_regs element. + Delete unused label FAIL. + (reload_combine): Replace reload_address_index_reg_class with + INDEX_REGS. + Don't use used_spill_regs to determine information about lifetime of + hard regs. + +Tue Oct 27 13:15:02 1998 Nick Clifton <nickc@cygnus.com> + + * toplev.c (display_help): Ignore empty target specific + options, and if -W is also specified on the command line then + display undocumented options. + + * config/arm/arm.c: Updated with changes in devo sources. + * config/arm/arm.h: Updated with changes in devo sources. + * config/arm/lib1funcs.asm: Updated with changes in devo sources. + * config/arm/lib1thumb.asm: Add ELF support. + +Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@gnu.org> - * rtl.c (read_rtx): Initialize list_rtx to NULL, not NULL_RTX. + * collect2.c (aix64_flag): New variable. + (main, case 'b'): Parse it. + (GCC_CHECK_HDR): Object magic number must match mode. + (scan_prog_file): Only check for shared object if valid header. + Print debugging if header/mode mismatch. - * loop.c (find_and_verify_loops): When attempting to move insns from - inside the loop outside the loop, create a BARRIER if no suitable - one was found. +Tue Oct 27 10:15:02 1998 Nick Clifton <nickc@cygnus.com> - * jump.c (jump_optimize): Remove Dec 17, 1997 chance in - favor of an equivalent change from gcc-2.8. + Added support for arm-elf-linux configuration, submitted by Philip + Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf + code developed by Catherine Moore <clm@cygnus.com>. The following + files are affected: - * i386/x-sco5 (CC): Remove trailing whitespace. + * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf + targets. -Sat Jan 17 21:09:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * configure: Regenerated. - * gengenrtl.c (type_from_format): De-ANSIfy function signature. - (accessor_from_format): Likewise. - (xmalloc): New function for use when linking with alloca.o. + * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, + USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro + definitions conditional on their not having been already defined. -Mon Jan 5 02:53:01 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> + * config/arm/lin1funcs.asm: Add ELF only macros to generate .size + and .type directives, and add "(PLT)" qualification to function + calls. - * frame.c (find_fde): Correct FDE's upper bound. + * config/arm/linux.h: Deleted. This file is now superseded by + either linux-elf.h or linux-aout.h. -Fri Jan 16 16:23:52 1998 Richard Henderson <rth@cygnus.com> + * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. + (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel + support). + Move definitions from old linux.h file here. - * gengenrtl.c (DEF_RTL_EXPR): Provide a K&R compliant version. + * config/arm/elf.h: New file. Generic ARM/ELF support. -Fri Jan 16 10:16:10 1998 Jeffrey A Law (law@cygnus.com) + * config/arm/linux-aout.h: New file. Support for Linux with a.out. - * calls.c (expand_call): Move #ifdef code out of macro argument - lists. - (emit_library_call, emit_library_call_value): Likewise. + * config/arm/linux-elf.h: New file. Support for Linux with ELF. -Fri Jan 16 00:46:40 1998 Jeffrey A Law (law@cygnus.com) + * config/arm/linux-elf26.h: New file. Support for Linux with ELF + using the 26bit APCS. - * rtl.def (INLINE_HEADER): Fix bug exposed by gen_rtx_FOO changes. + * config/arm/unknown-elf.h: New file. Support for OS'es other + than Linux with ELF. -Thu Jan 15 01:02:30 1998 Jeffrey A Law (law@cygnus.com) + * config/arm/t-arm-elf: New file. makefile fragment for arm-elf + builds. - * version.c: Bump for snapshot. + * config/arm/coff.h: Include aout.h for basic assembler macros. + Add support for -mstructure_size_boundary=<n> command line option. -Wed Jan 14 22:49:17 1998 Richard Henderson <rth@cygnus.com> + * config/arm/arm.h: Add support for -mstructure_size_boundary=<n> + command line option. Make macro definitions conditional on their + not having been already defined. - * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO; - change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). - * caller-save.c, calls.c, combine.c, cse.c: Likewise. - * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. - * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. - * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.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. - * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. + * config/arm/arm.c: Add support for -mstructure_size_boundary=<n> + command line option. -Wed Jan 14 19:36:08 1998 Gavin Koch (gavin@cygnus.com) - * mips.h: Fix some type-o's from a previous change. +Tue Oct 27 08:56:46 1998 Andrew MacLeod <amacleod@cygnus.com> -Wed Jan 14 01:26:05 1998 Jeffrey A Law (law@cygnus.com) + * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING + has been changed to not include a newline. Use this macro instead. + (output_enumeral_list, const_value_attribute, name_attribute, + comp_dir_attribute, prototyped_attribute, producer_attribute, + inline_attribute, pure_or_virtual_attribute, output_inheritance_die, + dwarfout_file_scope_decl, generate_new_sfname_entry, + generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use + ASM_OUTPUT_DWARF_STRING_NEWLINE macro. - * loop.c (check_dbra_loop): Make sure initial value is a - CONST_INT before trying to normalize it. +Mon Oct 26 13:35:02 1998 Richard Henderson <rth@cygnus.com> -Tue Jan 13 23:27:54 1998 Robert Lipe (robertl@dgii.com) + * combine.c (subst): Process the inputs to a parallel asm_operands + only once. - * sco5.h (ASM_OUTPUT_SECTION_NAME): Refresh from ../svr4.h. +Mon Oct 26 13:32:31 1998 Richard Henderson <rth@cygnus.com> -Tue Jan 13 22:47:02 1998 Herman ten Brugge <herman@htbrug.net.HCC.nl> + * stmt.c (expand_asm_operands): Accept `=' or `+' at any position. - * cppexp.c: Include gansidecl.h +Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com) -Tue Jan 13 22:43:35 1998 Ian Lance Taylor <ian@cygnus.com> + * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document. - * svr4.h (LINK_SPEC): Never specify -h. - * ptx4.h (LINK_SPEC): Likewise. - * rs6000/sysv4.h (LINK_SPEC): Likewise. - * sparc/sol2.h (LINK_SPEC): Likewise. +Mon Oct 26 00:36:58 1998 Jeff Law (law@cygnus.com) -Tue Jan 13 22:39:40 1998 Richard Henderson (rth@cygnus.com) + * version.c: Bump for snapshot. - * c-typeck.c (comptypes): Exit early on NULL input. +Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> - * haifa-sched.c (schedule_insns): Correctly remove inter-block - dependencies after reload. + * stmt.c (expand_fixup): Set fixup->before_jump to a + NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. -Tue Jan 13 22:22:31 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> +Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__. + * Makefile.in (recog.o): Depend on toplev.h. + (insn-emit.o): Depend on recog.h. + (insn-peep.o): Depend on recog.h and insn-config.h. -Tue Jan 13 22:14:57 1998 Klaus Kaempf <kkaempf@progis.de> + * combine.c (simplify_set): Remove unused variable `scratches'. - * alpha/vms.h (DIR_SEPARATOR): define + * final.c (final_scan_insn): Wrap declaration of variables `vlen' + and `idx' in macro conditional controlling their use. -Tue Jan 13 22:13:04 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> + * genemit.c (main): Make the generated output file include + recog.h. Don't have it declare `insn_operand_constraint', since + we get it from recog.h. - * Makefile.in (stamp-proto): Remove. - (protoize.o, unprotoize.o): Straightforward compile. - * unprotoize.c: Define UNPROTOIZE here, not in the Makefile. + * genpeep.c (main): Make the generated output file include + insn-config.h and recog.h. -Tue Jan 13 21:59:39 1998 Mumit Khan <khan@xraylith.wisc.edu> + * recog.c: Include toplev.h. + (extract_insn): Remove unused variable `p'. - * i386/cygwin32.h (STRIP_NAME_ENCODING): Define for Win32 to strip - off the trailing @[NUM] added by ENCODE_SECTION_INFO. + * regclass.c (fix_register): Add missing braces around initializer + for `what_option'. + (allocate_reg_info): Move variable `i' into the scope where it is + used. Change its type to `size_t'. -Tue Jan 13 21:55:06 1998 Jeffrey A Law (law@cygnus.com) +Sun Oct 25 13:10:15 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * arm/netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now. - * i386/netbsd.h, m68k/netbsd.h, ns32k/netbsd.h: Likewise. - * sparc/netbsd.h, vax/netbsd.h: Likewise. + * reload.c (push_reload): When merging reloads, make sure + that reload_in_reg and reload_in are from the same reload in + all cases. -Tue Jan 13 21:37:07 1998 Shigeya Suzuki <shigeya@foretune.co.jp> +Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu> - * i386/bsd386.h (DWARF2_UNWIND_INFO): Define as zero for now. + * i386/crtdll.h (CPP_PREDEFINES): Fix typo. + * i386/mingw32.h (CPP_PREDEFINES): Likewise. -Tue Jan 13 17:50:55 1998 Jim Wilson <wilson@cygnus.com> +Fri Oct 23 23:42:03 1998 David Edelsohn <edelsohn@gnu.org> - * configure.in (target_cpu_default, target_cpu_default2): Use double - quotes around them when testing their value. - * configure: Rebuilt. + * loop.c (loop_has_tablejump): New variable. + (prescan_loop): Scan for it. + (insert_bct): Replace explicit scan with use of it. + * regclass.c (regclass): Restore loop variable j. + (record_reg_classes): Deterine op_types modifiers and initialize + classes[i] before matching constraints. Handle matching + constraints 5-9. -Tue Jan 13 09:07:44 1998 John Carr <jfc@mit.edu> +Fri Oct 23 13:55:48 1998 Jim Wilson <wilson@cygnus.com> - * gengenrtl.c (gencode): Emit new function obstack_alloc_rtx - to allocate rtx. - (gendef): Call obstack_alloc_rtx. + * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete + subreg support. -Tue Jan 13 01:16:36 1998 Robert Lipe (robertl@dgii.com) +Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * configure.in: (i[3456]86-UnixWare7-sysv5): Treat much like SVR4 - for now. + * mips.h (EXTRA_SPECS): Add missing initializers. -Thu Dec 18 18:40:17 1997 Mumit Khan <khan@xraylith.wisc.edu> +Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * i386/mingw32.h (INCOMING_RETURN_ADDR_RTX): Delete. Use the value - of DWARF2_UNWIND_INFO, if any, from i386/cygwin32.h instead. - (STANDARD_INCLUDE_DIR): Change to /usr/local/i386-mingw32/include. + * sparc.h (EXTRA_SPECS): Add missing initializers. + (sparc_defer_case_vector): Provide a prototype. -Tue Jan 13 00:44:02 1998 Jim Wilson <wilson@cygnus.com> + * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when + comparing it to the result of a pointer subtraction. - * mips.md (return_internal): Change mode from SImode to VOIDmode. +Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Sat Jan 10 22:11:39 1998 J. Kean Johnston <jkj@sco.com> + * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast + the argument to (unsigned char). - * i386/sco5.h (STARTFILE_SPEC, ENDFILE_SPEC): Correctly handle - "-static". + * alpha.h (EXTRA_SPECS): Add missing initializers. + (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the + format specifier. -Sat Jan 10 22:04:15 1998 Stan Cox <scox@equinox.cygnus.com> +Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) - * i386.md: (movsicc_1, movhicc_1): For alternate 3 set the opcode - suffix from operand 3. + * flow.c (life_analysis_1): Enable "rescan" code after reload. + (propagate_block): Delete dead code after reload. -Sat Jan 10 21:50:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - Jeffrey A Law (law@cygnus.com) + * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings + back Oct 15, 1998 change. + * haifa-sched.c (update_flow_info): Likewise. + * flow.c (life_analysis_1): Delete CLOBBER insns after reload. - * regmove.c: New implementation of regmove pass. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): Remove - decls, make them have external linkage. Return a value from - optimize_reg_copy_1. - * reload.h (count_occurrences): Add decl. - * reload1.c (count_occurrences): Delete decl, make it have external - linkage. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Declare. + * mn10200.md (truncated shift): Accept constant inputs too. -Sat Jan 10 20:30:12 1998 Jeffrey A Law (law@cygnus.com) +Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) - * regclass.c (record_address_regs): Don't use REG_OK_FOR_BASE_P - if it is not defined. + * machmode.h (mode_mask_array): No longer const. + * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. -Thu Jan 8 21:06:54 1998 Richard Henderson <rth@cygnus.com> +Fri Oct 23 11:19:06 1998 Martin v. Löwis <loewis@informatik.hu-berlin.de> - * Makefile.in (OBJ, GEN, RTL_H): Add genrtl.[oh] bits. - * emit-rtl.c (gen_rtx): Move special code to ... - (gen_rtx_CONST_INT): New function. - (gen_rtx_REG): New function. - (*): Update all calls to gen_rtx. - * genemit.c (gen_exp): Emit calls to gen_rtx_FOO for constant FOO. - * rtl.h: Include genrtl.h; prototype CONST_INT & REG generators. - (GEN_INT): Call gen_rtx_CONST_INT. - * gengenrtl.c: New file. + * frame.c: Somewhat explain `FDE'. + Suggested by Brendan Kehoe -Mon Jan 5 13:00:18 1998 John F. Carr <jfc@mit.edu> +Fri Oct 23 00:56:11 1998 Jason Merrill <jason@yorick.cygnus.com> - * alias.c (*_dependence): Call base_alias_check before canon_rtx. - (base_alias_check): If no base found for address call canon_rtx and - try again. + * expr.c (pending_chain): Move up. + (save_expr_status): Do save pending_chain. + (restore_expr_status): And restore it. + * function.h (struct function): Add pending_chain. -Mon Jan 5 11:39:49 1998 Jeffrey A Law (law@cygnus.com) +1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The + did not match the code. + +Fri Oct 23 00:07:01 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * regclass.c (regclass): Break out some code into new function + scan_one_insn, and into regclass_init. + (init_cost): New static variable, moved out of regclass. + (regclass_init): Initialize it here, not in . + (scan_one_insn): New static function, broken out of regclass. + * recog.c (apply_change_group): Break out some code into new + function insn_invalid_p. + (insn_invalid_p): New static fn, broken out of apply_change_group. + +Thu Oct 22 22:34:42 1998 Jim Wilson <wilson@cygnus.com> + + * reload1.c (reload_as_needed): When rewrite POST_INC, verify + reg_reloaded_contents matches incremented pseudo. + + * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. + +Fri Oct 23 11:11:56 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for + addressing modes with side effects. These are currently + placeholders for the C4x target. + +Thu Oct 22 16:46:35 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * loop.c (express_from): Make sure that when generating a PLUS of + a PLUS, any constant expression appears on the outermost PLUS. + +Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) + + * Makefile.in (distdir-cvs, distdir-start): Clean up so it + works if "$(srcdir)" != ".". + +Wed Oct 21 19:23:59 1998 Jim Wilson <wilson@cygnus.com> + + * expmed.c (store_bit_field): If need to add a SUBREG, then remove + existing SUBREG if we can, otherwise abort. + +Wed Oct 21 09:58:51 1998 Mark Mitchell <mark@markmitchell.com> + + * c-common.c (c_apply_type_quals_to_decl): Don't crash when + `restrict' is applied to a non-pointer variable. + +Wed Oct 21 09:18:58 1998 Mark Mitchell <mark@markmitchell.com> + + * invoke.texi: Document -flang-isoc9x. - * mips.c (mips_expand_prologue): Handle large frame with no outgoing - arguments for mips16. - (mips_expand_epilogue): Pass "orig_tsize" to save_restore_insns. - Don't lose if tsize is zero after handling large stack for mips16. - * mips.md (return): For trivial return, return address is in $31. + * Makefile.in (OBJS): Add splay-tree.o. + (c-common.o): Depend on rtl.h. + (splay-tree.o): List dependencies and provide build rule. + + * rtl.h (record_alias_subset): New function. + * alias.c: Include splay-tree.h. + (alias_set_entry): New type. + (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove. + (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p. + (mems_in_disjoin_alias_sets_p): New function. + (alias_set_compare): Likewise. + (insert_subset_children): Likewise. + (get_alias_set_entry): Likewise. + + * tree.h (TYPE_RESTRICT): New macro. + (TYPE_UNQUALIFIED): New manifest constant. + (TYPE_QUAL_CONST): Likewise. + (TYPE_QUAL_VOLATILE): Likewise. + (TYPE_QUAL_RESTRICT): Likewise. + (tree_type): Add restrict_flag. Reduce count of free bits. + (DECL_POINTER_ALIAS_SET): New macro. + (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. + (tree_decl): Add pointer_alias_set. + (build_qualified_type): New function. + (build_type_variant): Define in terms of build_qualified_type. + * tree.c (set_type_quals): New function. + (make_node): Initialize DECL_POINTER_ALIAS_SET. + (build_type_attribute_variant): Use build_qualified_type and + set_type_quals. + (build_type_variant): Rename, and modify, to become... + (build_qualified_type): New function. + (build_complex_type): Use set_type_quals. -Sun Jan 4 20:24:00 1998 Nigel Stephens <nigel@algor.co.uk> + * c-tree.h (C_TYPE_OBJECT_P): New macro. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (c_apply_type_quals_to_decl): New function. + (c_build_qualified_type): New function. + (c_build_type_variant): Define in terms of c_build_qualified_type. + (flag_isoc9x): Declare. + * c-typeck.c (qualify_type): Use c_build_qualified_type. + (common_type): Change to use TYPE_QUALS. + (comptypes): Likewise. + (convert_for_assignment): Likewise. + * c-aux-info.c (gen_type): Likewise. Deal with `restrict'. + * c-decl.c (flag_isoc9x): Define. + (c_decode_option): Handle -flang-isoc9x. + (grokdeclarator): Update to handle restrict. Use TYPE_QUALS, + c_build_qualified_type, etc. Use c_apply_type_quals_to_decl. + * c-lex.c (init_lex): Deal with restrict. + (init_lex): Don't treat restrict as a reserved word in + -traditional mode, or without -flang-isoc9x. + * c-lex.h (rid): Add RID_RESTRICT. + * c-parse.gperf (restrict, __restrict, __restrict__): Make + equivalent to RID_RESTRICT. + * c-parse.in (TYPE_QUAL): Update comment. + * c-common.c: Include rtl.h. + (c_find_base_decl): New function. + (c_build_type_variant): Rename, and modify, to become ... + (c_build_qualified_type): New function. + (c_apply_type_quals_to_decl): Likewise. + (c_get_alias_set): For INDIRECT_REFs, check to see if we can find + a particular alias set for the reference. + * toplev.c (documented_lang_options): Add -flang-isoc9x. - * mips/mips16.S: Various changes to make it work with -msingle-float - and -EL. +Wed Oct 21 09:15:06 1998 Nick Clifton <nickc@cygnus.com> -Sun Jan 4 14:25:18 1998 Gavin Koch <gavin@cygnus.com> - Ian Lance Taylor <ian@cygnus.com> - Jeff Law <law@cygnus.com> + * config/arm/arm.h (TARGET_SWITCHES): Document arm specific + command line switches. - * mips.c, mips.h, mips.md: First cut at merging in mips16 - support. Major modifications throughout all three files. +Tue Oct 20 10:04:51 1998 Graham <grahams@rcp.co.uk> -Sun Jan 4 01:01:50 1998 scott snyder <snyder@d0sgif.fnal.gov> + * reload.c (loc_mentioned_in_p): Add missing braces to bind + else to correct if. - * configure.in: Make gthr-default.h a forwarding header instead of - a symlink. +Mon Oct 19 16:34:05 1998 Tom Tromey <tromey@cygnus.com> -Sat Jan 3 12:08:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * gcc.c (option_map): Added --classpath and --CLASSPATH. - * gcov-io.h: Include sys/types.h to ensure we get size_t. +Tue Oct 20 10:59:02 1998 Gavin Romig-Koch <gavin@cygnus.com> - * pa.h (ASM_OUTPUT_MI_THUNK): Add missing % in fprintf. + * regclass.c (fix_register): Add error message. + * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the + new error message. -Fri Jan 2 23:40:09 1998 Jim Wilson (wilson@cygnus.com) - Jeffrey A Law (law@cygnus.com) +Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * iris6.h (LINK_SPEC): Hide __frame_dummy too. + * c-decl.c (warn_missing_noreturn): New global variable. + (c_decode_option): Check for new flags -W{no-}missing-noreturn. + (finish_function): Implement missing noreturn warning. + + * c-tree.h (warn_missing_noreturn): Declare extern. + + * invoke.texi: Document new flags. + + * toplev.c (documented_lang_options): Add description. + +Tue Oct 20 22:16:11 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT + loop optimization stable for the C4x. + (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop, + c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get, + c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT + loop optimization). + (c4x_address_conflict): Be more paranoid when packing a volatile + memref in a parallel load/store. + +Tue Oct 20 21:56:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (repeat_block_top, repeat_block_end, + repeat_block_filler): Deleted. + (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): + Condition code not set if destination register from 'c' class. + (*subbqi3_carry_clobber): Fix typo. + +1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * reorg.c (steal_delay_list_from_target): Check for insns that + modify the condition codes and effect the direction of the jump + in the sequence. -Fri Jan 2 04:57:57 1998 Weiwen Liu <liu@hepmail.physics.yale.edu> +Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> - * alpha.c (vms_valid_decl_attribute_p): Move within #if OPEN_VMS. + * function.c (purge_addressof_1): Replace call to + emit_insns_before() with emit_insn_before(). -Fri Jan 2 04:34:14 1998 Richard Henderson <rth@cygnus.com> +Mon Oct 19 19:34:03 1998 Mike Stump <mrs@wrs.com> - * c-decl.c (init_decl_processing): Provide proper fallback symbol - for __builtin_memset. - * expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE - not INTEGER_CST. Assert arg 3 is a constant. + * libgcc2.c (__pure_virtual): Call __terminate instead of _exit. - * alpha.c (mode_width_operand): Accept 64-bit modes. - (mode_mask_operand): Likewise. - (print_operand): Likewise for 'M' and 'U' codes. - (alpha_expand_unaligned_load): New function. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Likewise. - (alpha_expand_block_clear): Likewise. - * alpha.h (MOVE_RATIO): New define. - * alpha.md (extxl, ext*h, ins*l, mskxl): Name them. - (insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New. +Mon Oct 19 13:26:24 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3. - (CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable. + * jump.c (sets_cc0_p): Compile only if HAVE_cc0. -Thu Jan 1 15:40:15 1998 Richard Henderson <rth@cygnus.com> +Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: Put parenthesis around TARGET_CPU_DEFAULT's value. - * configure: Update. + * gcse.c (compute_hash_table): Correctly identify hard regs which are + clobbered across calls. -Thu Jan 1 10:49:12 1998 Jeffrey A Law (law@cygnus.com) + * loop.c (scan_loop): Be more selective about what invariants are + moved out of a loop. - * emit-rtl.c (operand_subword): Correctly handle extracting a word - from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN. +Mon Oct 19 10:46:58 1998 Jeff Law (law@cygnus.com) - * mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate - for first argument. + * version.c: Bump for snapshot. -Wed Dec 31 14:42:18 1997 Ian Lance Taylor <ian@cygnus.com> +Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: Set and subsitute host_exeext. Use it when creating - the assembler and linker symlinks. - * configure: Rebuild. - * Makefile.in (exeext): Set to @host_exeext@. - (build_exeext): New variable, set to @build_exeext@. - (FLAGS_TO_PASS): Pass down build_exeext. - (STAGESTUFF): Use build_exeext, not exeext, for gen* and bi* - programs. + * libgcc2.c (eh_context_static): Do not call malloc to allocate the + static eh_context structure. -Wed Dec 31 10:05:44 1997 Jeffrey A Law (law@cygnus.com) +Mon Oct 19 10:45:40 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * mn10200.md (addsi3, subsi3): Fix thinkos. + * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. All + callers changed. + (try_combine): Don't update max_scratch. + * flow.c (max_scratch, num_scratch): Delete variables. + (life_analysis_1): Don't initialize max_scratch. + (propagate_block): Don't update max_scratch. + (mark_set_1): Don't increment num_scratch. + * regs.h (max_scratch): Delete declaration. -Tue Dec 30 00:04:49 1997 Richard Henderson <rth@cygnus.com> +Mon Oct 19 10:28:15 1998 Jeffrey A Law (law@cygnus.com) - * sparc.h (ASM_OUTPUT_MI_THUNK): Move %o7 through %g1 instead of - save+restore. Fix pic+big_offset delay slot. Use "pic" case for - unix always, since we want to be able to thunk to functions in a - shared library from an application. + * reload1.c (reload_reg_free_before_p): Hack. Return 0 if EQUIV + is nonzero. This is temporary! -Mon Dec 29 14:37:31 1997 Ian Lance Taylor <ian@cygnus.com> + * sched.c (update_flow_info): Handle death notes made invalid by + instruction splitting. Partially reverts Oct 15, 1998 patch. + * haifa-sched.c (update_flow_info): Likewise. - * mips/t-ecoff (CROSS_LIBGCC1): Define to libgcc1-asm.a. - (LIB1ASMSRC, LIB1ASMFUNCS): Define. +Sun Oct 18 17:31:26 1998 Jeffrey A Law (law@cygnus.com) -Mon Dec 29 14:03:38 1997 Jeffrey A Law (law@cygnus.com) + * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL + if it has a nonzero DECL_INITIAL. - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. +Sat Oct 17 23:18:08 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Mon Dec 29 15:58:18 1997 Michael Meissner <meissner@cygnus.com> + * Makefile.in (flow.o): Depend on recog.h. - * libgcc2.c (inhibit_libc): Don't define inhibit_libc when cross - compiling if it was already defined. + * cpplib.h (directive_table): Add missing initializiers. + (finclude): Change type of variable `bsize' to size_t. -Sun Dec 28 00:32:16 1997 Jeffrey A Law (law@cygnus.com) + * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED. - * flow.c (find_basic_blocks): Don't create a new basic block - for calls in a LIBCALL block. + * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE. -Sun Dec 28 00:30:24 1997 David Edelsohn <edelsohn@mhpcc.edu> + * fix-header.c (lookup_std_proto): Cast the result of `strlen' to + `int' when comparing against one. + (cpp_file_line_for_message): Mark parameter `pfile' with + ATTRIBUTE_UNUSED. + (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - * config/fp-bit.c (L_df_to_sf): Fix typo in last change. + * flow.c: Include recog.h. + (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR). -Sat Dec 27 22:43:12 1997 Jeffrey A Law (law@cygnus.com) + * function.c (thread_prologue_and_epilogue_insns): Mark parameter + `f' with ATTRIBUTE_UNUSED. + (reposition_prologue_and_epilogue_notes): Likewise. - * cse.c (rtx_cost): Remove conflicting default case. + * genopinit.c (gen_insn): Cast argument of ctype functions to + `unsigned char'. -Sat Dec 27 21:20:02 1997 Richard Henderson <rth@cygnus.com> + * haifa-sched.c: Include recog.h. + (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when + comparing against one. - * configure.in: Move default enabling of Haifa out of for loop. - * configure: Rebuild. + * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now. -Thu Dec 25 01:02:54 1997 Jeffrey A Law (law@cygnus.com) + * mips-tfile.c (parse_end): Cast the argument of ctype function to + `unsigned char'. + (parse_ent): Likewise. + (parse_input): Likewise. - * version.c: Bump for snapshot. + * optabs.c (init_libfuncs): Likewise. -1997-12-25 Teemu Torma <tot@trema.com> + * protoize.c (find_rightmost_formals_list): Likewise. - * Makefile.in (GTHREAD_FLAGS): New var. - (LIBGCC2_CFLAGS): Added $(GTHREAD_FLAGS). - (distclean): Remove gthr-default.h. + * recog.h (const_double_operand): Fix typo in prototype. - * configure.in: Accept dce as a thread package. - Check for thread.h and pthread.h. - Link gthr-default.h to appropriate thread file and set - gthread_flags. - (hppa1.1-*-hpux10*): If --enable-threads, use dce threads and - include multilib definitions from pa/t-dce-thr. - (sparc-*-solaris2*): Enable threads by default, if thread.h or - pthread.h is found, preferring posix threads over solaris ones. + * tlink.c (scan_linker_output): Cast the argument of ctype + function to `unsigned char'. - * config/pa/t-dce-thr: New file. - * config/pa/t-pa: Removed multilibs. - * config/sparc/t-sol2: Ditto. + * toplev.c (check_lang_option): Cast the result of `strlen' to + `int' when comparing against one. - * gthr.h: New file. - * gthr-single.h: New file. - * gthr-posix.h: New file. - * gthr-solaris.h: New file. - * gthr-dce.h: New file. - * libgcc-thr.h: Removed. - * objc/thr-dce.c: New file copied from thr-decosf1.c. +Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> - * frame.c: Include gthr.h instead of libgcc-thr.h. - * libgcc2.c: Include gthr.h instead of libgcc-thr.h. - (eh_context_initialize): If __gthread_once fails, use static eh - context. - (eh_context_free): Call __gthread_key_dtor. + * gcse.c (dump_cuid_table): Correct typo. -Wed Dec 24 23:33:17 1997 Jeffrey A Law (law@cygnus.com) +Sat Oct 17 11:02:47 1998 Nick Clifton <nickc@cygnus.com> - * expr.h (MUST_PASS_IN_STACK): Allow target port to override. + * toplev.c (display_help): Prepend '-m' to target specific + options. + (check_lang_option): Ignore text after end of first word of a + language specific option. + +Sat Oct 17 02:26:03 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + + * reload1.c (reg_used_by_pseudo): New static variable. + (choose_reload_regs): Initialize it. + Use it instead of testing spill_reg_order to determine whether a + pseudo is live in a hard register across the current insn. + Fix a typo in a reference to reload_reg_rtx. + + * flow.c (propagate_block): Replace code that computes and uses + regs_sometimes_live with simpler code that just walks the set of + currently live registers. + + * Makefile.in (insn-extract.o): Fix dependencies. + * genextract.c (main): Generate includes for insn-config.h and + recog.h. + Delete generation of declarations which are now in recog.h. + * genrecog.c (main): Delete generation of definitions which are + now in recog.c. + * local-alloc.c (block_alloc): Use extract_insn and the variables + it sets up instead of looking up values by insn_code. + * recog.c (recog_operand, recog_operand_loc, recog_dup_loc, + recog_dup_num): Define here instead of generating the definition in + genrecog.c. + (recog_n_operands, recog_n_dups, recog_n_alternatives, + recog_operand_mode, recog_constraints, recog_operand_address_p): + New variables. + (extract_insn): New function. + * recog.h (extract_insn): Declare function. + (which_alternative, recog_n_operands, recog_n_dups, + recog_n_alternatives, recog_operand_mode, recog_constraints, + recog_operand_address_p): Declare variables. + * regclass.c (n_occurrences): New static function. + * reload.c (n_occurrences): Delete function. + (find_reloads): Use extract_insn. + * reload.h (n_occurrences): Delete declaration. + +Sat Oct 17 01:17:51 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_as_needed): Fix test for when to call + update_eliminable_offsets. + +Fri Oct 16 20:40:50 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + Fix consistency problems with reg_equiv_{mem,address}; + Improve reload inheritance; + + * reload.c (reload_out_reg): New variable. + (loc_mentioned_in_p, remove_address_replacements): New functions. + (remove_replacements): Deleted. + (push_reload): Set reload_out_reg[i]. + When merging, also set reload_{in,out}_reg[i], and remove + duplicate address reloads. + (combine_reloads): Copy reload_out_reg[i]. + (find_reloads): Do make_memloc substitution also when + reg_equiv_memory_loc[regno] and num_not_at_initial_offset + are both nonzero. + Include *recog_operand_loc in commutativity operand changes. + Generate optional output reloads. + Delete reference to n_memlocs. Don't set *recog_operand_loc before + processing operands. Call make_memloc in reg_equiv_address code. + Set *recog_operand_loc only after processing operands, and only + if replace is true. Return a value. + When changing address reload types for operands that didn't get + reloaded, use RELOAD_FOR_OPADDR_ADDRESS for + RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads. + Don't emit USEs for pseudo SUBREGs when not replacing. + (find_reloads_address): Do make_memloc substitution also when + reg_equiv_memory_loc[regno] and num_not_at_initial_offset + are both nonzero. + (find_reloads_toplev): Likewise. + Call make_memloc in reg_equiv_address code. + (debug_reload_to_stream): Add code to output reload_out_reg. + (make_memloc): Delete local variable i, ifdefed out code, and + references to memlocs and n_memlocs. + (memlocs, n_memlocs): Delete. + (push_secondary_reload): Clear reload_out_reg. + (find_reloads_address_1): Provide memrefloc argument to all calls + to find_reloads_address. + In AUTO_INC code, handle non-directly addressable equivalences properly. + * reload.h (reload_out_reg, num_not_at_initial_offset): Declare. + (find_reloads): Add return type. + (remove_address_replacements, deallocate_reload_reg): Declare. + * reload1.c (num_not_at_initial_offset): No longer static. + (delete_address_reloads, delete_address_reloads_1): Likewise. + (deallocate_reload_reg): New function. + (spill_reg_stored_to): New array. + (eliminate_regs): Don't substitute from reg_equiv_memory_loc. + (eliminate_regs_in_insn): Move assignments of previous_offset and + max_offset fields, and recalculation of num_not_at_initial_offset + into new static function: + (update_eliminable_offsets) . + (reload_as_needed): Call update_eliminable_offsets after calling + find_reloads. + Call forget_old_reloads_1 with contents of reloaded auto_inc + expressions if the actual addressing can't be changed to match the + auto_inc. + (choose_reload_regs): For inheritance, replace + reload_reg_free_before_p test with reload_reg_used_at_all test, and + remove stand-alone reload_reg_used_at_all test. + Use reload_out_reg to determine which reload regs have output reloads. + Treat reload_override_in more similar to inherited reloads. + Handle (subreg (reg... for inheritance. + For flag_expensive_optimizations, add an extra pass to remove + unnecessary reloads from known working inheritance. + Delete obsolete code for pseudos replaced with MEMs. + Handle inheritance from auto_inc expressions. + (emit_reload_insns): If reload_in is a MEM, set OLD to + reload_in_reg[j]. + Don't reload directly from oldequiv; if it's a pseudo with a + stack slot, use reload_in[j]. + Check that reload_in_reg[j] is a MEM before replacing reload_in + from reg_reloaded_contents. + Include non-spill registers in reload inheritance processing. + Also try to use reload_out_reg to set spill_reg_store / + reg_last_reload_reg. + In code to set new_spill_reg_store, use single_set to find out if + there is a single set. + Add code that allows to delete optional output reloads. + Add code to allow deletion of output reloads that use no spill reg. + At the end, set reload_override_in to oldequiv. + Also call delete_output_reload if reload_out_reg is equal to old + in oldequiv code. + Add code to call delete_output_reload for stores with no matching load. + Set / use spill_reg_stored_to. + Handle case where secondary output reload uses a temporary, but + actual store isn't found. + When looking for a store of a value not loaded in order to call + delete_output_reload, count_occurrences should return 0 for no + loads; but discount inherited input reloadill_reg_stored_to. + Do checks for extra uses of REG. Changed all + callers. + Use delete_address_reloads. + (reload): Take return value of find_reloads into account. + If a no-op set needs more than one reload, delete it. + (reload_reg_free_before_p): RELOAD_FOR_INPUT + can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS + for the same operand. + (clear_reload_reg_in_use): Check for other reloads that keep a + register in use. + (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS / + RELOAD_FOR_OPADDR_ADDR. + Take into account when an address address reload is only needed + for the address reload we are considering. + (count_occurrences): Use rtx_equal_p for MEMs. + (inc_for_reload): Return instruction that stores into RELOADREG. + New argument two, IN, and rtx. Changed all callers. + (calculate_needs_all_insns, reload_as_needed): + Don't clear after_call for a CLOBBER. + Keep track of how many hard registers need to be copied from + after_call, and don't clear after_call before we have seen + that much copies, or we see a different instruction. + +Fri Oct 16 10:58:23 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_basic_blocks_1): Do not delete unreachable blocks + after reload has completed. + +Fri Oct 16 17:26:10 1998 Dave Brolley <brolley@cygnus.com> + + * cpplib.c (cpp_get_token): Replace whitespace that occurs between + a macro name and the next token with a single blank if that whitespace + is in a macro buffer and the next token is not '('. + +Fri Oct 16 15:44:02 1998 Dave Brolley <brolley@cygnus.com> + + * cccp.c (rescan): Handle multibyte characters ending in backslash. + (rescan): Likewise. + (skip_if_group): Likewise. + (skip_to_end_of_comment): Likewise. + (macarg1): Likewise. + (discard_comments): Likewise. + (change_newlines): Likewise. + +Fri Oct 16 15:26:24 1998 Dave Brolley <brolley@cygnus.com> + + * c-lex.c (yylex): Fix unaligned access of wchar_t. + +Fri Oct 16 10:47:53 1998 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. + (TARGET_OPTIONS): Add --help documentation. + +Fri Oct 16 11:49:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change. + +Fri Oct 16 07:08:46 1998 Bruce Korb <korb@datadesign.com> + + * fixinc/* Moved in from ../contrib directory in preparation + for integrating it into the normal build process. In particular, + fixinc/Makefile.in must be config-ed into the build directory + as fixinc/Makefile. Proposed patches to ./Makefile.in and + ./configure.in will be "in the mail" momentarily. + +Fri Oct 16 08:13:46 1998 David S. Miller <davem@pierdol.cobaltnet.com> + + * cse.c (cse_basic_block): Fixup hash flushing loop so we do not + accidently walk into the free list. Comment how that can happen. + (invalidate): Fix indentation. + +Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + Jeffrey A Law (law@cygnus.com) -Wed Dec 24 23:12:14 1997 Jim Wilson <wilson@cygnus.com> + * flow.c (life_analysis_1): Do not clobber regs_ever_live after + reload. Never perform rescans of the insn chain after reload. + (propagate_block): Do not delete insn or create new autoinc addressing + modes after reload. - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use max_insn_uid. - (cse_main): Set max_insn_uid. + * jump.c (jump_optimize): Unconditionally use the code that was + previously conditional on PRESERVE_DEATH_INFO_REGNO_P. + * reload1.c (reload): When reloading is finished, delete all + REG_DEAD and REG_UNUSED notes. + (emit_reload_insns): Delete all code that was conditional on + PRESERVE_DEATH_INFO_REGNO_P. + (no_longer_dead_regs): Delete variable. + (reload_cse_delete_death_notes): Delete function. + (reload_cse_no_longer_dead): Delete function. + (reload_cse_regs_1): Delete all code to handle deletion of death + notes. + (reload_cse_noop_set_p): Likewise. + (reload_cse_simplify_set): Likewise. + (reload_cse_simplify_operands): Likewise. + (reload_cse_move2add): Likewise. + * reorg.c (used_spill_regs): Delete declaration. + (max_label_num_after_reload): Delete declaration. + (find_dead_or_set_registers): Don't assume that spill regs are + dead at a CODE_LABEL. + * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, + even after reload. + * sched.c (sched_analyze_insn): Likewise. + (update_flow_info): Likewise. + * haifa-sched.c (sched_analyze_insn): Likewise. + (update_flow_info): Likewise. + * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. + * toplev.c (max_label_num_after_reload): Delete variable. + (rest_of_compilation): Don't set max_label_num_after_reload. + Call life_analysis after reload_cse_regs if optimizing. + * config/gmicro/gmicro.h: Delete comment referring to + PRESERVE_DEATH_INFO_REGNO_P. + * config/i386/i386.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. + * config/sh/sh.h: Likewise. - * abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, - and define __LONG_MAX__ appropriately. Add support for -mabi=X, - -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. +Thu Oct 15 19:48:41 1998 David Edelsohn <edelsohn@gnu.org> -Wed Dec 24 22:38:34 1997 John Carr <jfc@mit.edu> + * loop.c (strength_reduce): Restore marking bct_p as + ATTRIBUTE_UNUSED. + * rs6000.c (optimization_options): Change #ifdef HAIFA to + HAVE_decrement_and_branch_on_count. + (small_data_operand): Remove TARGET_ELF condition for marking + parameters ATTRIBUTE_UNUSED. - * flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check; - optimization is now always enabled. +Thu Oct 15 11:45:51 1998 Robert Lipe <robertl@dgii.com> - * calls.c (expand_call): Recognize C++ operator new as malloc-like - function. + * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define. + (SELECT_SECTION): Resync with svr4.h. - * alias.c (memrefs_conflict_p): Eliminate tests now done by - base_alias_check. - (*_dependence): Call canon_rtx before base_alias_check. - (init_alias_once): New function to precompute set of registers which - can hold Pmode function arguments. - - * rtl.h: Declare init_alias_once. - - * toplev.c (compile_file): Call init_alias_once. - -Wed Dec 24 22:34:55 1997 Jeffrey A Law (law@cygnus.com) - - * tree.c (restore_tree_status): Do not dereference a null pointer. - -Tue Dec 23 12:56:46 1997 Paul Eggert <eggert@twinsun.com>: - - * genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT in addition to - RLIMIT_STACK. This maintains consistency with the recent, similar - patch to cccp.c and toplev.c. - -Tue Dec 23 05:17:28 1997 Richard Henderson <rth@cygnus.com> - - * genattrtab.c (expand_units): For large nr opclasses, expand - function_units_used with ORX to prevent blowups. Tag with FFS. - (num_unit_opclasses): New variable. - (gen_unit): Update it. - (enum operator): Add ORX_OP. - (operate_exp): Treat ORX as or, except don't expand across an if. - Reuse number rtx's after operating on them. - (check_attr_value): Accept IOR, AND, & FFS. - (write_test_expr): Transmute `in_comparison' to `flags'. Allow - for attribute value caching. Handle CONST_STRING, IF_THEN_ELSE. - (write_expr_attr_cache, write_toplevel_expr): New functions. - (write_attr_get): Handle FFS-tagged expressions. - (make_canonical): Don't expand const attributes. - (convert_const_symbol_ref): Dike out. - (evaluate_eq_attr): Handle SYMBOL_REF. - (main): Don't emit get_attr_foo for const attributes. - - * alpha.c (override_options): Reinstate PROCESSOR_EV6. - (alpha_adjust_cost): Add EV6 tuning; streamline EV5 tests. - * alpha.h (REGISTER_MOVE_COST): Increase ftoi/itof cost slightly. - * alpha.md: Redo all of the scheduling, adding EV6 support, and - combining function units where possible. - (attr "type"): Split loads, stores, cmov into int/fp. Combine - multiplies and divides. Add EV6 sqrt, ftoi, itof. - (attr "opsize"): New attribute. - (sqrtsf2-1, sqrtdf2-1): Provide proper TP_INSN patterns. - (movsf2-[12], movdf2-[12]): Provide CIX varients; don't allow CIX - to control register allocation. - (movsi2-1, movdi2-1): Likewise. - -Tue Dec 23 03:53:21 1997 Richard Henderson <rth@cygnus.com> - - * alpha.h (CPP_PREDEFINES, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, - MD_STARTFILE_PREFIX, ASM_FILE_START, ASM_SPEC, ASM_FINAL_SPEC): - Move OSF/1 specific defines out. - * alpha/elf.h (TARGET_VERSION, CPP_PREDEFINES, DEFAULT_VTABLE_THUNKS): - Move Linux specific defines out. - (LINK_SPEC): Genericize. - (ASM_FILE_START): Emit .arch if using more than the base insn set. - (ASM_OUTPUT_SOURCE_LINE): Remove; identical to alpha.h version. - (SDB_DEBUGGING_INFO): Remove; gas can't handle it. - (HANDLE_SYSV_PRAGMA): Define. - * alpha/osf.h: New file. - * alpha/linux.h: Split. Retain file-format independant defines. - Import Linux bits from elf.h. - (CPP_PREDEFINES): Take a file-format specific SUB_CPP_PREDEFINES - (FUNCTION_PROFILER): _mcount takes its address in $28. - (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Remove undef. - * alpha/linux-ecoff.h: New file. - * alpha/linux-elf.h: New file. - * alpha/vms.h (LIB_SPEC, LINK_SPEC): Copy from osf.h. - * alpha/win-nt.h (TARGET_DEFAULT): Define. - * configure.in (alpha*-*-osf*, alpha*-*-linux*) [tm_file]: - Add new headers as appropriate. - - * configure.in (alpha*): Enable Haifa by default. - (*-*-winnt3*): Change to winnt*, since we're not v3 specific. - * configure: Rebuild. +Thu Oct 15 12:42:13 1998 David Edelsohn <edelsohn@gnu.org> -Tue Dec 23 03:14:54 1997 Richard Henderson <rth@cygnus.com> + * loop.c (strength_reduce): Undo Oct 14 change marking bct_p + ATTRIBUTE_UNUSED. - * Makefile.in (clean): Remove the stages with their objects here ... - (distclean): ... instead of here. +Thu Oct 15 00:57:55 1998 Robert Lipe <robertl@dgii.com> -Mon Dec 22 11:24:01 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * c-pragma.c (handle_pragma_token): Test for null tree before + dereferencing TREE_CODE. - * cse.c (rtx_cost): Add default case in enumeration switch. - * fix-header.c (recognized_macro): Likewise. - (recognized_extern): Likewise. - (write_rbrac): Likewise. - * objc/objc-act.c (encode_aggregate): Likewise. - (gen_declarator): Likewise. - (gen_declspecs): Likewise. +Thu Oct 15 17:36:48 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Mon Dec 22 09:58:51 1997 Jeffrey A Law (law@cygnus.com) + * config/c4x/c4x.c: Convert to use GEN_INT. + (c4x_parallel_process): Rework to handle new repeat loop structure. - * haifa-sched.c (create_reg_dead_note): Detect and handle another - case where we kill more regs after sched than were killed before - sched. - * sched.c (create_reg_dead_note): Similarly. + * config/c4x/c4x.md: Convert to use GEN_INT. + (rptb_end): Convert to use GE test. Replace uses with clobbers. + (decrement_and_branch_on_count): Likewise. -Mon Dec 22 09:18:37 1997 Jeffrey A Law (law@cygnus.com) + * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that + loop.c has the desired functionality. + (rc_reg_operand): New prototype. - * c-pragma.c: Include flags.h. + * config/c4x/t-c4x: Can now build all front ends. -Sun Dec 21 22:10:59 1997 Mumit Khan <khan@xraylith.wisc.edu> +Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Don't assume anything - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32 to be consistent with mingw32 - and also to resolve symbols in prefix.c. + * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. - * i386/xm-cygwin32.h (HAVE_BCOPY): Define. This avoids a conflict - between gansidecl.h and newlib's _ansi.h when building libgcc2.a, - when the definitions in auto-config.h is not visible. - (HAVE_BZERO): Likewise. - (HAVE_BCMP): Likewise. - (HAVE_RINDEX): Likewise. - (HAVE_INDEX): Likewise. +Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) -Sun Dec 21 21:54:22 1997 Jeffrey A Law (law@cygnus.com) + * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. + * config/t-rtems: Do not install assert.h -- use newlib's. - * pa.c (emit_move_sequence): Handle a function label source - operand. +Wed Oct 14 21:57:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Sun Dec 21 16:13:55 1997 Nick Clifton <nickc@cygnus.com + * combine.c (combine_instructions): When finished, call init_recog. + * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. - * c-pragma.c (handle_pragma_token): Generate warning messages - about unknown pragmas if warn_unknown_pragmas is set. +Wed Oct 14 16:10:22 1998 Per Bothner <bothner@cygnus.com> - * c-decl.c (c_decode_option): Parse -Wunknown-pragmas command - line option to set variable: warn_unknown_pragmas. + * toplev.c: If flag_syntax_only, don't open or write assembler file. -Sun Dec 21 15:51:10 1997 Manfred Hollstein <manfred@lts.sel.alcatel.de> +Wed Oct 14 13:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the - definition. - (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. - -Sun Dec 21 13:58:39 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Define. - (libgcc2.a): Depend on $(DPBIT) and $(FPBIT). Add rules to - generate more fine grained floating point emulation libraries. - * config/fp-bit.c: Add protecting #ifdef to all functions so - that they can be compiled separately. If !FINE_GRAINED_LIBRARIES, - then compile all suitable functions. - (pack_d, unpack_d, fpcmp_parts): Add declarations, define with two - underscores to avoid namespace pollution. - * t-mn10200 (LIB2FUNCS_EXTRA): Remove fp-bit.c - (FPBIT): Define. - * t-mn10300 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c - (FPBIT): Define. - (DPBIT): Define. - -Sat Dec 20 11:26:47 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - Jeff Law <law@cygnus.com> + * cppalloc.c (memory_full): Mark function prototype with + ATTRIBUTE_NORETURN. - * bitmap.c (bitmap_clear): Ensure `inline' is at the beginning - of the declaration. - * c-decl.c (finish_decl): Use parentheses around && within ||. - * rtl.c: Include stdlib.h. - (read_skip_spaces): Add parentheses around assignments used as - truth values. - (read_rtx): Initialize list_rtx. - * cppexp.c (parse_number): Use || when operands are truth values. - * alias.c (find_base_value): Add default case. - (memrefs_conflict): Likewise. - * combine.c (sets_function_arg_p): Likewise. - * genemit.c (gen_exp): Likewise. - * local-alloc.c (contains_replace_regs): Likewise. - * rtlanal.c (jmp_uses_reg_or_mem): Likewise. - * fold-const.c (fold_convert): Use "&&" for truth values. - (fold): Add default case. - * sdbout.c (sdbout_field_types): Fix typo in declaration. - (sdbout_one_type): Add default case. - * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS. - (some_operand): Add default case. - (input_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (alpha_set_memflags_1): Likewise. - * reload1.c (reload_cse_simplify_operands): Ensure function - always returns a value. - * scan-decls.c (scan_decls): Likewise. - * c-lex.c (skip_white_space): Fix typo in declaraion. - * c-typeck.c (comp_target_types): Add parentheses around assignment - used as truth value. - (print_spelling): Likewise. - (constructor_implicit, constructor_result): Remove unused variables. - * collect2.c (scan_library): Protect prototype with - #ifdef SCAN_LIBRARIES. - * emit-rtl.c (find_line_note): Fix typo in declaration. - * final.c (asm_insn_count): Protect prototype with - #ifdef HAVE_ATTR_length. - * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC. - (try_pre_increment_1, try_pre_increment): Likewise. - * regclass.c (auto_inc_dec_reg_p): Protect prototype with - #ifdef FORBIDDEN_INC_DEC_CLASSES. Make return type explicit. - * gcov-io.h (__store_long, __write_long, __read_long): Fix - unsigned/signed comparisons. - * gcov.c (read_files): Remove unused "first_type" variable. - (scan _for_source_files): Initialize s_ptr. - (function_summary): Eliminate "%lf" formatting, use %ld for - longs. - (output_data): Initialize branch_probs and last_line_num. - Eliminate "%lf" formatting, use "%ld" for longs. - -Fri Dec 19 17:31:11 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips16.S: New file. - - * libgcc2.c (varargs): Handle mips16. - - * expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an - expression. - * stmt.c (expand_end_case): Likewise. - * alpha.h (CASE_VECTOR_PC_RELATIVE): Update. - * fx80.h, gmicro.h, m68k.h, m88k.h, ns32k.h: Likewise. - * rs6000.h, sh.h, tahoe.h, v850.h, vax.h: Likewise. - -Tue Dec 16 15:14:09 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * objc/Make-lang.in: Create runtime-info.h and libobjc_entry.o in - the build directory. - (libobjc.a): Update dependency list. - (libobjc.dll): Likewise. Use libobjc_entry.o from the build - directory. - (objc/sendmsg.o): Add -Iobjc to find runtime-info.h. - (objc.mostlyclean): Remove runtime-info.h. + * demangle.h (collect_exit): Likewise. -Fri Dec 19 00:19:42 1997 Richard Henderson <rth@cygnus.com> + * fix-header.c (v_fatal, fatal): Likewise. - * tree.c (build_range_type): Allow creation of ranges with no maximum. - * dbxout.c (dbxout_range_type): Handle missing TYPE_MAX_VALUE. - * dwarf2out.c (add_subscript_info): Likewise. - * dwarfout.c (subscript_data_attribute, byte_size_attribute): Likewise. - * sdbout.c (plain_type_1): Likewise. - * stmt.c (pushcase_range, all_cases_count, node_has_high_bound): - Likewise. - * fold-const.c (int_const_binop, fold_convert, make_range, fold): + * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort): Likewise. -Thu Dec 18 17:05:10 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * gcov.c (print_usage): Likewise. - * mips.c (fatal): Remove declaration. + * genattr.c (fatal, fancy_abort): Likewise. -1997-12-18 Mark Mitchell <mmitchell@usa.net> + * genattrtab.c (fatal, fancy_abort): Likewise. - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. Initialize the label_map to - NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop): Use them. - (copy_loop_body): Ditto. + * gencodes.c (fatal, fancy_abort): Likewise. -Thu Dec 18 19:19:57 1997 Ian Lance Taylor <ian@cygnus.com> + * genconfig.c (fatal, fancy_abort): Likewise. - * mips/mips.h (INIT_SUBTARGET_OPTABS): Define if not defined. - (INIT_TARGET_OPTABS): Define. - * mips/ecoff.h: Include gofast.h before mips.h. - (INIT_SUBTARGET_OPTABS): Define instead of INIT_TARGET_OPTABS. - * mips/elf64.h: Likewise. - * mips/elf.h (ASM_OUTPUT_SECTION_NAME): Define. + * genemit.c (fatal, fancy_abort): Likewise. -Thu Dec 18 14:51:12 1997 Jason Merrill <jason@yorick.cygnus.com> + * genextract.c (fatal, fancy_abort): Likewise. - * except.c: Remove register_exception_table{,_p}. + * genflags.c (fatal, fancy_abort): Likewise. -Thu Dec 18 14:57:29 1997 Gavin Koch <gavin@cygnus.com> + * genopinit.c (fatal, fancy_abort): Likewise. - * unroll.c (calculate_giv_inc): Handle constant increment found in - a MEM with an appropriate REG_EQUAL note. + * genoutput.c (fatal, fancy_abort): Likewise. - * calls.c (expand_call): Implement LOAD_ARGS_REVERSED. + * genpeep.c (fatal, fancy_abort): Likewise. - * dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the - frame pointer in the prologue. + * genrecog.c (fatal, fancy_abort): Likewise. -Thu Dec 18 00:19:38 1997 Robert Lipe <robertl@dgii.com> + * libgcc2.c (__eprintf, __default_terminate, __sjthrow, + __sjpopnthrow, __throw): Likewise. - * i386/x-sco5 (CLIB) Deleted. (ALLOCA) Added. - * i386/xm-sco5.h (USE_C_ALLOCA) Added. + * objc/objc-act.c (objc_fatal): Likewise. -Tue Dec 16 18:51:00 1997 Bill Moyer <billm@cygnus.com> + * protoize.c (usage, aux_info_corrupted, + declare_source_confusing): Likewise. - * config/m68k/m68k.c (output_function_prologue): Typecast - dwarf2out_cfi_label to (char *). - * config/m68k/m68kemb.h (STARTFILE_SPEC): Redefined to "". + * rtl.c (dump_and_abort): Likewise. -Wed Dec 17 15:06:04 1997 Richard Henderson <rth@cygnus.com> + * rtl.h (sets_cc0_p): Likewise. - * sparc.md (jump): Don't use the annul bit around an empty loop. - Patch from Kevin.Kelly@East.Sun.COM. + * toplev.c (float_signal, pipe_closed): Likewise. -Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com) +1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * jump.c: (jump_optimize): Don't use the return register as a - source1 of a conditional move. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges + when generating the decision tree for the general case. -Tue Dec 16 23:45:40 1997 Richard Henderson <rth@cygnus.com> + * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes + wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs. - * sparc.c (DF_MODES): Or the mask not the bit number. - (function_arg) [ARCH64]: Send unprototyped arg to fp reg first. +Wed Oct 14 11:14:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Wed Dec 17 00:13:48 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> + * Makefile.in (sched.o): Depend on recog.h. - * combine.c (force_to_mode): return immediately if operand is a CLOBBER. + * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to + (unsigned) when comparing against one. + (find_base_value): Likewise. + (record_base_value): Cast variable `regno' to (unsigned) when + comparing against one. Cast the result of REGNO() macro to + (unsigned) when comparing against one. + (memrefs_conflict_p): Change type of variables `r_x' and `r_y' to + unsigned. + (init_alias_analysis): Add unsigned variable `ui'. Use it as loop + variable where an unsigned index is needed. -Tue Dec 16 23:44:54 1997 Manfred Hollstein <manfred@s-direktnet.de> + * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code) + before comparing against one. - * fixincludes (size_t): Add support for Motorola's stdlib.h - which fails to provide a definition for size_t. - (fabs/hypot): Provide a prototype for fabs on m88k-motorola-sysv3. - (strlen,strspn,strcspn return value): Handle different layout on sysV88. - (hypot): Provide a fake for hypot for m88k-motorola-sysv3. + * collect2.c: Add prototypes for functions `error', `fatal' and + `fatal_perror'. Make these functions take variable arguments + instead of faking it with a fixed number of args. + (write_c_file_stat): Cast the argument of ctype macro to (unsigned + char). - * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to - prevent unresolved externals in libio. - * m88k/xm-sysv3.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Likewise. + * combine.c (can_combine_p): Mark parameter `pred' with + ATTRIBUTE_UNUSED. + (find_split_point): Cast variable `src' to (unsigned + HOST_WIDE_INT) when comparing against one. + (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift. + (simplify_logical): Likewise. + (force_to_mode): Cast result of INTVAL() macro to (unsigned + HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned + HOST_WIDE_INT) in shift. + (simplify_and_const_int): Cast result of INTVAL() macro to + `unsigned HOST_WIDE_INT' when comparing against one. + (merge_outer_ops): Cast variable const0 to `unsigned + HOST_WIDE_INT' when comparing against the result of + GET_MODE_MASK() macro. + (simplify_comparison): Likewise for variable `c0'. Cast variable + `const_op' to `unsigned HOST_WIDE_INT' when comparing against + one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the + result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing + against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast + result of INTVAL() macro to `unsigned HOST_WIDE_INT' when + comparing against one. + (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'. + + config/mips/mips.c (gen_int_relational): Cast result of INTVAL() + macro to `unsigned HOST_WIDE_INT' when comparing against one. + (output_block_move): Cast `sizeof' expression to (int) when + comparing against one. + (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing + against one. + (save_restore_insns): Cast `base_offset' to `long' to match format + specifier in fprintf. + + * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro + to `enum machine_mode'. + + * flow.c (life_analysis_1): Remove unused variable `insn'. + + * gcc.c (translate_options): Move variables `j' and `k' into the + scope in which they are used. Change their types to `size_t'. + (set_spec): Cast the argument of ctype macro to `unsigned char'. + (read_specs): Likewise. + (process_command): Cast `sizeof' to (int) when comparing against one. + (do_spec_1): Cast the argument of ctype macro to `unsigned char'. + (handle_braces): Cast both sides of `==' expression to `long' to + ensure sign matching. + (main): Cast variable `i' to `int' when comparing against one. + + * gcov-io.h (__fetch_long): Change type of parameter `bytes' from + int to size_t. Cast variable `i' to size_t when comparing against + one. + + * genattrtab.c (convert_set_attr_alternative): Remove unused + parameter `insn_code'. All callers changed. + (convert_set_attr): Likewise. + + * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to + size_t when comparing against one. Likewise for variable `len'. + + * global.c (global_alloc): Cast variable `max_regno' to size_t + when comparing against one. Likewise for variable `max_allocno'. + + * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED. + + * local-alloc.c (validate_equiv_mem_from_store): Mark parameter + `set' with ATTRIBUTE_UNUSED. + (find_free_reg): Cast `sizeof' expression to (int) when comparing + against one. + + * loop.c (count_loop_regs_set): Remove unused variable `dest'. + (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED. + (get_condition): Cast variable `const_val' to `unsigned + HOST_WIDE_INT' when comparing against one. Cast unsigned + expression to HOST_WIDE_INT when comparing against one. + (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED. + (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to + `unsigned' when comparing against one. + + * protoize.c (is_id_char): Change type of parameter `ch' to + unsigned char. + (munge_compile_params): Cast argument of ctype macro to (const + unsigned char). + (process_aux_info_file): Cast variable `aux_info_size' to int when + comparing against one. + (forward_to_next_token_char): Cast argument of ctype macro to + `const unsigned char'. + (edit_formals_lists): Likewise. + (find_rightmost_formals_list): Likewise. + (add_local_decl): Likewise. + (add_global_decls): Likewise. + (edit_fn_definition): Likewise. + (do_cleaning): Likewise. + (scan_for_missed_items): Likewise. + (edit_file): Cast variable `orig_size' to (int) when comparing + against one. + (main): Cast argument of ctype macro to `const unsigned char'. + + * recog.c (const_int_operand): Mark parameter `mode' with + ATTRIBUTE_UNUSED. -Tue Dec 16 23:25:45 1997 H.J. Lu (hjl@gnu.org) + * regclass.c (record_reg_classes): Change type of variable `c' to + `unsigned char'. Cast `char' array index to `unsigned char'. + + * reload.c (push_secondary_reload): Cast argument to + REG_CLASS_FROM_LETTER() macro to `unsigned char'. + + * reload1.c (calculate_needs): Cast `char' array index to + `unsigned char'. + (set_label_offsets): Change type of variable `i' to unsigned int. + Cast result of XVECLEN() macro to unsigned when comparing against + one. + (mark_not_eliminable): Change type of variable `i' to unsigned. + (order_regs_for_reload): Likewise. Cast `max_regno' to unsigned + when comparing against one. + (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when + comparing against one. + (choose_reload_regs): Hide unused label `fail'. + (reload_cse_simplify_operands): Cast `char' array index to + `unsigned char'. + (reload_combine_note_store): Mark parameter `set' with + ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing + against one. + (reload_cse_move2add): Remove unused variable `src2'. + + * sched.c: Include recog.h. + (sched_note_set): Remove unused parameter `b'. All callers + changed. + (split_hard_reg_notes): Likewise for parameter `orig_insn'. + (blockage_range): Cast result of UNIT_BLOCKED() macro to (int) + when comparing against one. - * config/sparc/linux64.h (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - (LIB_SPEC): Updated for glibc 2. + * stupid.c (stupid_find_reg): Mark parameter `changes_size' with + ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when + comparing against one. -Tue Dec 16 20:11:36 1997 Jeffrey A Law (law@cygnus.com) + * unroll.c (precondition_loop_p): Remove unused parameter + `loop_end'. All callers changed. - * ginclude/stdarg.h: Undo BeOS changes, they break hpux. - * ginclude/varargs.h: Likewise. +Tue Oct 13 22:12:11 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Tue Dec 16 00:32:01 1997 Jeffrey A Law (law@cygnus.com) + * reload1.c (maybe_fix_stack_asms): New static function. + (reload): Call it. - * version.c: Bump for snapshot. + * reload.h (compute_use_by_pseudos): Declare. -Tue Dec 16 00:14:29 1997 H.J. Lu (hjl@gnu.org) + * reload1.c (spilled_pseudos, insns_need_reload): New variables. + (something_needs_reloads): Delete variable. + (finish_spills): New function. + (compute_use_by_pseudos): New function. - * frame.h (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__deregister_frame_info): Return void *. - * frame.h (__deregister_frame_info): Ditto. - * collect2.c (__deregister_frame_info): Ditto. + (delete_caller_save_insns): Lose argument FIRST. All callers changed. + Use the reload_insn_chain instead of walking the rtl directly. -Mon Dec 15 18:40:08 1997 Richard Henderson <rth@cygnus.com> + (reload): Allocate and free spilled_pseudos. + Ensure that all calls of spill_hard_reg are followed by a call to + finish_spills. + Use the insns_need_reload list instead of something_needs_reloads + to find out if reload_as_needed must be called. + Clear unused_insn_chains at the end. - * expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG. + (calculate_needs_all_insns): Lose FIRST parameter. All callers + changed. + Delete code to keep track of current basic block. + Walk reload_insn_chain instead of the rtl structure. Build the + insns_need_reload chain. + Remember which insns need reloading/elimination by setting the + appropriate fields in struct insn_chain, not by putting modes on the + insn. + + (calculate_needs): Lose THIS_BLOCK arg. Accept arg CHAIN instead of + arg INSN. All callers changed. + Delete declaration of struct needs. + Don't set something_needs_reloads. + Record insn needs in the CHAIN argument. + + (spill_hard_reg): Record the affected pseudos in spilled_pseudos. + + (reload_as_needed): Lose FIRST arg. All callers changed. + Walk the reload_insn_chain instead of the rtx structure. + Delete code to keep track of current basic block. + Rename one of the NEXT variables to OLD_NEXT. + + (allocate_reload_reg): Accept arg CHAIN instead of arg INSN. All + callers changed. + (choose_reload_regs): Likewise. -Mon Dec 15 18:31:43 1997 Richard Henderson <rth@cygnus.com> + (emit_reload_insns): Replace INSN and BB args with arg CHAIN. All + callers changed. - * alpha.c (alpha_cpu_name): New variable. - (alpha_mlat_string): Likewise. - (alpha_memory_latency): Likewise. - (override_options): Handle -mmemory-latency. - (alpha_adjust_cost): Adjust load cost for latency. - * alpha.h (TARGET_OPTIONS): Add meory-latency. - (REGISTER_MOVE_COST): Define in terms of memory_latency. Take - TARGET_CIX into account. - (MEMORY_MOVE_COST): Define in terms of memory_latency. - * invoke.texi (DEC Alpha Options): Document -mmemory-latency. + * caller-save.c (MOVE_MAX_WORDS): New macro. Use it throughout + instead of (MOVE_MAX / UNITS_PER_WORD) computation. + (hard_regs_live, hard_regs_need_restore): Delete variables. + (n_regs_saved): Now static. + (referenced_regs, this_insn_sets): New variables. - * alpha.h (ASM_COMMENT_START): New macro. + (setup_save_areas): Restructure the code a bit. -Mon Dec 15 17:48:05 1997 Richard Henderson <rth@cygnus.com> + (restore_referenced_regs): Delete function. + (mark_referenced_regs): New function, similar to the old + restore_referenced_regs, but mark registers in referenced_regs. - * reload.h, reload1.c (eliminate_regs), caller-save.c, dbxout.c, - dwarfout.c, dwarf2out.c, reload.c, sdbout.c: Revert March 15 change. + (clear_reg_live): Delete function. + (mark_set_regs): Renamed from set_reg_live. All callers changed. + Only mark registers in this_insn_sets. - * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the - SUBREG_REG if the word count is unchanged. - * reload1.c (eliminate_regs) [case SET]: If W_R_O, preserve - subregs of identical word size for push_reload. + (save_call_clobbered_regs): Rework this function to walk the + reload_insn_chain instead of using the list of instructions directly. + Delete code to keep track of register lives, compute live regs on the + fly from information in the chain. + Instead of calling restore_referenced_regs, use mark_referenced_regs, + then walk the set it computes and call insert_restore as appropriate. -Mon Dec 15 Mark Mitchell <mmitchell@usa.net> 11:41:32 1997 + (insert_restore): Lose INSN and BLOCK args. Add CHAIN arg. All + callers changed. + Restructure the code a bit. Test hard_regs_saved instead of + hard_regs_need_restore. + (insert_save): Lose INSN and BLOCK args. Add CHAIN and TO_SAVE + args. All callers changed. + Restructure the code a bit. Use TO_SAVE to determine which regs to + save instead of more complicated test. + (insert_one_arg): Lose INSN and BLOCK args. Add CHAIN arg. All + callers changed. + Create a new insn_chain structure for the new insn and place it + into the chain. - * toplev.c (rest_of_compilation): Don't call save_for_inline_copy - if all we're doing is dealing with -Wreturn-type. + * rtl.texi: Update documentation to reflect that reload no longer + puts modes on the insns. -Mon Dec 15 09:44:39 1997 Richard Henderson <rth@cygnus.com> +1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - * alpha.md (zero_extendqihi2, zero_extendqisi2, zero_extendqidi2): - Use and 255 instead of zapnot 1, since it schedules better. + * function.c (purge_addressof_1): Force the first argument of a + CALL insn to memory. -Mon Dec 15 08:48:24 1997 Jeffrey A Law (law@cygnus.com) +Wed Oct 14 00:38:40 1998 Jeffrey A Law (law@cygnus.com) - * stmt.c (expand_asm_operands): If an ASM has no outputs, then treat - it as volatile. + * rtl.h: Delete duplicate prototypes. Add some missing + prototypes. + * rtlanal.c (for_each_rtx): Formatting tweak. -Mon Dec 15 00:04:48 1997 Jeffrey A Law (law@cygnus.com) +1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on - dependency we delete. Properly update prev for multiple consecutive - deletions. - (priority): Skip deleted dependence. + * real.c (emdnorm and etoasc): Disable round to even for c4x target + to be compatible with TI compiler. -Fri Dec 12 18:54:23 1997 Per Bothner <bothner@cygnus.com> + * Makefile.in (USER_H): Add va-c4x.h to definition. - * expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod. +Tue Oct 13 23:03:37 1998 Richard Henderson <rth@cygnus.com> -Fri Dec 12 01:19:48 1997 Jason Merrill <jason@yorick.cygnus.com> + * function.c (purge_addressof_1): Fix typo in inequality: do + bitfield optimization for equal mode sizes. + * expmed.c (store_bit_field): Don't take subregs of subregs in + the movstrict case. Tidy a potential problem in the multi-word case. + (extract_bit_field): Likewise. - * flow.c (flow_analysis): Be consistent with find_basic_blocks in - determining when a new basic block starts. +Tue Oct 13 22:12:11 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * alpha/osf2or3.h (LIB_SPEC): Restore missing defn. + * flow.c (find_basic_blocks): Emit NOPs after normal calls in this + function. + Compute max_uid_for_flow by calling get_max_uid after the scan. + (find_basic_blocks_1): Don't emit NOPs here. - * pa.h (TEXT_SPACE_P): Use TREE_CODE_CLASS. - * pa.md (iorsi3): Add missing args to *_operand calls. +Tue Oct 13 22:05:49 1998 Richard Henderson <rth@cygnus.com> - * except.c (call_get_eh_context): Don't mess with sequences. - (emit_eh_context): Include the call in the sequence here. + * alias.c (base_alias_check): Accept new args for the modes of the + two references. Use them to determine if an AND can overlap. Update + all callers. + (memrefs_conflict_p): Assume sizes are aligned, and uses them + to determine if an AND can overlap. -1997-12-11 Paul Eggert <eggert@twinsun.com> +Tue Oct 13 17:51:04 1998 Jim Wilson <wilson@cygnus.com> - * collect2.c (write_c_file_glob): Allocate initial frame object - in static storage and pass its address. + * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16 + check. Add comment to document problems with TARGET_SUN_FPA version + of this macro. + * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves. -Thu Dec 11 23:33:48 1997 Jason Merrill <jason@yorick.cygnus.com> +Tue Oct 13 17:46:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * except.c (call_get_eh_context): Don't take a parm. - Put the call at the top of the function. - (emit_eh_context): Adjust. - (get_eh_context): Replace with former use_eh_context. - (get_eh_context_once, get_saved_pc_ref): Remove. - (start_eh_unwinder, end_eh_unwinder, emit_unwinder): Remove. - * except.h: Adjust. - * integrate.c (expand_inline_function): Adjust. - * toplev.c (rest_of_compilation): Don't call emit_unwinder. + * Makefile.in (gencheck.o): Depend on gansidecl.h. -Fri Oct 10 17:58:31 CEST 1997 Marc Lehmann <pcg@goof.com> + * c-common.c (print_char_table): Add missing initializers. + (scan_char_table): Likewise. + (time_char_table): Likewise. - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - (DIR_SEPARATOR, NO_SYS_SIGLIST): Likewise. + * c-decl.c (c_decode_option): Mark parameter `argc' with + ATTRIBUTE_UNUSED. + (declare_parm_level): Mark parameter `definition_flag' with + ATTRIBUTE_UNUSED. -Thu Dec 11 23:55:17 1997 Manfred Hollstein <manfred@s-direktnet.de> + * c-lex.c (readescape): Use `(unsigned)1' in shift. + (yylex): Likewise. Cast `sizeof' to an (int) when comparing + against one. - * fixincludes (strlen,strspn,strcspn return value): Handle different - layout on sysV88. - (hypot): Provide a fake for hypot which is broken on - m88k-motorola-sysv3. + * calls.c (store_one_arg): Remove unused parameter `fndecl'. All + callers changed. + (emit_call_1): Mark parameters `fndecl' and `funtype' with + ATTRIBUTE_UNUSED. + (expand_call): Cast result of MIN() to (unsigned int) when + comparing against an unsigned value. -Thu Dec 11 23:50:17 1997 John F. Carr <jfc@mit.edu> + * cccp.c (pcfinclude): Remove unused parameter `limit'. All + callers changed. + (make_definition): Remove unused parameter `op'. All callers + changed. + (create_definition): Cast REST_EXTENSION_LENGTH to (long) when + comparing against the result of pointer arithmetic. + + * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned) + when comparing against one. + + * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and + HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against + one. + (output_die): Move variable `i' into the scope in which it is + used. Change its type to `unsigned'. + (output_die): Cast the result of `strlen' to (int) when passing it + to ASM_OUTPUT_ASCII(). + (output_pubnames): Likewise. + (output_line_info): Likewise. - * tree.c, tree.h: Change tree_code_type, tree_code_length, and - tree_code_name from pointers to arrays. - * tree.c: Remove standard_tree_code_* variables, no longer used. - * print-tree.c: Remove declaration of tree_code_name. + * emit-rtl.c (global_rtl): Add missing initializers. - * cp/lex.c (init_lex): Update for tree_code_* changes. - * objc/objc-act.c (init_objc): Likewise. + * explow.c (promote_mode): Mark parameter `for_call' with + ATTRIBUTE_UNUSED. - * tree.def, cp/cp-tree.def, objc/objc-tree.def: Update for tree_code - changes. + * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to + `unsigned HOST_WIDE_INT' when comparing against one. + (synth_mult): Change type of variable `cost' to int. + (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift. + + * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned) + when comparing against one. + (get_inner_reference): Change variable `alignment' to unsigned. + (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned + int) when comparing against one. + (expand_builtin_setjmp): Change type of variable `i' to size_t. + + * fold-const.c (div_and_round_double): Cast BASE to + (HOST_WIDE_INT) when comparing against one. + + * gencheck.c: Include gansidecl.h. + (main): Mark parameter `argv' with ATTRIBUTE_UNUSED. + + * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and + `tcode' with ATTRIBUTE_UNUSED. + + * real.c (edivm): Cast constant value to (unsigned long) in + expression compared against an unsigned value. + + * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when + comparing against one. + (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int) + when comparing against one. + + * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to + (unsigned int) when comparing against one. Likewise for + GET_MODE_BITSIZE. + (smallest_mode_for_size): Likewise. + (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED. + (restore_storage_status): Likewise. + + * toplev.c (debug_args): Add missing initializer. + (f_options): Spelling correction. Add missing initializers. + (documented_lang_options): Likewise. + (debug_end_source_file): Mark parameter `lineno' with + ATTRIBUTE_UNUSED. -Thu Dec 11 23:34:54 1997 Fred Fish <fnf@ninemoons.com> + * tree.c (valid_machine_attribute): Mark parameters `attr_args', + `decl' and `type' with ATTRIBUTE_UNUSED. - * config.sub: Add support for BeOS target. - * configure.in: Likewise. - * ginclude/stdarg.h: Likewise. - * ginclude/stddef.h: Likewise. - * ginclude/varargs.h: Likewise. - * rs6000/beos.h: New file for BeOS. - * rs6000/t-beos: Likewise. - * rs6000/x-beos: Likewise. - * rs6000/xm-beos.h: Likewise. - * toplev.c (get_run_time): Just return 0 on BeOS. + * varasm.c (decode_reg_name): Cast `sizeof' expression to (int) + when comparing against one. + (assemble_variable): Mark parameter `top_level' with + ATTRIBUTE_UNUSED. + (assemble_external_libcall): Mark parameter `fun' with + ATTRIBUTE_UNUSED. + (output_constant_pool): Mark parameters `fnname' and `fndecl' with + ATTRIBUTE_UNUSED. -Thu Dec 11 23:25:23 1997 Jeffrey A Law (law@cygnus.com) - Toon Moene (toon@moene.indiv.nluug.nl) +Tue Oct 13 12:51:04 1998 Nick Clifton <nickc@cygnus.com> - * m68k.h (GO_IF_LEGITIMATE_ADDRESS): No longer cater to horribly - old and broken Sun3 assemblers. Newer versions handle large - offsets correctly as does the GNU assembler. + * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration. + Replace use of r5 with use of r19. -Thu Dec 11 23:06:48 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * config/v850/v850.h (LINK_POINTER_REGNUM): Define. - * objc/objc-act.c (lang_report_error_function): Disable. - * objc/objc-parse.y: Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. - (apply_args_register_offset): Remove redundant decl. - (get_file_function_name): Likewise. + * config/v850/v850.c (compute_register_save_size): Allow for the + fact that helper functions save all registers, not just those used + by the function. -Thu Dec 11 22:02:10 1997 Jason Merrill <jason@yorick.cygnus.com> + Replace constant 31 with macro LINK_POINTER_REGNUM. - * flow.c (find_basic_blocks): A CALL_INSN that can throw starts - a new basic block. - (find_basic_blocks_1): Likewise. + * config/v850/v850.md: Use 'indirect_operand' rather than + 'memory_operand' for bit test/set/clear patterns. -Thu Dec 11 21:08:48 1997 Jason Merrill <jason@yorick.cygnus.com> +Tue Oct 13 11:49:14 1998 Jason Merrill <jason@yorick.cygnus.com> - * except.c (use_eh_context): Don't copy_rtx a REG. - (emit_throw): Lose old unwinder support. - (expand_internal_throw): Likewise. - * libgcc2.c (struct eh_context): Likewise. - (new_eh_context): Likewise. - (__get_eh_info): Lose redundant cast. - (__get_dynamic_handler_chain): Likewise. - (__get_saved_pc): Lose. - Lose all old unwinder support code. - -Thu Dec 11 20:42:18 1997 Teemu Torma <tot@trema.com> - - Thread-safe EH support for pthreads, DCE threads and Solaris threads. - - * integrate.c (expand_inline_function): If the inline fn uses eh - context, make sure that the current fn has one. - * toplev.c (rest_of_compilation): Call emit_eh_context. - * except.c (use_eh_context): New fn. - (get_eh_context_once): New fn. - (call_get_eh_context): New fn. - (emit_eh_context): New fn. - (get_eh_context): Call either get_eh_context_once or - call_get_eh_context, depending on what we have. - (get_dynamic_handler_chain): Call get_eh_context_once. - * except.h: Prototypes for fns above. - * optabs.c (get_eh_context_libfunc): Removed. - (init_optabs): Don't initialize it. - * expr.h (get_eh_context_libfunc): Removed. - * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. - * config/pa/pa.h (CPP_SPEC): Support for -threads. - * config/pa/pa-hpux10.h (LIB_SPEC): Ditto. - * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - New multilib for -threads. - * config/sparc/t-sol2: Added multilibs for -threads and - made -pthreads alias to it. - * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): - Added -threads and -pthreads options. - * libgcc-thr.h: New file. - * libgcc2.c: (__get_cpp_eh_context): Removed. - (struct cpp_eh_context): Removed. - (struct eh_context): Replaced cpp_eh_context with generic language - specific pointer. - (__get_eh_info): New function. - (__throw): Check eh_context::info. - (__sjthrow): Ditto. - * libgcc2.c: Include libgcc-thr.h. - (new_eh_context, __get_eh_context, - eh_pthread_initialize, eh_context_initialize, eh_context_static, - eh_context_specific, eh_context_free): New functions. - (get_eh_context, eh_context_key): New variables. - (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use - get_eh_context to get the context. - (longjmp): Move the declaration inside - #ifdef DONT_USE_BUILTIN_SETJMP. - * frame.c: Include libgcc-thr.h. - (object_mutex): Mutex to protect the object list. - (find_fde, __register_frame, __register_frame_table, - __deregister_frame): Hold the lock while accessing objects. - * except.h (get_eh_context): Declare. - * except.c (current_function_ehc): Define. - (current_function_dhc, current_function_dcc): Removed. - (get_eh_context): New function. - (get_dynamic_handler_chain): Use get_eh_context. - (get_saved_pc_ref): Ditto. - (get_dynamic_cleanup_chain): Removed references to - current_function_dcc. - (save_eh_status, restore_eh_status): Save and restore - current_function_ehc instead. - * optabs.c (get_eh_context_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_eh_context_libfunc. - * function.h (struct function): Replaced dhc and dcc with ehc. - * except.c (get_saved_pc_ref): New functions. - (eh_saved_pc_rtx, eh_saved_pc): Deleted. - (expand_internal_throw_indirect): Use get_saved_pc_ref() instead - of eh_saved_pc. - (end_eh_unwinder): Likewise. - (init_eh): Remove initialization of eh_saved_pc. - * optabs.c (get_saved_pc_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_saved_pc_libfunc. - * except.h (eh_saved_pc_rtx): Deleted. - (get_saved_pc_ref): Declared. - - From Scott Snyder <snyder@d0sgif.fnal.gov>: - * libgcc2.c (__get_saved_pc): New. - (__eh_type, __eh_pc): Deleted. - (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. - (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside - this fcn. - -Thu Dec 11 17:23:48 1997 John F. Carr <jfc@mit.edu> - - * sparc/sol2.h: Use 64 bit multiply and divide functions in - Solaris libc. Define TARGET_LIVE_G0 and TARGET_BROKEN_SAVERESTORE - as 0. - - * rtl.h (global_rtl): New variable, replacing separate variables for - commonly used rtl. - (const_int_rtx): Now array of rtx_def, not rtx. - * emit-rtl.c: Update for new rtl data structures. - * genattrtab.c: Define global_rtl. - -Thu Dec 11 15:50:29 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * configure.in ({rs6000,powerpc}-*-*): Enable Haifa scheduler by - default. - -Wed Dec 10 12:30:18 1997 Anthony Green <green@cygnus.com> - - * crtstuff.c (__do_global_ctors): Fix typo. - -Tue Dec 9 09:43:59 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * toplev.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. - -Tue Dec 9 09:38:58 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (FUNCTION_ARG_PADDING): Define. - * rs6000.c (function_arg_padding): New function. - -Tue Dec 9 10:34:21 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * m68k.c: Include tree.h only once. - -Tue Dec 9 09:32:33 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. - -Tue Dec 9 01:16:06 1997 Jeffrey A Law (law@cygnus.com) - - * Partially cleaned up prototyping code from HJ. - * tree.h: Add many prototypes. - * haifa-sched.c (haifa_classify_insn): Renamed from classify_insn. - All references changed. - * rtl.h: Protect from multiple inclusions. Add many prototypes. + * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL. + * varasm.c (assemble_start_function et al): Don't call + ASM_GLOBALIZE_LABEL for weak symbols. + +Tue Oct 13 11:37:45 1998 Nick Clifton <nickc@cygnus.com> + + * cse.c (equiv_constant): Check for NULL return from + gen_lowpart_if_possible(). + +Tue Oct 13 11:24:51 1998 Jeffrey A Law (law@cygnus.com) -Tue Dec 9 01:15:15 1997 Fred Fish <fnf@ninemoons.com> + * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands. - * libgcc2.c (string.h): Hoist inclusion to occur before first use of - string functions like strlen. + * collect2.c (main): Pass -EL/-EB through to the compiler. -Tue Dec 9 00:57:38 1997 Manfred Hollstein <manfred@s-direktnet.de> +1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * configure.in: Check for functions getrlimit and setrlimit. - * cccp.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. + * expr.c (push_block): Handle targets where the stack grows + to higher addresses, but args grow to lower addresses and + ACCUMULATE_OUTGOING_ARGS is not defined. -Mon Dec 8 23:53:26 1997 Jay Sachs <sachs@bull.cs.williams.edu> +Tue Oct 13 08:00:52 1998 Catherine Moore <clm@cygnus.com> - * Makefile.in (compare*): Handle losing behavior from 4.4bsd make. + * config/v850/v850.c (print_operand): Extend meaning + of 'c' operands to support .vtinherit. -Mon Dec 8 21:03:28 1997 Richard Henderson <rth@cygnus.com> +Tue Oct 13 21:38:35 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * alpha.c (REG_RA, alpha_return_addr, output_epilog): - Fix merge problems. + * config/c4x/c4x.c: Convert to gen_rtx_FOO. + Added ATTRIBUTE_UNUSED to unused function arguments. + (rc_reg_operand): New predicate. + (c4x_rptb_insert): New function. + (c4x_rptb_nop_p): Recognize modified rptb_top pattern. + (c4x_optimization_options): New function. - * alpha.c (override_options): Don't know about scheduling for EV6. - * alpha.md (ev5 function units): Don't overload as ev6. + * config/c4x/c4x.md: Convert to gen_rtx_FOO. + (decrement_and_branch_on_count): New pattern. + (rptb_top): Modified pattern to work with BCT optimization. - * alpha.c (alpha_adjust_cost): Simplify. Fix typo in ev5 mult case. - * alpha.md (define_attr type): Add mvi. - (ev5_e0): Define sceduling parameters for it. - (TARGET_MAX insns): Type is mvi not shift. + * config/c4x/c4x.h (RC_REG): New register class. + (rc_reg_operand): Define prototype. + (IS_RC_REG): New macro. + (IS_RC_OR_PSEUDO_REG): New macro. + (IS_RC_OR_PSEUDO_REGNO): New macro. + (OPTIMIZATION_OPTIONS): Define. -Mon Dec 8 18:15:00 1997 Richard Henderson <rth@cygnus.com> +Mon Oct 12 19:57:34 1998 Jason Merrill <jason@yorick.cygnus.com> - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix backported gcc-2.8 bug. + * collect2.c (extract_init_priority): No priority is 65535. -Mon Dec 8 21:17:28 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Oct 12 12:10:37 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - * cstamp-h, auto-config.h: Delete. + * Makefile.in (build_tooldir): New variable, same as old + $(tooldir), but without depending on $(libdir)/$(unlibsubdir). + (GCC_FOR_TARGET): Add -B$(build_tooldir)/bin/. + (bootstrap, bootstrap2, bootstrap3, bootstrap4): Likewise. + + * configure.in (gxx_include_dir): Set default based on unlibsubdir. + * Makefile.in (tooldir): Likewise. + (cccp.o, cpplib.o): Use unlibsubdir implicitly through + gxx_include_dir, includedir and tooldir. + (protoize.o, unprotoize.o): Likewise. + +Mon Oct 12 10:50:44 1998 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.md: Replace (reg 24) with (reg:CC 24). + + * config/arm/thumb.c (thumb_override_options): Add warning about + PIC code not being supported just yet. + +Sun Oct 11 16:49:15 1998 John Wehle (john@feith.com) + + * flow.c: Update comment. + (notice_stack_pointer_modification): New static function. + (record_volatile_insns): Use it. + (mark_regs_live_at_end): Mark the stack pointer as alive + at the end of the function if current_function_sp_is_unchanging + is set. + (life_analysis_1): Set current_function_sp_is_unchanging. + * function.c: Define it. + (init_function_start): Initialize it. + * output.h: Declare it. + * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark + the stack pointer as alive at the end of the function if + current_function_sp_is_unchanging is set. + * i386.c (ix86_epilogue): Optimize the restoring + of the stack pointer. -Sun Dec 7 19:19:03 1997 Jeffrey A Law (law@cygnus.com) +Mon Oct 12 01:22:53 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Sat Dec 6 22:22:22 1997 Jeffrey A Law (law@cygnus.com) +Sun Oct 11 23:04:30 1998 Robert Lipe <robertl@dgii.com> + + * c-pragma.c (handle_pragma_token): If passed a token instead + of a tree, use that as the pack value. + +Sun Oct 11 14:21:14 1998 Mark Mitchell <mark@markmitchell.com> + + * flow.c (find_basic_blocks_1): Fix prototype. + +Sun Oct 11 05:03:41 1998 Ken Raeburn <raeburn@cygnus.com> + + * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros. + (struct tree_decl): New fields no_check_memory_usage. + * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE. + (init_attributes): Register it as a new attribute. + (decl_attributes): Set flags on functions given that attribute. + * c-decl.c (duplicate_decls): Merge new attribute. + * expr.h (current_function_check_memory_usage): Declare new var. + * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c, + pa.c, sparc.c: Replace uses of flag_check_memory_usage with + current_function_check_memory_usage. + * function.h: Add field to struct function. + * function.c (current_function_check_memory_usage): Define it. + (push_function_context_to, pop_function_context_from): Save and + restore it. + (expand_function_start): Set it, based on global flag and function + attribute. + + * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do + check non-automatic variables, to permit detection of writes to + read-only locations in embedded systems without memory management. + * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument + when emitting chkr_set_right_libfunc call, even if the argument is + BLKmode or variable-sized; don't abort. + + * optabs.c (init_optabs): Create Checker and __cyg_profile_* + symbols in Pmode, not VOIDmode. - * cccp.c: Fix typo brought over in merge. +Sun Oct 11 01:03:05 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - * Merge in changes from gcc-2.8. + * cppexp.c: When forcing unsigned comparisons, cast both sides + of the operation. -Mon Nov 3 05:45:32 1997 Philippe De Muyter <phdm@macqel.be> + * cpphash.h: Move static declaration of hashtab[]... + * cpphash.c: ...here. - * m68k.c: Include tree.h for dwarf2out_cfi_label. + * cpplib.c: Cast difference of two pointers to size_t before + comparing it to size_t. Cast signed to unsigned + before comparing to size_t. (FIXME: struct argdata should use + unsigned buffer sizes.) + * cpplib.h (struct cpp_reader): Declare token_buffer_size as + unsigned int. (CPP_WRITTEN): Cast return value to size_t. + (CPP_RESERVE): Parenthesize N for evaluation order, cast to + size_t before comparison. - * gcc.c (process_command): Do not take address of function fatal when - calling lang_specific_driver. +Sun Oct 11 00:15:29 1998 Jeffrey A Law (law@cygnus.com) -Sat Dec 6 01:02:38 1997 Mumit Khan <khan@xraylith.wisc.edu> + * flow.c (find_basic_blocks): Delete "live_reachable_p" argument. + (find_basic_blocks_1): Similarly. + * output.h (find_basic_blocks): Fix prototype. + * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to + find_basic_blocks anymore. - * config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling - doesn't work with it yet, so set it to 0. - * config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define. +Sat Oct 10 22:00:34 1998 Richard Henderson <rth@cygnus.com> -Sat Dec 6 01:01:02 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> + * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro. + (sbitmap_free, sbitmap_vector_free): New macros. + * output.h (rtl_dump_file): Declare. - * cse.c (cse_insn): Check for invalid entries when taking references. +Sat Oct 10 17:01:42 1998 Jeffrey A Law (law@cygnus.com) -Fri Dec 5 18:26:25 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION. - * loop.c (invariant_p): Don't test flag_rerun_loop_opt. - (loop_optimize, scan_loop, strength_reduce): New argument unroll_p. - * toplev.c (rest_of_compilation): Pass it. Remove code to - save / clear / restore flag_unroll_{,all_}loops. +Fri Oct 9 22:08:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Fri Dec 5 16:26:03 1997 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> + * fp-bit.c (SFtype): Don't implicitly use int in declaration. + (DFtype): Likewise. + (_fpdiv_parts): Remove unused parameter `tmp', all callers changed. + (divide): Remove unused variable `tmp'. + (si_to_float): Cast numeric constant to (SItype) before comparing + it against one. - * i386.c (notice_update_cc): Remove bogus pentium GCC code. +Fri Oct 9 16:03:19 1998 Graham <grahams@rcp.co.uk> -Fri Dec 5 16:25:14 1997 Jeffrey A Law (law@cygnus.com) + * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use. + * gcc.c (add_preprocessor_option): Correct typo when allocating + memory, sizeof() argument had one too many `*'. + (add_assembler_option): Likewise. + (add_linker_option): Likewise. + * gcov.c (output_data): Likewise. + * local-alloc.c (memref_used_between_p): Likewise. + (update_equiv_regs): Likewise. + * loop.c (strength_reduce): Likewise. + * reg-stack.c (record_asm_reg_life): Likewise. + (subst_asm_stack_reg): Likewise. + * reorg.c (dbr_schedule): Likewise. - * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR. +Fri Oct 9 15:57:51 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> -Thu Dec 4 11:51:00 1997 Jason Merrill <jason@yorick.cygnus.com> + * flow.c (life_analysis_1): Break out some functions. + (find_basic_blocks_1): Likewise. Also move some variables out and + make them static. + Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize + new static var nonlocal_label_list with it. + (active_eh_region, nested_eh_region, label_value_list, + nonlocal_label_list): New static variables. + (make_edges, delete_unreachable_blocks, delete_block): New static + functions, broken out of find_basic_blocks_1. + (record_volatile_insns, mark_regs_live_at_end, set_noop_p, + noop_move_p): New static functions, broken out of life_analysis_1. - * except.c (get_dynamic_handler_chain): Only make the call once per - function. +Fri Oct 9 15:49:29 1998 Richard Henderson <rth@cygnus.com> - * except.c (expand_end_all_catch): Fix for sjlj exceptions. + * expmed.c (store_bit_field): Pun non-integral str_rtx modes. + Take extra care for op0 now possibly being a subreg. + (extract_bit_field): Likewise. + * function.c (purge_addressof_1): Revert Oct 4 change. Drop + the reg to memory if there is no equal sized integral mode. + * stor-layout.c (int_mode_for_mode): New function. + * machmode.h: Prototype it. -Thu Dec 4 12:30:40 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com) - * sh.c (final_prescan_insn): Use local label prefix - when emitting .uses pseudo-ops. + * global.c (build_insn_chain): Verify no real insns exist past the + end of the last basic block, then exit the loop. -Wed Dec 3 12:01:56 1997 Jason Merrill <jason@yorick.cygnus.com> +Fri Oct 9 11:44:47 1998 David Edelsohn <edelsohn@gnu.org> - * libgcc2.c (__throw): Use __builtin_return_addr instead of __eh_pc. - * except.c: Lose outer_context_label_stack. - (expand_eh_region_end): Rethrow from outer_context here. - (expand_fixup_region_end): Let expand_eh_region_end do the rethrow. - (expand_internal_throw): Take no args. - (expand_internal_throw_indirect): Lose. - (expand_leftover_cleanups, expand_start_all_catch): Use expand_rethrow. - (expand_start_all_catch): Start a rethrow region. - (expand_end_all_catch): End it. - (expand_rethrow): New fn. - * except.h: Reflect above changes. - * flow.c: Revert change of Nov 27. + * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use. -Thu Dec 4 00:24:09 1997 Jeffrey A Law (law@cygnus.com) +Thu Oct 8 21:59:47 1998 Dave Brolley <brolley@cygnus.com> - * i386/t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer. + * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS. -Wed Dec 3 12:01:56 1997 Jason Merrill <jason@yorick.cygnus.com> +Thu Oct 8 22:03:45 1998 David Edelsohn <edelsohn@gnu.org> - * except.c (expand_fixup_region_end): New fn. - (expand_fixup_region_start): Likewise. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use them to protect fixups. + * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases. -Wed Dec 3 11:41:13 1997 Gavin Koch <gavin@cygnus.com> +Thu Oct 8 17:00:18 1998 Richard Henderson <rth@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. + * flow.c (find_basic_blocks): Correctly determine when a call + is within an exception region. -Tue Dec 2 19:40:43 1997 Jason Merrill <jason@yorick.cygnus.com> +Thu Oct 8 17:15:04 1998 Jeffrey A Law (law@cygnus.com) - * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. + * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'. -Tue Dec 2 12:54:33 1997 Jim Wilson <wilson@cygnus.com> + * cpplib.h: Protect from multiple inclusions. + * cpplib.c: Fix minor formatting problems. - * unroll.c (find_splittable_givs): Remove last change. Handle givs - with a dest_reg that was created by loop. + * i386/xm-cygwin32.h: Only define POSIX if it is not already defined. -Sat Nov 29 12:44:57 1997 David Edelsohn <edelsohn@mhpcc.edu> + * jump.c (jump_optimize): Revert accidental patch. - * rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch. + * Makefile.in (cpplib.o): Use unlibsubdir. - * rs6000/aix41.h (ASM_CPU_SPEC): Define. +Thu Oct 8 12:50:47 1998 Jim Wilson <wilson@cygnus.com> -Fri Nov 28 10:00:27 1997 Jeffrey A Law (law@cygnus.com) + * loop.c (get_condition): Allow combine when either compare is + VOIDmode. - * configure.in: Fix NCR entries. +Thu Oct 8 11:31:01 1998 Jeff Law (law@cygnus.com) -Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com) + * version.c: Bump for snapshot. - * flow.c (find_basic_blocks): Handle cfg issues for rethrows and - nested exceptions correctly. +Thu Oct 8 12:21:14 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk> - * unroll.c (find_splittable_givs): Don't split givs with a dest_reg - that was created by loop. + * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF. + (init_lex): Initialize ridpointers[RID_BYREF]. + * c-lex.h (enum rid): Add RID_BYREF. + * c-parse.gperf: Add RID_BYREF as a type qualifier. + * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF. + (encode_type_qualifiers): Similarly. + * c-gperf.h: Rebuilt. -Thu Nov 27 09:34:58 1997 Jason Merrill <jason@yorick.cygnus.com> +Thu Oct 8 05:56:00 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. + * c-common.c (type_for_mode): Only return TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. + (init_decl_processing): Only create TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. - * except.c (expand_start_all_catch): One more do_pending_stack_adjust. +Thu Oct 8 05:05:34 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> -Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com> + * stmt.c (n_occurrences): New static function. + (expand_asm_operands): Verify that all constrains match in the + number of alternatives. + Verify that '+' or '=' are at the beginning of an output constraint. + Don't allow '&' for input operands. + Verify that '%' isn't written for the last operand. + * reload.c (find_reloads): Abort if an asm is found with invalid + constraints; all possible problems ought to be checked for earlier. - * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. - (print_operand): Use SMALL_DATA_REG for the register involved in - small data relocations. - (print_operand_address): Ditto. +Thu Oct 8 04:26:20 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if - -dynamic linker is not used. + * flags.h (flag_branch_on_count_reg): Always declare. + * toplev.c (flag_branch_on_count_reg): Likewise. + * toplev.c: Fix typos. - * rs6000.md (call insns): For local calls, use @local suffix under - System V. Don't use @plt under Solaris. + * real.c (c4xtoe): Remove unused variables. Add some missing parens. + (toc4x): Similarly. - * rs6000.c (output_function_profiler): Put label address in r0, and - store LR in 4(sp) for System V/eabi. +Thu Oct 8 01:25:22 1998 Richard Henderson <rth@cygnus.com> - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 - byte boundary, and maintain stack backchain. + * flow.c (find_basic_blocks): Calc upper bound for extra nops in + max_uids_for_flow. + (find_basic_blocks_1): Add a nop to the end of a basic block when + a trailing call insn does not have abnormal control flow. + * gcse.c (pre_transpout): New variable. + (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. + (compute_pre_transpout): Calculate it. + (compute_pre_ppinout): Use it to eliminate impossible placements + due to abnormal control flow through calls. + (compute_pre_data): Call compute_pre_transpout. -Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com> +Wed Oct 7 21:40:24 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *. + * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo. -Wed Nov 26 11:12:26 1997 Jason Merrill <jason@yorick.cygnus.com> +Wed Oct 7 21:19:46 1998 Ken Raeburn <raeburn@cygnus.com> - * toplev.c (main): Complain about -gdwarfn. + * config/mips/mips.md (tablejump_internal3, tablejump_internal4 + and matching define_insns): Tack on a `use' of the table label, so + flow analysis will recognize a tablejump. -Tue Nov 25 22:43:30 1997 Jason Merrill <jason@yorick.cygnus.com> +Wed Oct 7 17:33:39 1998 Richard Henderson <rth@cygnus.com> - * dwarfout.c (output_type): If finalizing, write out nested types - of types we've already written. + * gcse.c (pre_insert_insn): Tweek to notice that calls do not + always end basic blocks for abnormal edge reasons. -Tue Nov 25 20:32:24 1997 Michael Meissner <meissner@cygnus.com> +Wed Oct 7 14:40:43 1998 Nick Clifton <nickc@cygnus.com> - (patches originally from Geoffrey Keating) - * rs6000.c (function_arg): Excess floating point arguments don't - go into GPR registers after exhausting FP registers under the - System V.4 ABI. - (function_arg_partial_nregs): Ditto. + * config/i386/i386.h: Remove definition of + HANDLE_PRAGMA_PACK_PUSH_POP. - * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt - suffix to calls. + * config/i386/go32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. -Tue Nov 25 23:37:27 1997 Jason Merrill <jason@yorick.cygnus.com> + * config/i386/win32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. - * integrate.c (output_inline_function): Just unset DECL_INLINE. + * config/i386/cygwin32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. -Tue Nov 25 23:33:29 1997 scott snyder <snyder@d0sgif.fnal.gov> + * c-pragma.c (insert_pack_attributes): Do not insert + attributes unless #pragma pack(push,<n>) is in effect. - * dwarf2out.c (outout_call_frame_info): Ensure that the info has - proper alignment. +Wed Oct 7 12:10:46 1998 Jim Wilson <wilson@cygnus.com> - * libgcc2.c (__throw): Initialize HANDLER. + * expr.c (emit_group_store): Handle a PARALLEL destination. -Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com> +Wed Oct 7 10:07:29 1998 Richard Henderson <rth@cygnus.com> - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *X to ?*X. + * gcse.c (pre_insert_insn): When a call ends a bb, insert + the new insns before the argument regs are loaded. -Tue Nov 25 10:00:42 1997 Richard Henderson (rth@cygnus.com) +Wed Oct 7 12:55:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling. + * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf. + (c-parse.gperf): Update comments describing invocation flags. + (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs). -Tue Nov 25 10:00:42 1997 Jeffrey A Law (law@cygnus.com) +1998-10-07 Manfred Hollstein <manfred@s-direktnet.de> - * crtstuff.c (do_global_dtors_aux): Handle multiple calls better. + * reload1.c (reload): Call free before clobbering the memory + locations or constants pointers. -Tue Nov 25 01:26:55 1997 Bruno Haible <haible@ilog.fr>: +Wed Oct 7 02:05:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * dwarf2out.c (ASM_OUTPUT_DWARF_DELTA1): Implement. + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework + for efficiency by checking whether we need to modify the current + stack permission at all. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + * config/sparc/sparc.c (sparc_initialize_trampoline): Emit + __enable_execute_stack libcall here too if + TRANSFER_FROM_TRAMPOLINE is defined. + * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if + IN_LIBGCC2. -Mon Nov 24 22:41:55 1997 Jason Merrill <jason@yorick.cygnus.com> +Wed Oct 7 02:27:52 1998 Jeffrey A Law (law@cygnus.com) - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc. - * expr.h: Likewise. + * Makefile.in (DRIVER_DEFINES): Remove last change. -Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com) +Wed Oct 7 01:08:43 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - * pa-hpux10.h (NEW_HP_ASSEMBLER): Define. - * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using - gas and not using the new HP assembler. + * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all + insns we're going to copy. + * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX. -Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com) + * loop.c (count_one_set): Add prototype. - * Makefile.in (program_transform_cross_name): Clean up "-e" confusion. - (GCC_INSTALL_NAME, GCC_CROSS_NAME): Likewise. + * caller-save.c (restore_referenced_regs): Lose mode argument. + (insert_save): Lose mode argument. + (insert_restore): Lose mode argument. + (insert_one_insn): Lose mode argument. + (save_call_clobbered_regs): Lose mode argument. + (setup_save_areas): Take no argument and return void. All callers + changed. + Don't verify validity of memory addresses. + * reload.h (setup_save_ares): Adjust prototype. + (save_call_clobbered_regs): Likewise. + * reload1.c (delete_caller_save_insns): New function. + (caller_save_spill_class): Delete variable. + (caller_save_group_size): Delete variable. + (reload): Call setup_save_areas and save_call_clobbered_regs + in the main loop, before calling calculate_needs_all_insns. + Don't call save_call_clobbered_regs after the loop. + Call delete_caller_save_insns at the end of an iteration if + something changed. + Delete code to manage caller_save_spill_class. + Emit the final note before setting reload_first_uid. + Simplify test that determines whether reload_as_needed gets run. + (calculate_needs): Delete code to manage caller_save_spill_class. + +Tue Oct 6 15:42:27 1998 Richard Henderson <rth@cygnus.com> + + * collect2.c (main): Initialize ld_file_name. + +Tue Oct 6 15:45:15 1998 Catherine Moore <clm@cygnus.com> + + * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't + check for flag_function_sections. + +Tue Oct 6 20:02:31 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * cse.c (insert_regs): Fix bug in Sep 24 change. + +Tue Oct 6 17:00:42 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * flags.h (flag_dump_unnumbered): Declare. + * toplev.c (flag_dump_unnumbered): Don't declare. + * print-rtl.c (flags.h): Include. + (print_rtl_single): Add return value. + * rtl.h (print_rtl_single): Update declaration. + * flow.c (flag_dump_unnumbered): Don't declare. + (print_rtl_with_bb): Use return value of print_rtl_single. + +Tue Oct 6 01:36:00 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> + + * loop.c (count_one_set): New static function, broken out of + count_loop_regs_set. + (count_loop_regs_set): Call it. + * global.c (mark_reg_store): Handle clobbers here by not calling + set_preference. + (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER + is in fact a clobber. + * integrate.c (process_reg_param): New function, broken out of + expand_inline_function. + (expand_inline_function): Call it. + + * i386.md (addsidi3_1): Delete unused variable temp. + (addsidi3_2): Likewise. + (clstrstrsi): Delete unused variable addr1. + + * rtl.h: Don't declare any functions also declared in recog.h. + + * Makefile.in (stupid.o): Update dependencies. + (global.o): Likewise. + + * global.c: Include reload.h. + (reg_becomes_live): New function. + (reg_dies): New function. + (build_insn_chain): New function. + (global_alloc): Call build_insn_chain before calling reload. + + * reload.h (struct needs): New structure definition. + (struct insn_chain): Likewise. + (reload_insn_chain): Declare variable. + (new_insn_chain): Declare function. + + * reload1.c (reload_startobj): New variable. + (reload_insn_chain): New variable. + (unused_insn_chains): New variable. + (new_insn_chain): New function. + (init_reload): Initialize reload_startobj, not reload_firstobj. + (reload): Initialize reload_firstobj. + Before returning, free everything on the reload_obstack. + + * stupid.c: Include insn-config.h, reload.h and basic-block.h. + (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber, + current_chain): New variables. + (reg_where_born): Delete variable. + (REG_WHERE_BORN): New macro. + (find_clobbered_regs): New function. + (stupid_life_analysis): Don't allocate/free reg_where_born. + Allocate and free reg_where_born_exact, reg_where_born_clobber, + reg_where_dead_chain. + Use REG_WHERE_BORN instead of reg_where_born. + While processing the insns, build the reload_insn_chain with + information about register lifetimes. + (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born. + (stupid_mark_refs): Replace arg INSN with arg CHAIN. All callers + changed. + Compute and information about birth and death of pseudo registers in + reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber. + Delete code to set elements of reg_where_born. + +Mon Oct 5 22:34:30 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * tree.def (GOTO_EXPR): Modified documentation. + * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed + goto. + +Mon Oct 5 22:43:36 1998 David Edelsohn <edelsohn@gnu.org> + + * unroll.c (loop_iteration_var, loop_initial_value, loop_increment + loop_final_value, loop_comparison_code): No longer static. + (unroll_loop): Delete loop_start_value update. + * loop.h (loop_iteration_var, loop_initial_value, loop_increment, + loop_final_value, loop_comparison_code): Extern. + (loop_start_value): Delete extern. + * loop.c (loop_can_insert_bct, loop_increment, loop_start_value, + loop_comparison_value, loop_comparison_code): Delete. + (loop_optimize): Remove initialization for deleted variables. + (strength_reduce): Delete analyze_loop_iterations call. Only call + insert_bct if flag_branch_count_on_reg set. + (analyze_loop_iterations): Delete. + (insert_bct): Remove iteration count calculation. Move checks for + viable BCT optimization to here. Obtain iteration count from + loop_iterations and correct for unrolling. Check for enough + iteration to be beneficial. Comment out runtime iteration count + case. + (insert_bct): Print iteration count in dump file. Remove + loop_var_mode and use word_mode directly. -Fri Nov 21 19:37:40 1997 Andrew Cagney <cagney@b1.cygnus.com> + * rs6000.h (processor_type): Add PROCESSOR_PPC604e. + * rs6000.c (rs6000_override_options): Use it. + (optimization_options): Enable use of flag_branch_on_count_reg. + * rs6000.md (define_function_unit): Describe 604e. - * config/mips/elf64.h (MULTILIB_DEFAULTS): Test for - TARGET_ENDIAN_DEFAULT == zero instead of testing for macro - definition. +1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> -Fri Nov 21 12:49:56 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> + * loop.c (move_movables): Corrected threshold calculation for + moved_once registers. - * stmt.c (expand_end_bindings): Allow jump into block with cleanups. +Mon Oct 5 21:18:45 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> -Fri Nov 21 12:18:51 1997 Jason Merrill <jason@yorick.cygnus.com> + * loop.c (combine_givs_p): Fix test for identical givs. - * except.h: Add outer_context_label_stack. - * except.c: Likewise. - (expand_start_all_catch): Push the outer_context for the try block - onto outer_context_label_stack. - (expand_end_all_catch): Use it and pop it. +Mon Oct 5 10:11:28 1998 Nick Clifton <nickc@cygnus.com> -Fri Nov 21 10:13:11 1997 Robert Lipe (robertl@dgii.com) + * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't + call abort if the function is already defined. - * i386/sco5.h (HAVE_ATEXIT): Revert last change. +Mon Oct 5 10:02:36 1998 Jeffrey A Law (law@cygnus.com) -Thu Nov 20 16:11:50 1997 Richard Henderson <rth@cygnus.com> + * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if + truncation is not a no-op. - * alpha.c (alpha_emit_set_const_1): Handle narrow hosts better. +Mon Oct 5 09:02:04 1998 Jeff Law (law@cygnus.com) -Thu Nov 20 16:11:50 1997 Klaus Kaempf <kkaempf@progis.de> + * version.c: Bump for snapshot. - * alpha/vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. +Mon Oct 5 08:19:55 1998 Jeff Law (law@cygnus.com) -Thu Nov 20 14:42:15 1997 Jason Merrill <jason@yorick.cygnus.com> + * version.c: Bump for snapshot. - * Makefile.in (LIB2FUNCS): Remove C++ memory management support. - * libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler, - __builtin_delete, and __builtin_vec_delete. +Mon Oct 5 01:07:23 1998 Torbjorn Granlund <tege@matematik.su.se> - * except.c (output_exception_table): Don't bother with - __EXCEPTION_END__. + * expmed.c (expand_divmod): Don't widen for computing remainder + if we seem to have a divmod pattern for needed mode. -Thu Nov 20 16:11:50 1997 Jeffrey A Law (law@cygnus.com) +Mon Oct 5 01:01:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - * pa.md (pre_stwm, post_stwm, pre_ldwm, post_ldwm): Base register - is an in/out operand. - (zero extended variants of stwm/stwm patterns): Similarly. + * cpplib.c (macroexpand): Correct off-by-one error in handling + of escapes. - * mips/x-iris (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. +Sun Oct 4 23:58:30 1998 Richard Henderson <rth@cygnus.com> -Thu Nov 20 13:19:32 1997 Jason Merrill <jason@yorick.cygnus.com> + * combine.c (expand_field_assignment): Don't do bitwise operations + on MODE_FLOAT; pun to MODE_INT if possible. - * dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4. - Use assemble_name. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name. - (output_call_frame_info): Emit a \n after using it. +Sun Oct 4 18:33:24 1998 Jason Merrill <jason@yorick.cygnus.com> + scott snyder <snyder@d0sgif.fnal.gov> -Thu Nov 20 00:38:46 1997 Dave Love <d.love@dl.ac.uk> + * tlink.c (scan_linker_output): Recognize errors from irix 6.2 + linker. Recognize mangled names in quotes. - * configure.in: Add AC_ARG_ENABLE for Haifa as documentation. +Sun Oct 4 02:58:20 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> -Wed Nov 19 12:03:04 1997 Philippe De Muyter <phdm@macqel.be> + * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64. + (ashlsi3_const1, ashldi3_const1): New combiner patterns. + (ashrsi3_extend, ashrsi3_extend2): New combiner patterns. + (lshrsi3_extend, lshrsi3_extend2): Likewise. - * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. - (ASM_OUTPUT_DWARF_VALUE4): New macro. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is - defined. - (output_call_frame_info): Do not output forward label differences - if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. - * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. +Sun Oct 4 00:23:00 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Tue Nov 18 23:03:30 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * function.c (purge_addressof_1): If trying to take a sub-word + integral piece of a floating point mode, put it on the stack. - * sh.md (attribute "type"): Add nil. - (movsi_ie): y/y alternative is type nil. - (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X - alternatives. - (movsf_ie+1): Delete. +Sat Oct 3 19:01:03 1998 Richard Henderson <rth@cygnus.com> -Tue Nov 18 15:39:59 1997 Jim Wilson <wilson@cygnus.com> + * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake. - * mips/mips.c (save_restore_insns): If gp_offset or fp_offset are - large_int, emit two insns instead of one splitable insn. - * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset - from cfa_temp_value, use cfa_offset. Add assert checking that - cfa_reg is SP. +Sat Oct 3 14:42:19 1998 Jason Merrill <jason@yorick.cygnus.com> -Mon Nov 17 15:35:38 1997 Tom Tromey <tromey@cygnus.com> + * PROJECTS: Remove template friends. - * cccp.c (deps_output): Properly quote file names for make. + * collect2.c (sort_ids): Remove unused variable. -Mon Nov 17 13:21:40 1997 Jeffrey A Law (law@cygnus.com) + * tm.texi (MATH_LIBRARY): Document. + (NEED_MATH_LIBRARY): Remove. - * t-h8300 (MULTILIB_EXCEPTIONS): Define. + * varasm.c (assemble_start_function, assemble_variable, weak_finish, + assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too. -Fri Nov 7 15:33:11 1997 Robert Lipe (robertl@dgii.com) +Sat Oct 3 16:14:44 1998 John Carr <jfc@mit.edu> - * i386/sco5.h (HAVE_ATEXIT): Delete definition. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize + last_end to 0x7fffffff. -Sun Nov 16 23:52:48 1997 Jeffrey A Law (law@cygnus.com) +Fri Oct 2 19:14:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl - return. - (cse_end_of_basic_block): Similarly. + * function.c (purge_addressof_1): Do not perform endianness + corrections on bitpos, who we call will do it for us. -Sun Nov 16 23:01:40 1997 J. Kean Johnston <jkj@sco.com> +Fri Oct 2 11:52:35 1998 Jeffrey A Law (law@cygnus.com) - * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define. - (SELECT_RTX_SECTION): Define. - (LIBGCC_SPEC, LIB_SPEC): Do the right thing for PIC. + * h8300.c (WORD_REG_USED): Fix typo. + (initial_offset): Use WORD_REG_USED. -Sun Nov 16 22:47:03 1997 Manfred Hollstein <manfred@s-direktnet.de> + * h8300.c (handle_pragma): Fix typo. - * Makefile.in (compare, compare-lean): Define $stage for each - shell command. - (gnucompare, gnucompare-lean): Likewise. +Fri Oct 2 10:51:35 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> -Sun Nov 16 22:02:16 1997 Richard Henderson (rth@cygnus.com) + * caller-save.c (insert_save_restore): Break this function up + into new functions insert_restore, insert_save and insert_one_insn. + All callers changed. + (insert_restore): New function, mostly broken out of + insert_save_restore. + (insert_save): Likewise. + (insert_one_insn): Likewise. + (restore_referenced_regs): New argument BLOCK. All callers changed. + (save_call_clobbered_regs): Don't keep track of basic block boundaries + in this function, do it in insert_one_insn instead. + + * reload1.c (reload): Break out some more pieces into separate + functions. + (dump_needs): New function, broken out of reload. + (set_initial_elim_offsets): Likewise. + (init_elim_table): Likewise. + (update_eliminables): Likewise. + + * global.c (global_alloc): Delete code to manage the scratch_list. + * local-alloc.c (qty_scratch_rtx): Delete. + (scratch_block): Delete. + (scratch_list): Delete. + (scratch_list_length): Delete. + (scratch_index): Delete. + (alloc_qty_for_scratch): Delete. + (local-alloc): Update initialization of max_qty. + Delete code to manage the scratch list. + Delete code to allocate/initialize qty_scratch_rtx. + (block_alloc): Don't allocate quantities for scratches. + Delete code to manage the scratch list. + * regs.h (scratch_list): Delete declaration. + (scratch_block): Delete declaration. + (scratch_list_length): Delete declaration. + * reload1.c (reload): Delete code to manage the scratch list. + (spill_hard_reg): Likewise. + (mark_scratch_live): Delete. + + * recog.c (alter_subreg): Delete declaration. + +1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * Makefile.in (cccp.o): Fix typo in last patch. + +Fri Oct 2 16:13:12 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * t-sh (LIB1ASMFUNCS): Add _set_fpscr . + * config/sh/lib1funcs.asm (___set_fpscr): Add. + +Fri Oct 2 02:01:59 1998 Jeffrey A Law (law@cygnus.com) - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets. + * regclass.c (reg_scan_mark_refs): Return immediately if passed a + NULL_RTX as an argument. - * alpha.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. + * Makefile.in (unlibsubdir): Define. + (DRIVER_DEFINES): Use unlibsubdir. + (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly. + (stmp-fixinc): Similarly. -Fri Nov 14 09:09:20 1997 Fred Fish (fnf@cygnus.com) +Thu Oct 1 19:58:30 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - * dwarfout.c (byte_size_attribute): Add local var upper_bound - and add case to handle STRING_TYPE. - * dwarfout.c (output_string_type_die): Fix code to generate - correct string length attribute for fixed length strings. - Still needs support for varying length strings. + * regmove.c (regmove_optimize): Add variable old_max_uid. + At the end of the function, update basic_block_end. -Fri Nov 14 08:46:56 1997 Jeffrey A Law (law@cygnus.com) +Thu Oct 1 17:58:25 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * toplev.c (get_run_time): Do something sensible for cygwin32. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Use + FIRST_PSEUDO_REGISTER as upper bound for last_end, not an + arbitrary constant. -Fri Nov 14 07:24:20 1997 Richard Henderson <rth@cygnus.com> +Thu Oct 1 17:57:14 1998 Nick Clifton <nickc@cygnus.com> - * expr.c (expand_builtin_setjmp): Set - current_function_has_nonlocal_label. - * stupid.c (stupid_life_analysis): If has_nonlocal_label, kill - call-saved registers across calls. + * config/arm/arm.c: Improve interworking support. - * alpha.md (exception_receiver): Remove. - (nonlocal_goto_receiver_osf): New - (nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver. - (nonlocal_goto_receiver): New, select _osf or _vms. +Thu Oct 1 18:43:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * alpha.c (output_prolog [*]): Prefix entry labels with '$' to - keep them from being propogated to the object file. - (alpha_write_linkage): Likewise. - * alpha.md (call_vms): Likewise. - (call_value_vms): Likewise. - (unnamed osf call insns): Likewise. + * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was + copied from reload_out[r] . - * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. +Thu Oct 1 19:20:09 1998 John Carr <jfc@mit.edu> - * alpha.c (call_operand): Any reg is valid for WinNT. - * alpha.md (call_nt, call_value_nt): Don't force address into $27. - (anon nt calls): Add 'R' alternative. - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, - INITIALIZE_TRAMPOLINE): Handle lack of original $27 and 32-bit ptrs. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work + with more than three size ranges. -Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com) + * flow.c (sbitmap_copy): Use bcopy to copy bitmap. - * calls.c (expand_call): Handle pcc_struct_value correctly for C++. + * rtl.c (mode_name): Add a null string at the end of the array. + (mode_wider_mode): Change type to unsigned char. + (mode_mask_array): New variable. + (init_rtl): Update for mode_wider_mode type change. - * i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines. - * i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. - * rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. + * rtl.h (mode_wider_mode): Change type to unsigned char. + (mode_mask_array): Declare. + (GET_MODE_MASK): Use mode_mask_array. -Thu Nov 13 20:37:33 1997 Michael Meissner <meissner@tiktok.cygnus.com> +Thu Oct 1 15:56:01 1998 Gavin Romig-Koch <gavin@cygnus.com> - * reload1.c (new_spill_reg): Improve fixed or forbidden register - spill error message. + * calls.c (expand_call) : Encapsulate code into + copy_blkmode_from_reg. + * expr.c (copy_blkmode_from_reg): New function. + * expr.h (copy_blkmode_from_reg): New function. + * integrate.c (function_cannot_inline_p): We can inline + these now. + (expand_inline_function): Use copy_blkmode_from_reg + if needed. Avoid creating BLKmode REGs. + (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode + object. -Thu Nov 13 20:29:08 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> +Thu Oct 1 10:42:27 1998 Nick Clifton <nickc@cygnus.com> - * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, - use varargs.h. Wrap header with <>, not "". + * config/v850/v850.c: Add function prototypes. + Add support for v850 special data areas. -Thu Nov 13 20:21:17 1997 Jeffrey A Law (law@cygnus.com) + * config/v850/v850.h: Add support for v850 special data areas. - * integrate.c (save_for_inline_copying): Add return value from - savealloc. + * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and + HANDLE_PRAGMA_PACK_PUSH_POP. + (push_alignment): New function: Cache an alignment requested + by a #pragma pack(push,<n>). + (pop_alignment): New function: Pop an alignment from the + alignment stack. + (insert_pack_attributes): New function: Generate __packed__ + and __aligned__ attributes for new decls whilst a #pragma pack + is in effect. + (add_weak): New function: Cache a #pragma weak directive. + (handle_pragma_token): Document calling conventions. Add + support for #pragma pack(push,<n>) and #pragma pack (pop). -Thu Nov 13 19:12:33 1997 Brendan Kehoe <brendan@cygnus.com> + * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP + are defined enable HANDLE_PRAGMA_PACK. + Move 'struct weak_syms' here (from varasm.c). + Add pragma states for push and pop pragmas. - * fixincludes: Be a little more restrictive on what we will - substitute to replace definitions of MAXINT for HPUX. + * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES + if it is defined. -Thu Nov 13 18:41:02 1997 Michael Meissner <meissner@cygnus.com> + * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with + HANDLE_GENERIC_PRAGMAS. - * dbxout.c (dbxout_symbol_location): Don't assume that variables - whose address is the stack or argument pointers are indirect - pointers. + * varasm.c: Move definition of 'struct weak_syms' into + c-pragma.h. + (handle_pragma_weak): Deleted. -1997-11-13 Paul Eggert <eggert@twinsun.com> + * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - * cccp.c, cpplib.c (compare_defs): - Don't complain about arg name respellings unless pedantic. - * cpplib.c (compare_defs): Accept pfile as new arg. - All callers changed. + * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. -Thu Nov 13 23:33:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * c-decl.c (start_function): Add invocation of + SET_DEFAULT_DECL_ATTRIBUTES, if defined. - * fold-const.c (fold_truthop): Fix bug in last change. + * tm.texi: Remove description of non-existent macro + SET_DEFAULT_SECTION_NAME. -1997-11-13 Paul Eggert <eggert@twinsun.com> + (HANDLE_SYSV_PRAGMA): Document. + (HANDLE_PRAGMA_PACK_PUSH_POP): Document. - Fix some confusion with IEEE minus zero. +Wed Sep 30 22:27:53 1998 Robert Lipe <robertl@dgii.com> - * real.h (REAL_VALUES_IDENTICAL): New macro. + * config.sub: Recognize i[34567]86-pc-udk as new target. + * configure.in: Likewise. + * config/i386/t-udk: New file. + * config/i386/udk.h: New file. - * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. - * fold-const.c (operand_equal_p): Don't consider -0.0 to be - identical to 0.0. - * tree.c (simple_cst_equal): Don't consider -0.0 to have the - same tree structure as 0.0. +Wed Sep 30 19:33:07 1998 Jeffrey A Law (law@cygnus.com) - * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL - macro instead of doing it by hand. + * reorg.c (check_annul_list_true_false): Remove unused variables. + (steal_delay_list_from_target): Add missing "used_annul" variable. + (try_merge_delay_insns): Close out half formed comment. -Thu Nov 13 16:56:14 1997 Jeffrey A Law (law@cygnus.com) +Wed Sep 30 19:13:20 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - * v850/lib1funcs.asm: Minor whitespace changes. - * v850.c: Fix minor formatting problems in many places. - (construct_restore_jr, construct_save_jarl): Remove unwanted aborts. + * cpplib.c (macroexpand): If arg->raw_before or + arg->raw_after, remove any no-reexpansion escape at the + beginning of the pasted token. Correct handling of whitespace + markers and no-reexpand markers at the end if arg->raw_after. -Thu Nov 13 12:53:44 1997 Jim Wilson <wilson@cygnus.com> + * toplev.c (documented_lang_options): Recognize -include, + -imacros, -iwithprefix, -iwithprefixbefore. + * cpplib.c (cpp_start_read): Process -imacros and -include + switches at the same time and in command-line order, after + initializing the dependency-output code. Emit properly nested + #line directives for them. Emit a #line for the main file + before processing these switches, and don't do it again + afterward. - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and - xplus1 when xplus0 is not a register. +Wed Sep 30 18:03:22 1998 Richard Henderson <rth@cygnus.com> -Thu Nov 13 11:41:42 1997 Jeffrey A Law (law@cygnus.com) + * function.c (purge_addressof_1): Use bitfield manipulation + routines to handle mem mode < reg mode. - * flow.c (find_basic_blocks): During marking phase, if we encounter - an insn with a REG_LABEL note, make the target block live and - create an edge from the insn to the target block. Do not make - edges from all blocks to the target block. +Wed Sep 30 18:43:32 1998 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * m68k/x-next (OTHER_FIXINCLUDES_DIRS): Include /NextDeveloper/Headers. + * reorg.c (try_merge_delay_insns): Account for resources referenced + in each instruction in INSN's delay list before trying to eliminate + useless instructions. Similarly when looking at a trial insn's delay + slots. - * confiugre.in: Tweak NCR entries. - * configure: Rebuilt. + * reorg.c (check_annul_list_true_false): New function. + (steal_delay_list_from_{target,fallthrough}): Call it and also + refine tests for when we may annul if already filled a slot. + (fill_slots_from_thread): Likewise. + (delete_from_delay_slot): Return newly-created thread. + (try_merge_delay_isns): Use its new return value. -Thu Nov 13 11:07:41 1997 Michael Meissner <meissner@cygnus.com> +Wed Sep 30 18:29:26 1998 Jeffrey A Law (law@cygnus.com) - * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to - pick apart floating point values, instead of using CONST_DOUBLE_LOW - and CONST_DOUBLE_HIGH. + * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is + used to compute a giv or as some other non-counting use. - * rs6000.md (define_splits for DF constants): Use the appropriate - REAL_VALUE_* interface to pick apart DF floating point constants in - a machine independent fashion. +Wed Sep 30 18:19:27 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Thu Nov 13 00:06:58 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro. + * local-alloc.c (find_free_reg): Use it. + * global.c (find_reg): Likewise. + * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED. - * fold-const.c (fold_truthop): When changing a one-bit comparison - against zero into a comparison against mask, do a proper sign - extension. + * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. + * caller-save.c (init_caller_save): Use it. + * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE. -Wed Nov 12 09:37:01 1997 Jeffrey A Law (law@cygnus.com) +Wed Sep 30 12:57:30 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - * except.c: Do not include "assert.h". - (save_eh_status): Turn asserts into conditional aborts. - (restore_eh_status, scan_region): Likewise. - * dwarfout.c: Do not include "assert.h". - (bit_offset_attribute): Turn asserts into conditional aborts. - (bit_size_attribute, output_inlined_enumeration_type_die): Likewise. - (output_inlined_structure_type_die): Likewise. - (output_inlined_union_type_die): Likewise - (output_tagged_type_instantiation): Likewise. - (dwarfout_file_scope_decl): Likewise. - * dwarf2out.c: Do not include "assert.h" - (expand_builtin_dwarf_reg_size): Turn asserts into conditional aborts. - (reg_save, initial_return_save, dwarf2out_frame_debug): Likewise. - (add_child_die, modified_type_die, add_bit_offset_attribute): Likewise. - (add_bit_size_attribute, scope_die_for): Likewise. - (output_pending_types_for_scope): Likewise. - (get_inlined_enumeration_type_die): Likewise. - (get_inlined_structure_type_die): Likewise. - (get_inlined_union_type_die, gen_subprogram_die): Likewise. - (gen_tagged_type_instantiation_die): Likewise. + * configure.in: Add --enable-cpplib option which uses cpplib + for cpp, but doesn't link cpplib into cc1. Make help text + capitalization consistent. + * configure: Rebuilt. - * flow.c (find_basic_blocks): Refine further to get a more correct - cfg, especially in the presense of exception handling, computed - gotos, and other non-trivial cases. Call abort if an inaccuracy - is detected in the cfg. +Wed Sep 30 10:09:39 1998 Mark Mitchell <mark@markmitchell.com> -Tue Nov 11 21:47:27 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * function.c (gen_mem_addressof): If the address REG is + REG_USERVAR_P make the new REG be so also. + * loop.c (scan_loop): Apply DeMorgan's laws and add documentation + in an attempt to clarify slightly. - * glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts. +Wed Sep 30 09:57:40 1998 Jeffrey A Law (law@cygnus.com) - * c-lex.c (whitespace_cr, skip_white_space_on_line): New functions. - (skip_white_space): Use whitespace_cr. - (check_newline): Handle whitespace more consistently. + * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF + and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE. -Tue Nov 11 16:25:49 1997 Jim Wilson <wilson@cygnus.com> +Wed Sep 30 10:13:39 1998 Catherine Moore <clm@cygnus.com> - * i386/cygwin32.h (CPP_PREDEFINES): Delete -DPOSIX. - * i386/xm-cygwin32.h (POSIX): Define. + * toplev.c: Fix last patch. -Mon Nov 10 20:53:11 1997 Gavin Koch <gavin@cygnus.com> +Tue Sep 29 20:03:18 1998 Jim Wilson <wilson@cygnus.com> - * config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit - is available elsewhere. + * loop.c (get_condition): Fix typo in May 9 change. -Mon Nov 10 16:21:58 1997 Doug Evans <devans@canuck.cygnus.com> +Tue Sep 29 11:11:38 1998 Andrew MacLeod <amacleod@cygnus.com> - * sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match - what the instruction can handle. + * invoke.texi (-fexceptions): Merge 2 different descriptions. -Mon Nov 10 03:02:19 1997 Jason Merrill <jason@yorick.cygnus.com> +Mon Sep 28 22:08:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * stmt.c (expand_decl_cleanup_no_eh): New fn. + * toplev.c (documented_lang_options): Spelling corrections. - * except.c (expand_leftover_cleanups): do_pending_stack_adjust. +Mon Sep 28 19:41:24 1998 Alexandre Oliva <oliva@dcc.unicamp.br> -Mon Nov 10 00:05:56 1997 Jeffrey A Law (law@cygnus.com) + * configure.in: New flags --with-ld and --with-as, equivalent + to setting LD and AS environment variables. Test whether + specified arguments are GNU commands, and report them with + checking messages. Use the specified AS for configure + tests too. + * configure: Likewise. + * acconfig.h: Add DEFAULT_ASSEMBLER and DEFAULT_LINKER. + * config.in: Likewise. + * gcc.c (find_a_file): When looking for `as' and `ld', return + the DEFAULT program if it exists. + * collect2.c (main): Use DEFAULT_LINKER if it exists. - * alias.c (MAX_ALIAS_LOOP_PASSES): Define. - (init_alias_analysis): Break out of loops after MAX_ALIAS_LOOP_PASSES. + * gcc.c (find_a_file): The test for existence of a full + pathname was reversed. -Sun Nov 9 14:34:47 1997 David Edelsohn <edelsohn@mhpcc.edu> +Mon Sep 28 17:34:35 1998 Michael Meissner <meissner@cygnus.com> - * rs6000.md (lshrdi3_power): Delete '&' from first alternative and - swap instruction order. + * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems. + * rs6000.c (output_mi_thunk): Always use a raw jump for now. -Sun Nov 9 02:07:16 1997 Jeffrey A Law (law@cygnus.com) +Mon Sep 28 14:24:03 1998 Mark Mitchell <mark@markmitchell.com> - * fixinc.svr4 (__STDC__): Add another case. + * tree.h (TYPE_BINFO): Document. -Sun Nov 9 02:00:29 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Sep 28 12:55:49 1998 Stan Cox <scox@cygnus.com> - * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying - addresses in the epilogue delay slot. + * i386-coff.h (dbxcoff.h): Added. -Sun Nov 9 01:40:40 1997 Manfred Hollstein (manfred@s-direktnet.de) +Mon Sep 28 12:51:00 1998 Catherine Moore <clm@cygnus.com> - * m88k/dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace - in generated `specs' file. + * toplev.c: Fix bad patch around flag_data_sections. -Sun Nov 9 01:37:11 1997 Jim Wilson (wilson@cygnus.com) +Mon Sep 28 10:32:28 1998 Nick Clifton <nickc@cygnus.com> - * flags.h (flag_rerun_loop_opt): Declare. - * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. - * toplev.c (flag_rerum_loop_opt): Delete static. + * reload1.c (reload): Use reload_address_index_reg_class and + reload_address_base_reg_class when setting + caller_save_spill_class. (Patch generated by Jim Wilson: + wilson@cygnus.com). -Sat Nov 8 18:20:21 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Sep 28 07:43:34 1998 Mark Mitchell <mark@markmitchell.com> - Bring over from FSF: + * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs + and ARRAY_TYPEs. Tidy up. Improve support for type-punning. + * expr.c (store_field): Add alias_set parameter. Set the + MEM_ALIAS_SET accordingly, if the target is a MEM. + (expand_assignment): Use it. + (store_constructor_field): Pass 0. + (expand_expr): Likewise. - Thu Oct 30 12:21:06 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Sep 28 07:54:03 1998 Catherine Moore <clm@cygnus.com> - * va-sh.h (__va_arg_sh1): Define. - (va_arg): Use it. - SH3E doesn't use any integer registers for subsequent arguments - once a non-float value was passed in the stack. - * sh.c (machine_dependent_reorg): If optimizing, put explicit - alignment in front label for ADDR_DIFF_VEC. - * sh.h (PASS_IN_REG_P): Fix SH3E case. - (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. + * flags.h: Add flag_data_sections. + * toplev.c: Add option -fdata-sections. Add flag_data_sections. + (compile_file): Error if flag_data_sections not supported. + * varasm.c (assemble_variable): Handle flag_data_sections. + * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME. + * config/mips/elf.h: Likewise. + * config/mips/elf64.h: Likewise. + * invoke.texi: Describe -fdata-sections. - Tue Oct 28 15:06:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Sep 28 04:15:44 1998 Craig Burley <burley@melange.gnu.org> - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including - svr4.h. + * invoke.texi (-ffloat-store): Clarify that this option + does not affect intermediate results -- only variables. - Mon Oct 27 16:11:52 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Sep 28 04:11:35 1998 Jeffrey A Law (law@cygnus.com) - * sh.c (machine_dependent_reorg): When -flag_delayed_branches, - put an use_sfunc_addr before each sfunc. - * sh.md (use_sfunc_addr, dummy_jump): New insns. - (casesi): For TARGET_SH2, emit a dummy_jump after LAB. + * cpp.texi: Update for Fortran usage from Craig. - Tue Oct 21 07:12:28 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Fri Sep 25 22:09:47 1998 David Edelsohn <edelsohn@gnu.org> - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. + * rs6000.c (function_arg_boundary): Revert accidental change on + September 18. -Fri Nov 7 10:22:24 1997 Jason Merrill <jason@yorick.cygnus.com> +Fri Sep 25 20:30:00 1998 Michael Meissner <meissner@cygnus.com> - * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for - linked once FDEs. + * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk. + (output_mi_thunk): Declare. -Wed Nov 5 14:26:05 1997 Jeffrey A Law (law@cygnus.com) + * rs6000.c (output_mi_thunk): Function to create thunks for MI. + (output_function_profiler): Use r12 for temp, instead of r11 so + that we preserve the static chain register. - * alias.c (find_base_value): Only return the known base value for - pseudo registers. +Fri Sep 25 14:18:33 1998 Jim Wilson <wilson@cygnus.com> -Wed Nov 5 11:27:14 1997 Jim Wilson <wilson@cygnus.com> + * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums. - * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. - * i386.md (prologue_set_got, prologue_get_pc): Add UNSPEC_VOLATILE - to pattern. - (prologue_get_pc_and_set_got): New pattern. +Fri Sep 25 19:30:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Nov 4 20:36:50 1997 Richard Henderson (rth@cygnus.com) + * sh.c (gen_shl_sext): Fix case 5. - * alpha.c (summarize_insn): Handle ASM_OPERANDS. Don't recurse - for SUBREG, just fall through. +Fri Sep 25 17:35:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero. + * reload1.c (reload_combine): Re-add line that got accidentally lost. - * alpha.md (attr trap): Make TRAP_YES non-zero for sanity's sake. +Fri Sep 25 10:43:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com) + * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid + accessing variables until they are initialized via va_arg(). - * fixincludes: Fix "hypot" prototype in NeXT math.h. +Thu Sep 24 22:12:16 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * Makefile.in (USE_ALLOCA): Always include alloca.o. - (USE_HOST_ALLOCA): Likewise. + * reload1.c (reload_combine): Initialize set before using. - * rtl.def (CODE_LABEL): Use separate fields for LABEL_NUSES - and LABEL_REFS fields. - * rtl.h (LABEL_REFS): Update. +Thu Sep 24 18:53:20 1998 Jason Merrill <jason@yorick.cygnus.com> -Tue Nov 4 16:55:11 1997 Jim Wilson <wilson@cygnus.com> + * sdbout.c (sdbout_field_types): Don't emit the types of fields we + won't be emitting. - * combine.c (try_combine): When setting elim_i2, check whether newi2pat - sets i2dest. When calling distribute_notes for i3dest_killed, pass - elim_i2 and elim_i1. When setting elim_i1, check if newi2pat - sets i1dest. +Thu Sep 24 17:05:30 1998 Nick Clifton <nickc@cygnus.com> - * mips.md (insv, extzv, extv): Add change_address call. - (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. + * config/arm/arm.md (insv): Add comment. In CONST_INT case, and + operand3 with mask before using it. Patch provided by Jim Wilson. - * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. +Thu Sep 24 15:08:08 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. + * config/sparc/sparc.c (function_value): Perform the equivalent of + PROMOTE_MODE for ARCH64. + (eligible_for_epilogue_delay): Allow DImode operations in delay + slot of a return for ARCH64. - * mips.c (mips_expand_epilogue): Emit blockage insn before call to - save_restore_insns if no FP and GP will be restored. +Thu Sep 24 22:17:54 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. + * sh.md (sqrtsf2): Fix mode of sqrt. - * acconfig.h (HAVE_INTTYPES_H): Undef. - * configure.in (inttypes.h): Check for conflicts between sys/types.h - and inttypes.h, and verify that intmax_t is defined. - * config/mips/x-iris (CC, OPT, OLDCC): Comment out. - * config/mips/x-iris3: Likewise. +Thu Sep 24 21:48:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Nov 4 16:07:15 1997 Jeffrey A Law (law@cygnus.com) + * reload1.c (choose_reload_regs): Also try inheritance when + reload_in is a stack slot of a pseudo, even if we already got a + reload reg. - * alias.c (find_base_value): When copying arguments, return the - tenative value for a hard register. +Thu Sep 24 21:22:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Nov 4 13:40:35 1997 Doug Evans <devans@canuck.cygnus.com> + * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs. + (reload_cse_regs): New function body: call reload_cse_regs_1, + reload_combine, reload_cse_move2add. + When doing expensive_optimizations, call reload_cse_regs_1 a + second time after reload_cse_move2add. + (reload_combine, reload_combine_note_store): New functions. + (reload_combine_note_use): New function. + (reload_cse_move2add, move2add_note_store): New functions. - * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. - (yylex): Record wide strings using target endianness, not host. +Thu Sep 24 18:48:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com) + * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR + reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. - * mn10200.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro - * mn10300.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - * v850.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. + Properly keep track of first RELOAD_FOR_X_ADDRESS also for + more than 3 such reloads. -Tue Nov 4 00:55:48 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + If there is not more than one RELOAD_FOR_X_ADDRESS, don't change + RELOAD_FOR_X_ADDR_ADDR reload. - * profile.c (branch_prob): Insert an insn after a NOTE_INSN_SETJMP. +Thu Sep 24 17:45:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon Nov 3 14:36:50 1997 Jeffrey A Law (law@cygnus.com) + * expr.c (store_constructor): When initializing a field that is smaller + than a word, at the start of a word, try to widen it to a full word. - * configure.in (sco5): Use cpio to install header files. + * cse.c (cse_insn): When we are about to change a register, + remove any invalid references to it. -Sun Nov 2 23:31:43 1997 Manfred Hollstein <manfred@s-direktnet.de> + (remove_invalid_subreg_refs): New function. + (mention_regs): Special treatment for SUBREGs. + (insert_regs): Don't strip SUBREG for call to mention_regs. + Check if reg_tick needs to be bumped up before that call. + (lookup_as_function): Try to match known word_mode constants when + looking for a norrower constant. + (canon_hash): Special treatment for SUBREGs. - * aclocal.m4 (conftestdata_from, conftestdata_to): Names shortened to - 14 char length. - * configure: Rebuild. +Thu Sep 24 01:35:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Sun Nov 2 19:44:00 1997 Robert Lipe (robertl@dgii.com) + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define. + * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is + defined, emit libcall to __enable_execute_stack. Also fix opcodes + and offsets in actual stack trampoline code so they match the + commentary and actually work. - * i386/sco5.h: enable -gstabs once again. +Thu Sep 24 01:19:02 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> -Sun Nov 2 19:27:21 1997 Jeffrey A Law (law@cygnus.com) + * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for + tmake_file. + (sparc64-*-linux): Use t-linux and sparc/t-linux64 for + tmake_file. Set extra_parts to needed crt objects. + * configure: Rebuilt. + * config/sparc/linux64.h (SPARC_BI_ARCH): Define. + (TARGET_DEFAULT): Set if default is v9 or ultra. + (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros. + (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH. + (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise. + (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_SPEC, LINK_ARCH_SPEC): Likewise. + (TARGET_VERSION): Define. + (MULTILIB_DEFAULT): Define. + * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that + mixed 32/64 bit compilers based upon SPARC_BI_ARCH work. + (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define + appropriately. + (TARGET_SWITCHES): Allow ptr32/ptr64 options once more. + * config/sparc/sparc.c (sparc_override_options): If arch and + pointer size disagree, emit diagnostic and fix it up. If + SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32. Turn off + V8PLUS in 64-bit mode. + * config/sparc/t-linux64: New file. + * config/sparc/t-sol2-64: New file. + * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS. + * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define. + (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC, + CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define. + (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those. + (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC): + Define. + (STARTFILE_SPEC): Set appropriately based upon those. + (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon + disposition of DEFAULT_ARCH32_P. + (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define. + (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those. + (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P. + (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH. + * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on + arch64/v9. + * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise. - * arm.c (output_move_double): Allocate 3 entries in otherops array. +Wed Sep 23 22:32:31 1998 Mark Mitchell <mark@markmitchell.com> -Sat Nov 1 21:43:00 1997 Mike Stump (mrs@wrs.com) + * rtl.h (init_virtual_regs): New function. + * emit-rtl.c (init_virtual_regs): Define. + (insn_emit): Use it. + * integrate.c (save_for_inline_copying): Likewise. - * except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG - notes for sjlj exceptions too. - (expand_eh_region_end): Similarly for EH_REGION_END notes. - (exception_optimize): Optimize EH regions for sjlj exceptions too. - * final.c (final_scan_insn): Don't output labels for EH REGION - notes if doing sjlj exceptions. +Wed Sep 23 16:22:01 1998 Nick Clifton <nickc@cygnus.com> -Sat Nov 1 19:15:28 1997 Jeffrey A Law (law@cygnus.com) + * config/arm/thumb.h: The following patches were made by Jim Wilson: + (enum reg_class): Add NONARG_LO_REGS support. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, + PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload + completes. Re-enable HImode REG+OFFSET addresses. + (LEGITIMIZE_RELOAD_ADDRESS): Define. - * alias.c (init_alias_analysis): Handle -fno-alias-check when - optimizing correctly. + * expmed.c (extract_bit_field): Add comment from Jim Wilson. - * expr.c (expand_builtin_setjmp): Don't emit a SETJMP note - or set current_function_calls_setjmp anymore. +Wed Sep 23 13:26:02 1998 Richard Henderson <rth@cygnus.com> - * flow.c (find_basic_blocks): If we delete the label for an - exception handler, remove it from the EH label list and remove - the EH_BEGIN/EH_END notes for that EH region. + * alpha.c (get_aligned_mem): Revert Sep 20 change. + (alpha_set_memflags, alpha_set_memflags_1): Likewise. + (alpha_align_insns): Properly calculate initial offset wrt max_align. -Sat Nov 1 16:44:49 1997 Jason Merrill (jason@cygnus.com) +Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) - * flow.c (find_basic_blocks): Generate correct flow control - information when exception handling notes are present. + * arm.c (find_barrier): Revert change of Apr 23. Handle table + jumps as a single entity, taking into account the size of the + table. -Sat Nov 1 13:42:19 1997 Jeffrey A Law (law@cygnus.com) +Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - * dwarf2out.c (output_call_frame_info): Fix length argument - to ASM_OUTPUT_ASCII. - (output_die, output_pubnames, output_line_info): Likewise. + * tree.def (SWITCH_EXPR): New tree node definition. + +Mon Sep 21 23:40:38 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. -Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) +Mon Sep 21 22:31:14 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. - * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to - output ASCII by default. Only use ASM_OUTPUT_DWARF_STRING if - flag_debug_asm is on. - (output_die, output_pubnames, output_line_info): Likewise. +Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) - * alias.c (init_alias_analysis): Add struct_value_incoming_rtx - and static_chain_rtx into the potential base values array if - they are registers. + * configure.in: Recognize i[34567]86-*-openbsd* and handle it like + NetBSD. - * alias.c (new_reg_base_value): New array of potential base values. - (unique_id): Now file scoped static. - (find_base_value, case REG): Return the value in reg_base_value - array for the REG if it exists. Else, return the value from - new_reg_base_value if copying args and REG is a hard register. - (find_base_value, case PLUS): If either operand of the PLUS is - a REG, try to get its base value. Handle base + index and - index + base. - (record_set): Use new_reg_base_value instead of reg_base_value. - (init_alias_analysis): Allocate space for new_reg_base_value too. - Rework code to iterate over the insns propagating base value - information until nothing changes. +Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) + + * Revert this patch. + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. + +Mon Sep 21 20:19:41 1998 John Carr <jfc@mit.edu> + + * final.c (final_scan_insn): Disable tracking CC across branches. + +Mon Sep 21 17:15:26 1998 Andrew MacLeod <amacleod@cygnus.com> + + * expr.h (eh_rtime_match_libfunc): New extern declaration. + * optabs.c (init_optabs): Set eh_rtime_match_libfunc. + * except.c (start_catch_handler): Use eh_rtime_match_libfunc. + * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is + NULL. Only include <stdio.h> if inhibit_libc is not defined. + +Mon Sep 21 14:10:51 1998 Jason Merrill <jason@yorick.cygnus.com> + + * toplev.c (rest_of_compilation): Skip compiling anything with + DECL_EXTERNAL set, not just if it has DECL_INLINE as well. + +Mon Sep 21 13:51:05 1998 Jim Wilson <wilson@cygnus.com> + + * flow.c (find_basic_blocks): Delete check for in_libcall_block when + prev_code is a CALL_INSN. Change check for REG_RETVAL note to + use in_libcall_block. + (find_basic_blocks_1): Delete check for in_libcall_block when prev_code + is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code + to INSN. + +Mon Sep 21 14:02:23 1998 Robert Lipe <robertl@dgii.com> + + * i386.h (TARGET_SWITCHES): Improve doc for align-double. Fix + typo in no-fancy-math-387 description. + +Mon Sep 21 09:27:18 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. - * global.c (global_alloc): Free the conflict matrix after - reload has finished. +Mon Sep 21 09:24:49 1998 Stan Cox <scox@cygnus.com> -Fri Oct 31 01:45:31 1997 Jason Merrill <jason@yorick.cygnus.com> + * i386-coff.h (DBX_DEBUGGING_INFO): Added. - * libgcc2.c (L_eh): Define __eh_pc. - Replace __eh_type with generic pointer __eh_info. +Mon Sep 21 09:14:49 1998 Robert Lipe <robertl@dgii.com> -Fri Oct 31 00:34:55 1996 J"orn Rennecke <amylaar@cygnus.co.uk> + * i386.h (TARGET_SWITCHES): Add description fields for flags + documented in install.texi. + (TARGET_OPTIONS): Likewise. - * expr.c (expand_increment): When enqueing a postincrement for a MEM, - use copy_to_reg if address is not a general_operand. +Mon Sep 21 01:39:03 1998 Jeff Law (law@cygnus.com) -Fri Oct 31 00:16:55 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * version.c: Bump for snapshot. - * profile.c (output_func_start_profiler): Clear flag_inline_functions - for the duration of the call to rest_of_compilation. +Mon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> -Thu Oct 30 14:40:10 1997 Doug Evans <devans@canuck.cygnus.com> + * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). + * cccp.c (main): Likewise. - * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. - Set extra_parts. - (sparc*-*-*): Recognize --with-cpu=v9. - * sparc/elf.h: New file. - * sparc/t-elf: New file. + * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h: + Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some + macro-use bugs. -Thu Oct 30 13:26:12 1997 Jeffrey A Law (law@cygnus.com) +Mon Sep 21 00:52:12 1998 Per Bothner <bothner@cygnus.com> - * mn10300.c (const_8bit_operand): New function. - (mask_ok_for_mem_btst): New funtion. - * mn10300.md (btst patterns with mem operands): Use new functions - to avoid creating btst instructions with invalid operands. + * Makefile.in (LIBS): Link in libiberty.a. + * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. -Wed Oct 29 16:57:19 1997 Michael Meissner <meissner@cygnus.com> +Sun Sep 20 23:28:11 1998 Richard Henderson <rth@cygnus.com> - * rs6000/xm-sysv4.h: Include xm-linux.h instead of xm-svr4.h if we - are running on PowerPC Linux. + * reload1.c (emit_reload_insns): Accept a new arg for the bb. Use + it to update bb boundaries. Update caller. + * function.c (reposition_prologue_and_epilogue_notes): Update + bb boundaries wrt the moved note. -Wed Oct 29 13:10:11 1997 Gavin Koch <gavin@cygnus.com> +Sun Sep 20 20:57:02 1998 Robert Lipe <robertl@dgii.com> - * config/mips/elf64.h (PREFERRED_DEBUGGING_TYPE): Only define - if not previously defined. + * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder + problems. + * configure: Regenerate. -Tue Oct 28 23:55:27 1997 Doug Evans (devans@cygnus.com) +Sun Sep 20 19:01:51 1998 Richard Henderson <rth@cygnus.com> - * function.c (assign_parms): Correct mode of stack_parm if - entry_parm underwent a mode conversion. + * alpha.c (alpha_sr_alias_set): New variable. + (override_options): Set it. + (alpha_expand_prologue, alpha_expand_epilogue): Use it. + (mode_mask_operand): Fix signed-unsigned comparison warning. + (alpha_expand_block_move): Likewise. + (print_operand): Likewise. + (get_aligned_mem): Use change_address. + (alpha_set_memflags, alpha_set_memflags_1): Set the alias set. + (alphaev4_insn_pipe, alphaev4_next_group): New functions. + (alphaev4_next_nop, alphaev5_next_nop): New functions. + (alpha_align_insns): Remade from old alphaev5_align_insns + to handle multiple processors. + (alpha_reorg): Call alpha_align_insns for both ev4 and ev5. + * output.h (label_to_alignment): Prototype. -1997-10-28 Brendan Kehoe <brendan@lisa.cygnus.com> + * tree.c (new_alias_set): New function. + * tree.h (new_alias_set): Declare it. + * c-common.c (c_get_alias_set): Use it. - * global.c (global_alloc): Use xmalloc instead of alloca for - CONFLICTS, since max_allocno * allocno_row_words alone can be more - than 2.5Mb sometimes. +Sun Sep 20 12:35:55 1998 Richard Henderson <rth@cygnus.com> -Tue Oct 28 15:29:15 1997 Richard Henderson <rth@cygnus.com> + * fold-const.c (fold): Yet another COND_EXPR bug: when folding + to an ABS expr, convert an unsigned input to signed. - * reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of - DEST for the spill, adjust mode of SRC to compensate. +Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) -Tue Oct 28 14:36:45 1997 Richard Henderson <rth@cygnus.com> + * fold-const.c (fold): Fix another type in COND_EXPR handling code. - * alpha.md (reload_inqi): Check for MEM before strict_memory_address_p, - since any_memory_operand() allows pseudos during reload. - (reload_inhi, reload_outqi, reload_outhi): Likewise. +1998-09-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Tue Oct 28 11:53:14 1997 Jim Wilson <wilson@cygnus.com> + * configure.in: Add support for c4x targets. + * configure: Rebuilt. - * m68k.md (btst patterns): Add 5200 support. +Sun Sep 20 00:00:51 1998 Richard Henderson <rth@cygnus.com> -Tue Oct 28 11:58:40 1997 Toon Moene <toon@moene.indiv.nluug.nl> + * combine.c (distribute_notes): If an insn is a cc0 user, only + delete it if we can also delete the cc0 setter. - * fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3) - optimizations, look inside dividend to determine if the expression - can be simplified by using EXACT_DIV_EXPR. +Sun Sep 20 00:22:23 1998 Michael Tiemann <michael@impact.tiemann.org> -Tue Oct 28 10:19:01 1997 Jason Merrill <jason@yorick.cygnus.com> + * fold-const.c (fold): Fix typo in COND_EXPR handling code. + (invert_truthvalue): Enable truthvalue inversion for + floating-point operands if -ffast-math. - From Brendan: - * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". +Sat Sep 19 23:58:07 1998 Melissa O'Neill <oneill@cs.sfu.ca> -Tue Oct 28 00:32:14 1997 Richard Henderson <rth@cygnus.com> + * configure.in: Disable collect2 for nextstep. Instead use + crtbegin/crtend. + * configure: Rebuilt. + * config/nextstep.h (STARTFILE_SPEC): Add crtbegin. + (ENDFILE_SPEC): Define. + (OBJECT_FORMAT_MACHO): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + * crtstuff.c: Handle MACHO. - * alpha.c (summarize_insn [SUBREG]): Propogate SET. +Sun Sep 20 00:24:24 1998 Robert Lipe <robertl@dgii.com> -Mon Oct 27 23:59:26 1997 Richard Henderson <rth@cygnus.com> + * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. - * alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap - on a CLOBBER. +1998-09-19 Torbjorn Granlund <tege@matematik.su.se> -Mon Oct 27 21:25:20 1997 Richard Henderson <rth@cygnus.com> + * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. + (_fpadd_parts): Get sign right for 0. - * alpha.md (movqi, movhi): Make sure new insns created during reload - won't need reloading themselves. - (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Likewise. +1998-09-19 Michael Hayes <m.hayes@elec.canterbury.ac.nz> -Mon Oct 27 16:11:10 1997 Jeffrey A Law (law@cygnus.com) + * ginclude/varargs.h: Add support for C4x target. + * ginclude/stdargs.h: Likewise. - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. +Sat Sep 19 12:05:09 1998 Richard Henderson <rth@cygnus.com> -Sun Oct 26 13:50:44 1997 Richard Henderson <rth@cygnus.com> + * alpha.c (alpha_return_addr): SET should be VOIDmode. + (alpha_emit_set_long_const): Rewrite to be callable from reload + and 32-bit hosts. + (alpha_expand_epilogue): Update for alpha_emit_set_long_const. + * alpha.md (movdi): Likewise. - * alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask. - Patch from Klaus Kaempf <kkaempf@progis.de>. +Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.com) -Sun Oct 26 13:31:47 1997 Jim Wilson (wilson@cygnus.com) + * arm.c (add_constant): New parameter address_only, change caller. + Set it non-zero if taking the address of an item in the pool. + (arm_reorg): Handle cases where we need the address of an item in + the pool. - * expr.c (expand_expr, case INDIRECT_REF): Optimize a reference - to an element in a constant string. + * arm.c (bad_signed_byte_operand): Check both arms of a sum in + a memory address. + * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle + memory addresses that are not in standard canonical form. -Sun Oct 26 11:41:49 1997 Jason Merrill <jason@yorick.cygnus.com> +Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) - * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 - bit PC-relative offset. The exception range table pointer is now in - the CIE. - * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. - (count_fdes, add_fdes, get_cie): Adjust. - (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. + * README.C4X: New file with information about the c4x ports. + * ginclude/va-c4x.h: New file for c4x varargs support. + * config/c4x: New directory with c4x port files. - From H.J. Lu: - * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. +Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) -Sun Oct 26 11:52:01 1997 Richard Henderson <rth@cygnus.com> + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. - * alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just - like stack_pointer_rtx. +Fri Sep 18 23:50:56 1998 David Edelsohn <edelsohn@gnu.org> -Sun Oct 26 11:32:16 1997 Manfred Hollstein <manfred@s-direktnet.de> + * toplev.c (rest_of_compilation): Set bct_p on second call to + loop_optimize. + * loop.c (loop_optimize, scan_loop, strength_reduce): New argument + bct_p. + (strength_reduce): Only call analyze_loop_iterations and + insert_bct if bct_p set. + (check_dbra_loop): Fix typo. + (insert_bct): Use word_mode instead of SImode. + (instrument_loop_bct): Likewise. Do not delete iteration count + condition code generation insn. Initialize iteration count before + loop start. + * rtl.h (loop_optimize): Update prototype. - * Makefile.in (bootstrap-lean): Combined with `normal' bootstrap - targets using "$@" to provide support for similar but not identical - targets without having to duplicate code. - (bootstrap4): New goal. + * ginclude/va-ppc.h (va_arg): longlong types in overflow area are + not doubleword aligned. - * Makefile.in (compare, compare-lean, compare3): Combined to one - ruleset determining actions to be performed via $@. - (compare4, compare4-lean): New targets. - (gnucompare, gnucompare3): Combined to one ruleset determining - actions to be performed via $@. Also, note which files failed - the comparison test in .bad_compare. - (gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets. + * rs6000.c (optimization_options): New function. + (secondary_reload_class): Only call true_regnum for PSEUDO_REGs. + * rs6000.h (OPTIMIZATION_OPTIONS): Define. + (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters + first; cr1 can be used for FP record condition insns. -Sun Oct 26 10:06:11 1997 Toon Moene <toon@moene.indiv.nluug.nl> +Fri Sep 18 09:44:55 1998 Nick Clifton <nickc@cygnus.com> - * fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR - if the dividend is a multiple of the divisor. + * config/m32r/m32r.h (m32r_block_immediate_operand): Add to + PREDICATE_CODES. -Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) + * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" + patterns. - * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. + * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p' + operators. + (block_move_call): New function: Call a library routine to copy a + block of memory. + (m32r_expand_block_move): New function: Expand a "movstrsi" + pattern into a sequence of insns. + (m32r_output_block_move): New function: Expand a + "movstrsi_internal" pattern into a sequence of assembler opcodes. + (m32r_block_immediate_operand): New function: Return true if the + RTL is an integer constant, less than or equal to MAX_MOVE_BYTES. - * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC, - and POS_DEC. +Thu Sep 17 16:42:16 1998 Andrew MacLeod <amacleod@cygnus.com> - * alias.c (true_dependence): Fix typo. + * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and + re-align some code. + * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>. - * toplev.c (flag_rerun_loop_opt): New variable. - (f_options): Handle -frerun-loop-opt. - (rest_of_compilation): If -frerun-loop-opt, then run the loop - optimizer twice. - (main): Enable -frerun-loop-opt by default for -O2 or greater. +Thu Sep 17 12:24:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * loop.c (simplify_giv_expr): Adding two invariants results - in an invariant. + * regmove.c (copy_src_to_dest): Check that modes match. -Sun Oct 26 09:15:15 1997 Richard Henderson <rth@cygnus.com> +Wed Sep 16 22:10:42 1998 Robert Lipe <robertl@dgii.com> - * expr.c (get_inner_reference): Remove the array bias after - converting the index to Pmode. + * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. -Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) +Wed Sep 16 15:24:54 1998 Richard Henderson <rth@cygnus.com> - * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. - (TARGET_MULT_BUG): Define. - (TARGET_DEFAULT): Default to TARGET_MULT_BUG. - * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. + * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class + narrower than FLOAT_REGS. -Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com) +Wed Sep 16 17:51:00 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - * mn10200.c (indirect_memory_operand): Delete unused function. - * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. - * mn10200.md (bset, bclr insns): Handle output in a reg too. + * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR. + * cccp.c: Likewise. + * Makefile.in (old_gxx_include_dir): Removed. -Fri Oct 24 15:54:57 1997 Richard Henderson <rth@cygnus.com> +Wed Sep 16 12:29:22 1998 Nick Clifton <nickc@cygnus.com> - * alpha.md (call patterns): Revert Oct 16 change; if we are to elide - the callee's ldgp, we must do it ourselves, and we use the jsr tag - for more than scheduling. + * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match + new specification. -Fri Oct 24 13:23:04 1997 Doug Evans <devans@canuck.cygnus.com> + * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). + (sh_handle_pragma): Change function arguments to match new + specification for HANDLE_PRAGMA. - * sparc/sparc.h (ASM_SPEC): Delete asm_arch. +Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Fri Oct 24 13:19:40 1997 Jeffrey A Law (law@cygnus.com) + * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to + `unsigned char'. + (main): Mark parameter `argc' with ATTRIBUTE_UNUSED. + When generating output, initialize missing struct member to zero. - * mn10300.c (symbolic_operand, legitimize_address): New functions. - * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. +Wed Sep 16 14:47:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Thu Oct 23 09:35:12 1997 Jeffrey A Law (law@cygnus.com) + * regmove.c (copy_src_to_dest): Don't copy if that requires + (a) new register(s). - * version.c: Bump for snapshot. +Wed Sep 16 01:29:12 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> -Thu Oct 23 08:03:59 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * global.c (reg_allocno): Now static. + * reload1.c (reg_allocno): Delete declaration. + (order_regs_for_reload): Take no arguments. Don't treat regs + allocated by global differently than those allocated by local-alloc. - * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string - for FILENAME. +Wed Sep 16 01:09:01 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> -Wed Oct 22 00:34:12 1997 Jeffrey A Law (law@cygnus.com) + * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q + condition, fix format strings. + (output_function_epilogue): Likewise. - * toplev.c (flag_exceptions): Default value is 2. - (compile_file): If flag_exceptions still has the value 2, then - set it to 0. + * m68k/m68k.c: Don't include <stdlib.h> directly. - * rs6000.c (struct machine_function): Add pic_offset_table_rtx. - (rs6000_save_machine_status): Save pic_offset_table_rtx. - (rs6000_restore_machine_status: Restore pic_offset_table_rtx. +Wed Sep 16 00:30:56 1998 Geoff Keating <geoffk@ozemail.com.au> - * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions - are shared. + * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, + mem_first_set, mem_last_set; because 0 can be a CUID. + (oprs_unchanged_p): Use new definition. + (record_last_reg_set_info): Likewise. + (record_last_mem_set_info): Likewise. + (compute_hash_table): Likewise. - * rs6000.md (*movsi_got_internal_mem): New pattern. - (*movsi_got_internal_mem splitter): New define_split. - -Tue Oct 21 18:14:03 1997 Jim Wilson <wilson@cygnus.com> - - * obstack.h (obstack_empty_p): Fix spurious space after backslash. - -Tue Oct 21 18:34:01 1997 Geoffrey KEATING <geoffk@ozemail.com.au> - - * rs6000.c: Avoid creating a stack frame under SYSV ABI if we - only need to save LR. - -Tue Oct 21 10:06:40 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi): Avoid using address registers as - destinations unless absolutely necessary. - - * mn10200.c (expand_prologue): Fix typo. - - * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed - addresses. - * mn10200.md (neghi2): Provide an alternative which works if - the input and output register are the same. - - * mn10300.c (print_operand): Handle 'S'. - * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for - shift amount in last alternative - - * mn10300.c (expand_epilogue): Rework to handle register restores - in "ret" and "retf" instructions correctly. - -Mon Oct 20 16:47:08 1997 Jim Wilson <wilson@cygnus.com> - - * expmed.c (extract_bit_field): Don't make flag_force_mem disable - extzv for memory operands. - - * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse - redundant conditional moves to single operand. - -Mon Oct 20 15:30:26 1997 Nick Clifton <nickc@cygnus.com> - - * v850.h: Move define of __v850__ from CPP_PREDEFINES - to CPP_SPEC. - - * xm-v850.h: Use __v850 rather than __v850__ to - identify v850 port. - -Mon Oct 20 14:15:02 1997 Jim Wilson <wilson@cygnus.com> - - * mips/mips.c (compute_frame_size): Not a leaf function if - profile_flag set. - -Mon Oct 20 14:16:38 1997 Geoffrey KEATING <geoffk@ozemail.com.au> - - * rs6000/t-ppccomm: Use -msdata=none for crtstuff. - -Mon Oct 20 12:28:17 1997 Doug Evans <devans@canuck.cygnus.com> - - * sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete. - (DEFAULT_ARCH32_P): New macro. - (TARGET_ARCH{32,64}): Allow compile time or runtime selection. - (enum cmodel): Declare. - (sparc_cmodel_string,sparc_cmodel): Declare. - (SPARC_DEFAULT_CMODEL): Provide default. - (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. - (TARGET_FULLANY): Deleted. - (TARGET_CM_MEDMID): New macro. - (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). - (CPP_SPEC): Rewrite. - (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. - (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (ASM_SPEC): Add %(asm_arch). - (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. - Rename asm_default to asm_cpu_default. - Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, - cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. - (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. - ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. - (MASK_INT64,MASK_LONG64): Delete. - (MASK_ARCH64): Renamed to MASK_64BIT. - (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. - (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. - (TARGET_SWITCHES): Always provide 64 bit options. - (ARCH64_SWITCHES): Delete. - (TARGET_OPTIONS): New option -mcmodel=. - (INT_TYPE_SIZE): Always 32. - (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. - (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... - (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. - (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. - * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by - CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - * sparc/linux.h: Likewise. - * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (LONG_DOUBLE_TYPE_SIZE): Define. - (ASM_SPEC): Add %(asm_arch). - * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (TARGET_CPU_DEFAULT): Add ultrasparc case. - * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete - MASK_LONG64, MASK_MEDANY. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Delete. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (ASM_SPEC): Add %(asm_arch). - (LONG_DOUBLE_TYPE_SIZE): Define. - (DWARF2_DEBUGGING_INFO): Define. - * sparc/splet.h (CPP_SPEC): Delete. - * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. - (BLOCK_PROFILER): Likewise. - * sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. - (sparc_override_options): Handle code model selection. - (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc/sparc.md: TARGET_<code_model> renamed to TARGET_CM_.... - TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. - (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... - (sethi_di_fullany): Delete. - -Mon Oct 20 02:00:18 1997 Klaus Kaempf <kkaempf@progis.de> - Jeff Law <law@cygnus.com> - Richard Kenner <kenner@vlsi1.ultra.nyu.edu> +Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) - * alpha/vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case. - (DIVDI3_LIBCALL, UDIVSI3_LIBCALL, UDIVDI3_LIBVALL): Likewise. - (MODSI3_LIBCALL, MODDI3_LIBCALL): Likewise. - (UMODSI3_LIBCALL, UMODDI3_LIBCALL): Likewise. - * alpha/alpha.md (arg_home): Likewise. + * rs6000.c (output_epilogue): Handle Chill. - * alpha/alpha.c (vmskrunch): Delete - * alpha/vms.h (ENCODE_SECTION_INFO, ASM_DECLARE_FUNCTION_NAME): Delete. - * alpha.c (output_prolog, VMS): Use alloca for entry_label and don't - truncate to 64 characters. + * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - * make-l2.com: Support openVMS/Alpha. + * combine.c (make_extraction): If no mode is specified for + an operand of insv, extv, or extzv, default it to word_mode. + (simplify_comparison): Similarly. + * expmed.c (store_bit_field): Similarly. + (extract_bit_field): Similarly. + * function.c (fixup_var_regs_1): Similarly. + * recog.c (validate_replace_rtx_1): Similarly. + * mips.md (extv, extzv, insv expanders): Default modes for most + operands. Handle TARGET_64BIT. + (movdi_uld, movdi_usd): New patterns. - * vmsconfig.com: Fix to work on openVMS/Alpha and openVMS/VAX. + * pa.c (emit_move_sequence): Do not replace a pseudo with its + equivalent memory location unless we have been provided a scratch + register. Similarly do not call find_replacement unless a + scratch register has been provided. -Sun Oct 19 19:00:35 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Tue Sep 15 19:23:01 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * longlong.h (count_leading_zeros): Add missing casts to USItype. + * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, + return FLOAT_REGS. -Sun Oct 19 18:44:06 1997 Jeffrey A Law (law@cygnus.com) +Tue Sep 15 19:09:06 1998 Richard Henderson <rth@cygnus.com> - * i386/bsd386.h (ASM_COMMENT_START): Define. + * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill. + (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill. + (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill. + (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New. + * c-decl.c (init_decl_processing): Update accordingly. + * expr.c (expand_builtin): Likewise. -Sat Oct 18 13:47:15 1997 Jason Merrill <jason@yorick.cygnus.com> + * rtl.h (global_rtl): Add cfa entry. + (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New. + (LAST_VIRTUAL_REGISTER): Update. + * emit-rtl.c (global_rtl): Add cfa entry. + (init_emit): Initialize it. + * function.c (cfa_offset): New. + (instantiate_virtual_regs): Initialize it. + (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx. + (expand_function_end): Call expand_eh_return. + * tm.texi (ARG_POINTER_CFA_OFFSET): New. + + * except.c (current_function_eh_stub_label): Kill. + (current_function_eh_old_stub_label): Likwise; update all references. + (expand_builtin_set_return_addr_reg): Kill. + (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill. + (expand_builtin_set_eh_regs): Kill. + (eh_regs): Produce a third reg for the actual handler address. + (eh_return_context, eh_return_stack_adjust): New. + (eh_return_handler, eh_return_stub_label): New. + (init_eh_for_function): Initialize them. + (expand_builtin_eh_return, expand_eh_return): New. + * except.h: Update prototypes. + * flow.c (find_basic_blocks_1): Update references to the stub label. + * function.h (struct function): Kill stub label elements. + + * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the + register number is one that would be in the previous window. + Provide a dummy definition for non-windowed targets. + (get_reg_addr): New function. + (get_reg, put_reg, copy_reg): Use it. + (__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub + generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa. + + * alpha.c (alpha_eh_epilogue_sp_ofs): New. + (alpha_init_expanders): Initialize it. + (alpha_expand_epilogue): Use it. + * alpha.h: Declare it. + * alpha.md (eh_epilogue): New. + + * m68h.h (ARG_POINTER_CFA_OFFSET): New. + * sparc.h (ARG_POINTER_CFA_OFFSET): New. + +Tue Sep 15 19:31:58 1998 Michael Meissner <meissner@cygnus.com> + + * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant + flag bit mask. + +Tue Sep 15 14:10:54 1998 Andrew MacLeod <amacleod@cygnus.com> + + * except.h (struct eh_entry): Add false_label field. + (end_catch_handler): Add prototype. + * except.c (push_eh_entry): Set false_label field to NULL_RTX. + (start_catch_handler): When using old style exceptions, issue + runtime typematch code before continuing with the handler. + (end_catch_handler): New function, generates label after handler + if needed by older style exceptions. + (expand_start_all_catch): No need to check for new style exceptions. + (output_exception_table_entry): Only output the first handler label + for old style exceptions. + * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching + mechanism into one function, if a runtime matcher is provided. + +Tue Sep 15 13:53:59 1998 Andrew MacLeod <amacleod@cygnus.com> + + * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. + +Tue Sep 15 09:59:01 1998 Mark Mitchell <mark@markmitchell.com> + + * integrate.c (copy_decl_list): Fix typo. + +Tue Sep 15 04:18:52 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length + attribute. + +Mon Sep 14 14:02:53 1998 Jeff Law (law@cygnus.com) - * tree.c (restore_tree_status): Also free up temporary storage - when we finish a toplevel function. - (dump_tree_statistics): Print stats for backend obstacks. + * version.c: Bump for snapshot. -Sat Oct 18 12:47:31 1997 Doug Evans <dje@canuck.cygnus.com> +Mon Sep 14 10:33:56 1998 Jeff Law (law@cygnus.com) - * expr.c (use_group_regs): Don't call use_reg for MEMs. + * version.c: Bump for snapshot. -Sat Oct 18 09:49:46 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (__throw): Don't copy the return address. - * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. - - * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). - * toplev.c (main): Initialize exceptions_via_longjmp. - - * tree.c: Add extra_inline_obstacks. - (save_tree_status): Use it. - (restore_tree_status): If this is a toplevel inline obstack and we - didn't want to save anything on it, recycle it. - (print_inline_obstack_statistics): New fn. - * function.c (pop_function_context_from): Pass context to - restore_tree_status. - * obstack.h (obstack_empty_p): New macro. - -Sat Oct 18 00:43:59 1997 Jeffrey A Law (law@cygnus.com) - - * i386/freebsd.h (ASM_COMMENT_START): Fix. - -Fri Oct 17 23:48:52 1997 Jim Wilson (wilson@cygnus.com) - - * v850.c (ep_memory_offset): New function. - (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. - - * v850.h (CONST_OK_FOR_*): Add and correct comments. - (CONSTANT_ADDRESS_P): Add comment. - (EXTRA_CONSTRAINT): Define 'U'. - * v850.md: Add comments on bit field instructions. - (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. - (lshrsi3): Use N not J constraint. - - * v850.md (v850_tst1+1): New define_split for tst1 instruction. - - * v850.c (reg_or_0_operand): Call register_operand. - (reg_or_int5_operand): Likewise. - * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. - (TARGET_SWITCHES): Add "big-switch". - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, - ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Comment out. - (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. - * v850.md (cmpsi): Delete compare mode. - (casesi): New pattern. - - * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. - * v850.md (ashlsi3): Use SImode not QImode for shift count. - (lshrsi3): Likewise. - - * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete - unreachable switch statement after 'b' support. Remove "b" from - strings for 'b' support. - * v850.md (branch_normal, branch_invert): Change %b to b%b. - -Fri Oct 17 23:33:20 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an - empty line if @inhibit_libc@ is empty. - -Fri Oct 17 23:24:40 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h: Let ELF use dwarf2 unwinding. COFF uses sjlj. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - (DWARF2_UNWIND_INFO): Let this track object file format. - (EXTRA_SECTIONS): Add in_eh. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - -Fri Oct 17 17:13:42 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc/sparc.h (FUNCTION_PROFILER): Fix format string when - TARGET_MEDANY. - * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. - (output_double_int): Output DI mode values correctly when - HOST_BITS_PER_WIDE_INT is 64. - (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use - fmovd so it works if a quad float ends up in one of the upper 32 - float regs. - * sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns - necessary for PIC support on sparc64. - -Fri Oct 17 13:39:56 1997 Doug Evans <dje@canuck.cygnus.com> - - * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. - * sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64. - (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. - (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. - (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. - (SPARC_FP_ARG_FIRST): New macro. - (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. - (NPARM_REGS): There are 32 fp argument registers now. - (FUNCTION_ARG_REGNO_P): Likewise. - (FIRST_PARM_OFFSET): Update to new v9 abi. - (REG_PARM_STACK_SPACE): Define for arch64. - (enum sparc_arg_class): Delete. - (sparc_arg_count,sparc_n_named_args): Delete. - (struct sparc_args): Redefine and use for arch32 as well as arch64. - (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. - (FUNCTION_ARG_ADVANCE): Rewrite. - (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. - (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. - (FUNCTION_ARG_CALLEE_COPIES): Delete. - (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. - (STRICT_ARGUMENT_NAMING): Define. - (doublemove_string): Declare. - * sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete. - (single_move_string): Use GEN_INT, and HOST_WIDE_INT. - (doublemove_string): New function. - (output_move_quad): Clean up some of the arch64 support. - (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. - Don't add 8 bytes of reserved space if arch64. - (sparc_builtin_saveregs): Combine arch32/arch64 versions. - (init_cumulative_args): New function. - (function_arg_slotno): New static function. - (function_arg,function_arg_partial_nregs): New functions. - (function_arg_{pass_by_reference,advance}): New functions. - (function_arg_padding): New function. - * ginclude/va-sparc.h: Rewrite v9 support. - -Fri Oct 17 12:29:48 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P - for hard regs to determine base and index registers. - - * reload.c (debug_reload_to_stream): New function. Specify stream - into which to write debug info. - (debug_reload): Modify to call debug_reload_to_stream with stderr. - -Thu Oct 16 15:07:51 1997 Richard Henderson <rth@cygnus.com> - - * combine.c (can_combine_p): Don't combine with an asm whose - output is a hard register. - -Thu Oct 16 15:43:26 1997 Mike Stump (mrs@wrs.com) - - * c-decl.c (start_struct): Ensure that structs with forward - declarations are in fact packed when -fpack-struct is given. - - * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - we are packing a structure. This allows a structure with only - bytes to be aligned on a byte boundary and have no padding on a - m68k. - -Thu Oct 16 15:17:54 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. - -Thu Oct 16 11:20:30 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_return_addr_rtx): New variable. - (alpha_save_machine_status): New; save it. - (alpha_restore_machine_status): New; restore it. - (alpha_init_expanders): New; clear it. - (alpha_return_addr): New; set it. - (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live - is overly conservative, so search the insns explicitly. - (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed. - (alpha_sa_size [VMS && !VMS]): Likewise. - * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. - (INIT_EXPANDERS): New definition. - - * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file. - (output_prolog [!VMS]): Use them. - - * alpha.c (output_prolog [!VMS]): Move gp detection to ... - (alpha_does_function_need_gp): ... a new function. Refine the - CALL_INSN test to just TYPE_JSR. - * alpha.md (most call insns): Fix some jsr/ibr type transpositions. - -Thu Oct 16 09:36:47 1997 Jeffrey A Law (law@cygnus.com) +Mon Sep 14 09:51:05 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Wed Oct 15 21:38:18 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> +Sun Sep 13 22:10:18 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * invoke.texi (C Dialect Options): Put back missing @end itemize. - * pa.c (move_operand): Respect -mdisable-indexing. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. +Mon Sep 14 02:33:46 1998 Alexandre Oliva <oliva@dcc.unicamp.br> -Wed Oct 15 21:34:45 1997 David Edelsohn <edelsohn@mhpcc.edu> + * configure.in: Remove usage of `!' to negate the result of a + command; some common shells do not support it. - * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for - PPC601. - (umulsidi3,umulsi3_highpart): Ditto. - (smulsi3_highpart_no_mq): Add !TARGET_POWER. +Sun Sep 13 19:17:35 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Wed Oct 15 18:21:46 1997 Richard Henderson <rth@cygnus.com> + * configure.in: In sparc9-sol2 config, use 'if test' not + brackets. + * configure: Rebuilt. - * alpha.c (final_prescan_insn): Gut, remove and transform to ... - (alpha_handle_trap_shadows): ... a new function. Handle the entire - function in one go. Emit RTL for trapb, instead of printf directly. - (alpha_reorg): New function. Call alpha_handle_trap_shadows. - (trap_pending): Kill global variable. - (output_epilog): Don't call final_prescan_insn. - (struct shadow_summary): Elide $31 and $f31; now it fits in a word. - * alpha.h (FINAL_PRESCAN_INSN): Remove. - (MACHINE_DEPENENT_REORG): Define. - * alpha.md (jsr patterns with trapb): Stupid and useless. Kill. - (trapb): New insn. + * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to + CM_MEDANY. + (CPP_CPU_SPEC): Do not define _LP64, header files do this. + (CPP_CPU_DEFAULT_SPEC): Likewise. + * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right + for arch64 libfuncs. -Wed Oct 15 18:16:05 1997 Richard Henderson <rth@cygnus.com> + * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode + for operand zero. - Tune Haifa scheduler for Alpha: - * alpha.h (ISSUE_RATE): Define. - * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply - EV4 adjustments to EV5. - * alpha.md: Remove all scaling from function unit delays. Rework - EV5 function units to match the CPU. - (umuldi3_highpart): EV5 added the IMULH insn class. +Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Wed Oct 15 17:42:41 1997 Jeffrey A Law (law@cygnus.com) + * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. - * pa.c (following_call): Fail if the CALL_INSN is an indirect - call. + * collect2.c: Don't declare `sys_siglist' here. + (my_strsignal): Prototype and define new function. Use it in + place of `sys_siglist' hacks. -Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> + * mips_tfile.c: Likewise. - * cplus-dem.c (demangle_signature): Don't look for return types on - constructors. Handle member template constructors. + * configure.in (AC_CHECK_FUNCS): Check for strsignal. + (GCC_NEED_DECLARATIONS): Likewise. -Tue Oct 14 11:30:29 1997 Jason Merrill <jason@yorick.cygnus.com> + * system.h (strsignal): Prototype it, if necessary. + (sys_siglist): Declare it, if necessary. - * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. - * tree.h: Declare them. +Sun Sep 13 04:37:28 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Fri Oct 10 13:46:56 1997 Doug Evans <dje@canuck.cygnus.com> + * loop.c (move_movables): While removing insn sequences, preserve + the next pointer of the most recently deleted insn when we skip + over a NOTE. - * configure.in: Handle --with-newlib. - * Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@. +Sun Sep 13 08:13:39 1998 Ben Elliston <bje@cygnus.com> - * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. + * objc/config-lang.in: Do not output the name of the selected + thread file when building the front-end. The Makefile for the + runtime library will do this. -Wed Oct 8 14:37:44 1997 Jeffrey A Law (law@cygnus.com) + * objc/Make-lang.in: Do not build the runtime library or install + the Objective C header files. The Makefile for the runtime + library will do this. - * config/ptx4.h: Fix typo. + * objc/Makefile.in (all.indirect): Only build the front-end. + (compiler): Rename to `frontend'. + (obj-runtime): Remove target. + (copy-headers): Likewise. + (clean): No need to remove `libobjc.a' any longer. -Wed Oct 8 08:57:20 1997 Jeffrey A Law (law@cygnus.com) +Sat Sep 12 11:37:19 1998 Michael Meissner <meissner@cygnus.com> - * version.c: Bump for snapshot. + * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines + supported with -mcpu=xxx. -Tue Oct 7 16:27:34 1997 Manfred Hollstein <manfred@s-direktnet.de> +Fri Sep 11 23:55:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * aclocal.m4: Substitute INSTALL. - * configure: Re-built. + * flow.c (mark_set_1): Recognize multi-register structure return + values in CALL insns. + (mark_used_regs): Likewise. + (count_reg_sets_1): Likewise. + (count_reg_references): Likewise. + * rtlanal.c (note_stores): Likewise. + (reg_overlap_mentioned_p): Likewise. + * haifa-sched.c (check_live_1): Likewise. + (update_live_1): Likewise. + (sched_analyze_1): Likewise. + (sched_note_set): Likewise. + (birthing_insn_p): Likewise. + (attach_deaths): Likewise. -Tue Oct 7 15:37:35 1997 Jeffrey A Law (law@cygnus.com) + * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. - * integrate.c (save_for_inline_copying): Avoid undefined pointer - operations. - (expand_inline_function): Likewise. +Fri Sep 11 22:57:55 1998 Eric Dumazet <dumazet@cosmosbay.com> - * dwarf2out.c (output_call_frame_info): Reinstate last change - using flag_debug_asm check instead of flag_verbose_asm. + * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. -Tue Oct 7 12:57:26 1997 Jim Wilson <wilson@cygnus.com> +Thu Sep 10 22:02:04 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * dwarf2out.c (output_call_frame_info): Remove last change. + * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. -1997-10-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +Thu Sep 10 21:19:10 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - * frame.c (__frame_state_for): Execute the FDE insns until the - current pc value is strictly bigger than the target pc value. + * configure.in: Add check for GAS subsection -1 support. + * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add. + * configure config.in: Rebuilt. + * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use + SImode is subsection -1 works, else use DImode. + (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if + subsection -1 works. + * config/sparc/sparc.c (sparc_output_addr_vec, + sparc_output_addr_diff_vec): Use them if defined. -Tue Oct 7 11:00:42 1997 Jason Merrill <jason@yorick.cygnus.com> +Thu Sep 10 10:46:01 1998 Mark Mitchell <mark@markmitchell.com> - * regclass.c (init_reg_modes): If we can't find a mode for the - register, use the previous one. + * 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. -Tue Oct 7 10:55:34 1997 Richard Henderson <rth@cygnus.com> +Thu Sep 10 08:01:31 1998 Anthony Green <green@cygnus.com> - * haifa-sched.c (print_block_visualization): Call fprintf directly, - don't sprintf through an alloca'ed buffer. + * config/rs6000/rs6000.c (output_epilog): Add Java support. -Tue Oct 7 10:52:29 1997 Thomas Koenig (ig25@rz.uni-karlsruhe.de) +Thu Sep 10 14:48:59 1998 Martin von Löwis <loewis@informatik.hu-berlin.de> - * reload.c (decompose): Always initialize val.base. + * invoke.texi (C++ Dialect Options): Document -fhonor-std. -Tue Oct 7 10:19:26 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) +Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) - * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment - instead of aborting. - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable to let GNU as accept the generated comments. + * reg-stack.c (straighten_stack): Do nothing if the virtual stack is + empty or has a single entry. -Tue Oct 7 11:41:21 1997 Michael Meissner <meissner@cygnus.com> + * toplev.c (rest_of_compilation): Open up the dump file for reg-stack + before calling reg_to_stack. - * tree.h (get_file_function_name): Add declaration. - * dwarf2out.c (output_call_frame_info): No need to cast - get_file_function_name call anymore. - * profile.c (toplevel): Remove get_file_function_name - declaration. - * c-lang.c (finish_file): Ditto. +Thu Sep 10 00:03:34 1998 Richard Henderson <rth@cygnus.com> -Tue Oct 7 10:01:45 1997 Chip Salzenberg <chip@rio.atlantic.net> + * alpha.c (alphaev5_insn_pipe): Abort on default case. + (alphaev5_next_group): Swallow CLOBBERs and USEs. - * Makefile.in (program_transform_name): Let autoconf substitute - the correct value. + * c-tree.h (warn_long_long): Declare it. -Tue Oct 7 09:54:35 1997 Jeffrey A Law (law@cygnus.com) +Wed Sep 9 23:31:36 1998 (Stephen L Moshier) <moshier@world.std.com> - * haifa-sched.c (schedule_block): If the first real insn in a - block has any special notes attached to it, remove them. + * emit-rtl.c (gen_lowpart_common): Disable optimization of + initialized float-int union if the value is a NaN. -Tue Oct 7 09:48:51 1997 Richard Henderson <rth@cygnus.com> +Wed Sep 9 23:00:48 1998 Nathan Sidwell <nathan@acm.org> - * alpha.h (FLOAT_STORE_FLAG_VALUE): It's 2.0 not 0.5. + * c-lex.c (real_yylex): Don't warn about long long constants if + we're allowing long long -Mon Oct 6 12:47:32 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) +Wed Sep 9 21:58:41 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - * m88k.c (m88k_begin_prologue): Remove superfluous backslash. + * except.h (current_function_eh_stub_label): Declare. + (current_function_eh_old_stub_label): Declare. + * function.h (struct function): New members eh_stub_label and + eh_old_stub_label. + * except.c (current_function_eh_stub_label): New variable. + (current_function_eh_old_stub_label): New variable. + (init_eh_for_function): Clear them. + (save_eh_status): Save them. + (restore_eh_status): Restore them. + (expand_builtin_eh_stub): Set current_function_eh_stub_label. + (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label. + * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't + make an edge from the block that contains it to the block starting + with the label if this label is one of the eh stub labels. + If eh stub labels exist, show they are reachable from the last block + in the function. -Mon Oct 6 12:04:24 1997 Jeffrey A Law (law@cygnus.com) + * reload1.c (reload): Break out several subroutines and make some + variables global. + (calculate_needs_all_insns): New function, broken out of reload. + (calculate_needs): Likewise. + (find_reload_regs): Likewise. + (find_group): Likewise. + (find_tworeg_group): Likewise. + (something_needs_reloads): New global variable, formerly in reload. + (something_needs_elimination): Likewise. + (caller_save_spill_class): Likewise. + (caller_save_group_size): Likewise. + (max_needs): Likewise. + (group_size): Likewise. + (max_groups): Likewise. + (max_nongroups): Likewise. + (group_mode): Likewise. + (max_needs_insn): Likewise. + (max_groups_insn): Likewise. + (max_nongroups_insn): Likewise. + (failure): Likewise. - * Makefile.in (check-g77): New test target. - (CHECK-TARGETS): Add check-g77. + * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. -Fri Oct 3 11:56:36 1997 Jason Merrill <jason@yorick.cygnus.com> +Wed Sep 9 13:14:41 1998 Richard Henderson <rth@cygnus.com> - * toplev.c (rest_of_compilation): Defer all non-nested inlines. + * loop.c (load_mems): Copy rtx for output mem. -Fri Oct 3 15:49:27 1997 Michael Meissner <meissner@cygnus.com> +Wed Sep 9 15:16:58 1998 Gavin Romig-Koch <gavin@cygnus.com> - * flow.c (print_rtl_with_bb): Cast alloca return value for - in_bb_p. + * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for + mips1 or mips2 either. -Thu Oct 2 21:15:03 1997 Richard Henderson <rth@cygnus.com> +Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) - * i386.h (RETURN_ADDR_RTX): New definition that works for - __builtin_return_address(0) and -fomit-frame-pointer. + * pa.c (pa_reorg): New marking scheme for jumps inside switch + tables. + (pa_adjust_insn_length): Update to work with new marking scheme + for jumps inside switch tables. + * pa.md (switch_jump): Remove pattern. + (jump): Handle jumps inside jump tables. -Wed Oct 1 13:43:53 1997 Jim Wilson <wilson@cygnus.com> + * Makefile.in (profile.o): Depend on insn-config.h - Bring over from FSF. - Tue Aug 5 16:10:45 1997 Jason Merrill <jason@yorick.cygnus.com> +Wed Sep 9 09:36:51 1998 Jim Wilson <wilson@cygnus.com> - * mips.c (function_arg): Handle passing a struct - containing a double in a DFmode register without the PARALLEL. + * iris6.h (DWARF2_UNWIND_INFO): Undef. -Wed Oct 1 11:13:25 1997 Ian Lance Taylor <ian@cygnus.com> +Wed Sep 9 01:32:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * pexecute.c: Use spawn if __CYGWIN32__. + Add preliminary native sparcv9 Solaris support. + * configure.in: Recognize sparv9-*-solaris2* + * configure: Rebuilt. + * config.sub: Recognize sparcv9 just like sparc64. + * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm + config/sparc/sol2-cn.asm: Macroize so it can be shared between + 32-bit and 64-bit Solaris systems. + * config/sparc/t-sol2: Assemble those with cpp. + * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9. + (*TF*_LIBCALL): If ARCH64 use V9 names. + * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files. + +Wed Sep 9 01:07:30 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> + + * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation. + (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and + not doing pic. + (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not + Pmode. + * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0 + to Pmode if CASE_VECTOR_MODE is something else. + +Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) + + * prefix.c (update_path): Correctly handle cases where PATH is + a substring of the builtin prefix, but specifies a different + directory location. + +Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson <hp@axis.se> + + * expr.c: Corrected comment about what MOVE_RATIO does. + * config/alpha/alpha.h: Likewise. + * config/1750a/1750a.h: Likewise. + * config/clipper/clipper.h: Likewise. + * config/i386/i386.h: Likewise. + +Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (m68k-next-nextstep3*): Use collect2. + Similarly for x86 NeXT configurations. + * configure: Rebuilt. - * pexecute.c: Include "config.h" first, as per autoconf manual - (from Paul Eggert <eggert@twinsun.com>). +Tue Sep 8 01:38:57 1998 Nathan Sidwell <nathan@acm.org> -Wed Oct 1 01:44:36 1997 Philippe De Muyter <phdm@info.ucl.ac.be> + * configure.in: Don't assume srcdir is .../gcc. + * configure: Rebuilt. - * m68k/x-mot3300 (XCFLAGS): Disable as's long/short jump - optimisation for f/expr.o and f/stb.o. +Sat Sep 5 16:34:34 1998 John Wehle (john@feith.com) -Tue Sep 30 23:48:57 1997 Jeffrey A Law (law@cygnus.com) + * global.c: Update comments. + (global_alloc): Assign allocation-numbers + even for registers allocated by local_alloc in case + they are later spilled and retry_global_alloc is called. + (mark_reg_store, mark_reg_clobber, + mark_reg_conflicts, mark_reg_death): Always record a + conflict with a pseudo register even if it has been + assigned to a hard register. + (dump_conflicts): Don't list pseudo registers already assigned to + a hard register as needing to be allocated, but do list their + conflicts. + * local-alloc.c: Update comment. - * cse.c (this_insn_cc0_mode): Initialize. +Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) -Tue Sep 30 23:09:40 1997 Thomas Koenig <ig25@mvmap66.ciw.uni-karlsruhe.de> + * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. + * configure: Rebuilt. - * cccp.c (expand_to_temp_buffer): Initialize all members of obuf. +Mon Sep 7 22:41:46 1998 Michael Meissner <meissner@cygnus.com> - * haifa-sched.c (get_block_head_tail): Remove unneeded initialization. + * rs6000.c (rs6000_override_options): Fix name for ec603e, to add + missing 'c'. + * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx + for all targets that set -msoft-float. -Tue Sep 30 23:06:43 1997 Richard Henderson <rth@cygnus.com> +Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since - that pair will dual-issue on the 21164 and plus+beq won't. - (bne): Likewise for cmpeq+beq. + * toplev.c (print_switch_values): Make static to match prototype. -Tue Sep 30 16:07:58 1997 Jim Wilson <wilson@cygnus.com> +Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) - * except.c (find_exception_handler_labels): Correct argument to free. + * configure.in: If we are unable to find the "gnatbind" program, + then do not configure the ada subdir. + * configure: Rebuilt. -Tue Sep 30 11:00:00 1997 Brendan Kehoe <brendan@lisa.cygnus.com> +Sun Sep 6 14:03:58 1998 Jeff Law (law@cygnus.com) - * except.c (find_exception_handler_labels): Free LABELS when we're - done. + * version.c: Bump for snapshot. -Mon Sep 29 14:04:35 1997 Jeffrey A Law (law@cygnus.com) +Sun Sep 6 13:28:07 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Mon Sep 29 10:51:53 1997 Jason Merrill <jason@yorick.cygnus.com> +Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (toplev.o): Depend on $(EXPR_H). + (insn-extract.o, insn-attrtab.o): Depend on toplev.h. + + * gansidecl.h: Define ATTRIBUTE_NORETURN. + + * genattrtab.c: Have insn-attrtab.c include toplev.h. + + * genextract.c: Have insn-extract.c include toplev.h. + + * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. + + * toplev.c: Include expr.h. + (really_sorry, fancy_abort): Remove prototypes. + (set_target_switch): Add argument in prototype. + (vfatal): Mark prototype with ATTRIBUTE_NORETURN. + (v_really_sorry): Likewise. + (print_version, print_single_switch, print_switch_values): Make + static and add prototype arguments. + (decl_printable_name): Add prototype arguments. + (lang_expand_expr_t): New typedef. + (lang_expand_expr): Declare as a lang_expand_expr_t. + (incomplete_decl_finalize_hook): Add prototype argument. + (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED. + (botch): Likewise for variable `s'. + (rest_of_type_compilation): Mark variables `type' and `toplev' + with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO, + XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined. + (display_help): Make variable `i' an `unsigned long'. + (main): Remove unused parameter `envp'. + Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'. + Cast -1 when comparing it with a `size_t'. + + * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark + prototype with ATTRIBUTE_NORETURN. + (fatal_insn_not_found, fatal_insn, really_sorry, + push_float_handler, pop_float_handler): Add prototypes. + (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN. + (do_abort, botch): Add prototypes. + +Sat Sep 6 12:05:18 1998 John Carr <jfc@mit.edu> + + * final.c (final): If a label is reached only from a single jump, + call NOTICE_UPDATE_CC on the jump and its predecessor before + emitting the insn after the label. + + * i386.h: Add AMD K6 support. + Change TARGET_* macros to use table lookup. + (INITIALIZE_TRAMPOLINE): Improve trampoline code. + (ADJUST_COST): Change definition to call function in i386.c. + (ISSUE_RATE): Define as 2 for anything newer than an 80486. + * i386.c: Add AMD K6 support. + Add constants for feature tests used by TARGET_* macros. + (split_di): If before reload, call gen_lowpart and gen_highpart. + (x86_adjust_cost): New function. + (put_jump_code): New function. + (print_operand): New codes 'D' and 'd'. + * i386.md: New insn types. New insn attribute "memory". + Redefine scheduling parameters to use new types and add AMD K6 + support. Explicitly set type of most insns. + (move insns): K6 prefers movl $0,reg to xorl reg,reg. Pentium + Pro and K6 prefer movl $1,reg to incl reg. + (adddi3, subdi3): Set cc_status. + (DImode shift patterns): Change label counters from HOST_WIDE_INT + to int; x86 can't have more than 2^31 DImode shifts per file. + (setcc): Combine all setcc patterns. Allow writing memory. + Combine all jump patterns using match_operator. + (*bzero): Name pattern. Emit multiple stos instructions when that + is faster than rep stos. + (xordi3, anddi3, iordi3): Simplify DImode logical patterns and + add define_split. + +Sun Sep 6 11:17:20 1998 Dave Love <d.love@dl.ac.uk> + + * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 + linking. + +Sat Sep 5 22:05:25 1998 Richard Henderson <rth@cygnus.com> - * flow.c (find_basic_blocks): Mark calls as potentially jumping - to the EH labels. + * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, + not whatever we're generating now. -Mon Sep 29 09:58:06 1997 Jeffrey A Law (law@cygnus.com) + * alpha.c (set_frame_related_p, FRP): New. + (alpha_expand_prologue): Mark frame related insns. + (alpha_expand_epilogue): Likewise, but with a null FRP. + * alpha.h (INCOMING_RETURN_ADDR_RTX): New. + * alpha.md (exception_receiver): New. + * alpha/crtbegin.asm (.eh_frame): New beginning. + (__do_frame_setup, __do_frame_takedown): New. + * alpha/crtend.asm (.eh_frame): New ending. + * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define. + (ASM_SPEC): Don't emit both dwarf2 and mdebug. + (ASM_FILE_START): Don't emit .file for dwarf2. - * configure.in: Substitute for "install" too. - * configure: Rebuilt. + * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR. + * rtl.c (reg_note_name): Likewise. + * rtl.texi (REG_NOTES): Likewise. + * dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store + without an offset. -Mon Sep 29 00:38:42 1997 Aaron Jackson <jackson@negril.msrce.howard.edu> +Sat Sep 5 14:47:17 1998 Richard Henderson <rth@cygnus.com> - * Makefile.in (bootstrap-lean, compare-lean): New targets. + * 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. -Mon Sep 29 00:18:16 1997 Richard Henderson (rth@cygnus.com) +Sat Sep 5 14:23:31 1998 Torbjorn Granlund <tege@matematik.su.se> - * alias.c (base_alias_check): Two symbols can conflict if they - are accessed via AND. - (memrefs_conflict_p): Likewise. + * m68k.md (zero_extendsidi2): Fix typo. - * alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn - after flushing argument registers to the stack. +Sat Sep 5 13:40:24 1998 Krister Walfridsson <cato@df.lth.se> - * Makefile.in (mostlyclean): Remove .regmove files. + * configure.in: Removed references to the removed file. + * config/xm-netbsd.h: Use ${cpu_type}/xm-netbsd.h for + arm*-*-netbsd* and ns32k-*-netbsd*. + * config/i386/xm-netbsd.h: Removed unnecessary file. + * config/m68k/xm-netbsd.h: Likewise. + * config/sparc/xm-netbsd.h: Likewise. + * config/mips/xm-netbsd.h: Likewise. -Sun Sep 28 18:59:58 1997 Jason Merrill <jason@yorick.cygnus.com> +Sat Aug 29 13:32:58 1998 Mumit Khan <khan@xraylith.wisc.edu> - * libgcc2.c (__throw): Fix thinko. + * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. + (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. -Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net> + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for + for exact section attributions. - * cplus-dem.c (demangle_template): Add new parameter. Handle new - template-function mangling. - (consume_count_with_underscores): New function. - (demangle_signature): Handle new name-mangling scheme. + * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc + runtime. + * i386/crtdll.h (CPP_PREDEFINES): Define. -Sun Sep 28 01:55:04 1997 Philippe De Muyter <phdm@info.ucl.ac.be> +Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) - * flow.c (print_rtl_with_bb): Cast alloca return values for variables - start and end. + * m68k.md (5200 movqi): Do not allow byte sized memory references + using address regs. + * m68k.c (output_move_qimode): Do not use byte sized operations on + address registers. -Sun Sep 28 01:05:16 1997 Jeffrey A Law (law@cygnus.com) + * Makefile.in (pexecute.o): Use pexecute.c from libiberty. Provide + explicit rules for building. Similarly for alloca, vfprintf, + choose-temp and mkstemp, getopt, getopt1, and obstack. + (INCLUDES): Add $(srcdir)/../include. + * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete. + * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise. - * frame.c: Remove last change. - * dwarf2.h: Remove last change. - * tree.h: Add declarations of DWARF2 unwind info support - functions. +Fri Sep 4 11:57:50 1998 Tom Tromey <tromey@cygnus.com> -Sat Sep 27 11:02:38 1997 Jason Merrill <jason@yorick.cygnus.com> + * gcc.c (do_spec_1): [case 'o'] Account for + lang_specific_extra_outfiles. + (main): Correctly clear all slots in outfiles for + lang_specific_extra_outfiles. Set input_file_number before + calling lang_specific_pre_link. - * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. - * tree.h (built_in_function): Likewise. - * expr.c (expand_builtin): Likewise. - * except.h: Likewise. - * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. - * libgcc2.c (copy_reg): New fn. - (__throw): Use it. +Fri Sep 4 10:37:07 1998 Jim Wilson <wilson@cygnus.com> -Fri Sep 26 08:54:59 1997 Paul Eggert <eggert@twinsun.com> + * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. - * c-typeck.c (build_binary_op): Warn about comparing signed vs - unsigned if -W is specified and -Wno-sign-compare is not. - * c-decl.c (warn_sign_compare): Initialize to -1. - (c_decode_option): -Wall no longer implies -Wsign-compare. +Fri Sep 4 02:01:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Fri Sep 26 09:00:13 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * config/sparc/sparc.c (output_double_int): In all V9 symbolic + cases, use xword. + (sparc_output_deferred_case_vectors): If no work to do, return. + Fix thinko in Sept 1 change. - * frame.c: Include gansidecl.h for PROTO. - * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is - defined. Don't declare dwarf2out_cfi_label here. - * dwarf2.h: Add declarations of DWARF2 unwind info support - functions. - * m68k.c: Include dwarf2.h. - (output_function_prologue): Add dwarf2 support. - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. - (INCOMING_FRAME_SP_OFFSET): Likewise. +1998-09-03 SL Baur <steve@altair.xemacs.org> - * integrate.c (expand_inline_function): Make sure there is at - least one insn that can be used as an insertion point. + * Makefile.in: Add semicolon in BISON definition for portability. -Wed Sep 24 21:34:06 1997 Jason Merrill <jason@yorick.cygnus.com> +Thu Sep 3 13:34:41 1998 Toon Moene <toon@moene.indiv.nluug.nl> - * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ + * config/nextstep.c (handle_pragma): Correct name of third + argument. -Wed Sep 24 22:05:30 1997 Jeffrey A Law (law@cygnus.com) +Tue Sep 1 11:30:33 1998 Nick Clifton <nickc@cygnus.com> - * version.c: Bump for snapshot. + * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17). + * config/m32r/m32r.h: Make register 17 be fixed. + * config/m32r/m32r.c: Use SImode for cc operations. -Wed Sep 24 17:36:23 1997 Doug Evans <dje@canuck.cygnus.com> - - Bring over from FSF. - - Wed Sep 24 19:17:08 1997 Doug Evans <dje@cygnus.com> - - * sparc/sparc.md (get_pc_via_call): Renamed from get_pc_sp32. - (get_pc_via_rdpc): Renamed from get_pc_sp64. - * sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call. - - Wed Sep 24 18:38:22 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. - (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, - -malign-functions=. - (sparc_align_{loops,jumps,funcs}_string): Declare. - (sparc_align_{loops,jumps,funcs}): Declare. - (DEFAULT_SPARC_ALIGN_FUNCS): New macro. - (FUNCTION_BOUNDARY): Use sparc_align_funcs. - (STACK_BIAS): Define. - (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform - test. - (SPARC_SETHI_P): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ASM_OUTPUT_LOOP_ALIGN): Define. - * sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. - (sparc_align_{loops,jumps,funcs}): New globals. - (sparc_override_options): Handle -malign-loops=, -malign-jumps=, - -malign-functions=. - (move_operand): Use SPARC_SETHI_P. - (arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then - perform test. - (arith11_double_operand): Likewise. - (arith10_double_operand): Likewise. - (finalize_pic): Finish sparc64 support. - (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of - 64 bit constants if able. - (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. - (sparc_builtin_saveregs, sparc64 case): Don't save fp regs if - ! TARGET_FPU. - * sparc/sparc.md (*): Use GEN_INT instead of gen_rtx. - (get_pc_sp32): Use for sparc64 as well. - (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. - (sethi_di_sp64_const): Likewise. - (movtf_cc_sp64): Check TARGET_HARD_QUAD. - (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. - (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. +Thu Sep 3 18:17:34 1998 Benjamin Kosnik <bkoz@cygnus.com> - Tue Sep 23 19:02:46 1997 Doug Evans <dje@cygnus.com> + * invoke.texi (Warning Options): Add -Wnon-template-friend + documentation. - * sparc/linux-aout.h (COMMENT_BEGIN): Delete. - * sparc/linux.h (COMMENT_BEGIN): Likewise. - * sparc/linux64.h (COMMENT_BEGIN): Likewise. +Thu Sep 3 18:16:16 1998 Michael Meissner <meissner@cygnus.com> - Tue Sep 23 14:48:18 1997 David S. Miller <davem@tanya.rutgers.edu> + * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. - Add sparc64 linux support. - * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h - to xm_file list on 32-bit sparc-linux. - * sparc/xm-sp64.h: New file. - * sparc/linux64.h: New file. - * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. - Don't include xm-sparc.h. - * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. - * glimits.h (LONG_MAX): Handle sparc64. +Thu Sep 3 18:05:16 1998 David Edelsohn <edelsohn@gnu.org> - Sat Sep 20 03:07:54 1997 Doug Evans <dje@cygnus.com> + * rs6000.md (movsf): Disable explicit secondary-reload-like + functionality if TARGET_POWERPC64. + (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like + functionality. - * sparc/sysv4.h (ASM_COMMENT_START): Delete. - * sparc.h (ASM_COMMENT_START): Define. - * sparc.c (output_function_prologue): Use it. - (sparc_flat_output_function_{epi,pro}logue): Likewise. +Thu Sep 3 11:41:40 1998 Robert Lipe <robertl@dgii.com> - Wed Sep 17 15:04:19 1997 Doug Evans <dje@cygnus.com> - - * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, - use sparc.h's copies. - * sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print - ascii form as well. + * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h + and term.h from fixinc.wrap. - Mon Sep 8 08:45:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> +Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * sparc.c (dwarf2out_cfi_label): Add declaration. - (save_regs, output_function_prologue): Remove cast for it. - (sparc_flat_{save_restore,output_function_prologue): Likewise. - ({save,restore}_regs): No longer inline. + * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is + safe to include both string.h and strings.h together. + (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding + which headers to search for function declarations. Continue to + prefer string.h over strings.h when both are not acceptable. -Tue Sep 23 12:34:51 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * acconfig.h (STRING_WITH_STRINGS): Add stub. - * fold-const.c (make_range): Correctly handle cases of converting - from unsigned to signed type. + * configure.in: Call GCC_HEADER_STRING. -Tue Sep 23 12:34:51 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + * system.h: Test STRING_WITH_STRINGS when deciding which headers + to include. Continue to prefer string.h over strings.h when both + are not acceptable. - * fold-const.c (merge_ranges): Make sure that if one range is subset - of another, it will always be the second range. Correct (+,-) case to - account for this. +Wed Sep 2 23:56:29 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Tue Sep 23 08:32:51 1997 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_end_function): Also do dwarf2 thing if - DWARF2_DEBUGGING_INFO. - (final_start_function): Likewise. - -Tue Sep 23 01:15:50 1997 David S. Miller <davem@tanya.rutgers.edu> - - * expmed.c (expand_divmod): If compute_mode is not the same as - mode, handle the case where convert_modes() causes op1 to no - longer be a CONST_INT. - - * reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED - note holding get_jump_flags() calculation to all JUMP_INSNs. - * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA. - * rtl.c (reg_note_name): Add new note types. - -Tue Sep 23 00:59:54 1997 Jeffrey A Law (law@cygnus.com) - - * rtlanal.c (computed_jump_p): Fix typo in last change. - -Tue Sep 23 00:42:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do + not assume top 32-bits of symbolic addresses are zero if + flag_pic. - * loop.c (indirect_jump_in_function_p): Return 0 - by default. +Thu Sep 3 00:23:21 1998 Richard Henderson <rth@cygnus.com> -Tue Sep 23 00:33:55 1997 Jeffrey A Law (law@cygnus.com) + * ginclude/va-alpha.h: Protect entire second portion of the + file against double inclusion. - * rs6000/xm-rs6000.h: Fix thinko in last change. - * rs6000/xm-sysv4.h: Likewise. +Thu Sep 3 00:37:55 1998 Ovidiu Predescu <ovidiu@aracnet.com> -Mon Sep 22 19:33:53 1997 Jim Wilson <wilson@cygnus.com> + Added support for the Boehm's garbage collector. + * configure.in: Handle --enable-objc-gc. + * configure: Rebuilt. + * Makefile.in (CHECK_TARGETS): Add check-objc. + (check-objc): New rule. + * objc/Make-lang.in: Build a different Objective-C library that + runs with the Boehm's collector. + * objc/encoding.c (objc_round_acc_size_for_types): New function. + * objc/encoding.c: Correctly compute the size of compound types in + the presence of bitfields. Skip the variable name of the type if + any. Added support for long long. + * objc/encoding.h (_C_GCINVISIBLE): New specifier. + (_F_GCINVISIBLE): New mask. + * objc/gc.c: New file. Compute the type memory mask associated with + a class based on the runtime information. + * objc/misc.c: Added the hooks that use the Boehm's collector + allocation functions. + * objc/objc-act.c (build_class_template): Generate a new class + member (gc_object_type) to hold the class' type memory mask. + (build_shared_structure_initializer): Initialize the new member to + NULL. + (encode_complete_bitfield): New function. Generate the new + encoding. + (encode_field_decl): Generate the new encoding only for the GNU + runtime. + * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the + long long types. + (class_get_gc_object_type): New function to mark a pointer instance + variable as a weak pointer. + * objc/objc-features.texi: New file. + * objc/objc.h (gc_object_type): New class member. + * objc/objects.c (class_create_instance): Create a typed memory + object when compiled with Boehm's collector support. + * objc/sendmsg.c (__objc_init_install_dtable): Call + __objc_send_initialize instead of setting the initialize flag. + (__objc_send_initialize): Call __objc_generate_gc_type_description + to generate the class type memory mask. Rewrite the code that + sends the +initialize so that it is called only once (bug report + and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>). + * testsuite/objc: New testsuite for Objective-C type encoding. + * testsuite/lib/objc-torture.exp: New file. + * testsuite/lib/objc.exp: New file. - * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. +Wed Sep 2 14:47:36 1998 Jim Wilson <wilson@cygnus.com> -Mon Sep 22 14:41:00 1997 Jeffrey A Law (law@cygnus.com) + * jump.c (jump_optimize): In if/then/else transformations, add + another call to modified_between_p for the jump insn. - * reg-stack.c (find_blocks): Fix thinko in last change. +Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) -1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * fix-header.c (symlink): Treat like readlink. - * m68k.c (output_function_prologue): Add dwarf2 support. +Wed Sep 2 19:30:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM, - INCOMING_FRAME_SP_OFFSET): New definitions. + * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles + as FT_float. -Mon Sep 22 11:36:42 1997 David S. Miller <davem@tanya.rutgers.edu> +Wed Sep 2 10:06:07 1998 Nick Clifton <nickc@cygnus.com> - * combine.c (try_combine): Use NULL_RTX instead of '0' where - appropriate in calls to gen_rtx(). - * cse.c (cse_main): Likewise. - * emit-rtl.c (gen_label_rtx): Likewise. - * expr.c (init_expr_once): Likewise. - * haifa-sched.c (flush_pending_lists, sched_analyze_insn, - sched_analyze, init_rgn_data_dependences, - compute_block_backward_dependences): Likewise. - * sched.c (schedule_insns): Likewise. - * varasm.c (immed_double_const): Likewise. + * config/nextstep.h: Update HANDLE_PRAGMA macro. + * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. + * config/i960/i960.h: Update HANDLE_PRAGMA macro. - * sparc.h (INCOMING_FRAME_SP_OFFSET): Define to - SPARC_STACK_BIAS for sake of dwarf2 on sparc64. + * config/nextstep.c (handle_pragma): Take three arguments, as per + the new HANDLE_PRAGMA macro specification. + * config/h8300/h8300.c (handle_pragma): Take three arguments, as + per the new HANDLE_PRAGMA macro specification. + * config/i960/i960.c (process_pragma): Take three arguments, as + per the new HANDLE_PRAGMA macro specification. -Mon Sep 22 11:21:33 1997 J. Kean Johnston <jkj@sco.com> +Wed Sep 2 09:25:29 1998 Nick Clifton <nickc@cygnus.com> - * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. - (MULTILIB_DEFAULTS): Define. - (ASM_SPEC, CPP_SPEC): Handle -mcoff. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - (LIBGCC_SPEC): Likewise. - (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. - (SUBTARGET_SWITCHES): Add -mcoff and -melf. - * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. - (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. - (EXTRA_PARTS, TAROUTOPTS): Delete. - (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. - (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. - (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. + * c-lex.c (check_newline): Call HANDLE_PRAGMA before + HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages + if unknown pragmas are encountered. + (handle_sysv_pragma): Interpret return code from + handle_pragma_token (). Return success/failure indication rather + than next unprocessed character. + (pragma_getc): New function: retrieves characters from the + input stream. Defined when HANDLE_PRAGMA is enabled. + (pragma_ungetc): New function: replaces characters back into the + input stream. Defined when HANDLE_PRAGMA is enabled. -Mon Sep 22 02:10:43 1997 Jeffrey A Law (law@cygnus.com) + * c-pragma.c (handle_pragma_token): Return success/failure status + of the parse. - * version.c: Bump for snapshot. + * c-pragma.h: Change prototype of handle_pragma_token(). -Sun Sep 21 17:45:45 1997 Jeffrey A Law (law@cygnus.com) + * varasm.c (handle_pragma_weak): Only create this function if + HANDLE_PRAGMA_WEAK is defined. - * loop.c (loop_number): Delete function. Change all references - to use uid_loop_num array. - * loop.h (loop_number): Delete declaration. - * unroll.c (unroll_loop): Change "loop_number" references to - use uid_loop_num instead. + * c-common,c (decl_attributes): If defined call the expression + contained within the INSERT_ATTRIBUTES macro before adding + attributes to a decl. - * loop.c (loop_unroll_factor): Move outside #ifdef HAIFA - conditional. - (loop_unroll_iter): Remove unused variable and all references. - (loop_optimize): Always allocate and clear space for loop_unroll_factor. - (insert_bct): Fix minor formatting problems. - * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA. - (loop_unroll_iter): Removed unused decl. - * unroll.c (unroll_loop): Remove code to set loop_unroll_iter. - Always record the unrolling factor. + * tm.texi (HANDLE_PRAGMA): Document the new version of + HANDLE_PRAGMA, which takes three arguments. + (INSERT_ATTRIBUTES): Document this new macro. - * cse.c (simplify_relational_operation): Set h0u just like h0s. - Similarly for h1u and h1s. + * LANGUAGES: Document the new version of HANDLE_PRAGMA and the + new INSERT_ATTRIBUTES macro. - * flow.c (jmp_uses_reg_or_mem): Deleted unused function. - (find_basic_blocks): Use computed_jump_p to determine if a - particular JUMP_INSN is a computed jump. - * reg-stack.c (find_blocks): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - * rtlanal.c (jmp_uses_reg_or_mem): New function. - (computed_jump_p): Likewise. - * rtl.h (computed_jump_p): Declare. - * genattrtab.c (pc_rtx): Define and initialize. - * loop.c (loop_optimize): Always determine if the current - function has a computed jump. - (indirect_jump_in_function_p): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. +Wed Sep 2 02:03:23 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * loop.c (fix_bct_param): Delete unused function. - (check_bct_param): Likewise. + * config/sparc/sparc.md (movdf): Only generate special RTL for + LABEL_REFs when PIC. + (move_label_di): Remove. + (movdi_pic_label_ref, movdi_high_pic_label_ref, + movdi_lo_sum_pic_label_ref): New patterns for 64-bit label + references when PIC. + * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT, + ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW, + output an .xword for all 64-bit cases. -Sat Sep 20 16:22:06 1997 Jason Merrill <jason@yorick.cygnus.com> +Tue Sep 1 15:55:17 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * frame.c (__deregister_frame): Check properly for initialized object. + * config/sparc/sparc.c (finalize_pic): Don't output arbitrary + alignment, use FUNCTION_BOUNDARY instead. + (sparc_output_deferred_case_vectors): Likewise. -Fri Sep 19 20:51:03 1997 H.J. Lu (hjl@gnu.ai.mit.edu) +Mon Aug 31 17:25:41 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * alpha/linux.h (HANDLE_SYSV_PRAGMA): Defined. + * config/sparc/sparc.md (movsf_const_intreg): Kill warning. + (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. -Fri Sep 19 18:53:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Mon Aug 31 13:57:55 1998 Richard Henderson <rth@cygnus.com> - * jump.c (thread_jumps): check can_reverse_comparison_p before - threading a reversed-condition jump. + * alpha/va_list.h: New file. + * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. - * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. - * haifa-sched.c (update_flow_info): Likewise. +Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) -Thu Sep 18 21:13:40 1997 Jeffrey A Law (law@cygnus.com) + * NEWS: Add SCO Openserver and Unixware 7 notes. - * Makefile.in (BOOT_CFLAGS): Use -O2. + * NEWS: Fix typos. - * configure.in (strtoul, bsearch): Have autoconf check for these - functions. - * configure, config.in: Rebuilt. +Mon Aug 31 15:42:18 1998 Dave Brolley <brolley@cygnus.com> - * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips/mips.h (alloca): Likewise. - * rs6000/xm-rs6000.h (alloca): Likewise. - * rs6000/xm-sysv4.h: Likewise. + * varasm.c (compare_constant_1): Handle RANGE_EXPR. + (record_constant_1): Handle RANGE_EXPR. -Thu Sep 18 14:22:22 1997 Jason Merrill <jason@yorick.cygnus.com> +Mon Aug 31 10:54:03 1998 Richard Henderson <rth@cygnus.com> - * final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code. - * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. - (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. + * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. + * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START + and NOTE_INSN_RANGE_END specially. + (reemit_notes): Likewise. - * except.c (end_eh_unwinder): Subtract 1 from return address. - * libgcc2.c (__throw): Likewise. - (find_exception_handler): Don't change PC here. Compare end with >. +Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Thu Sep 18 10:43:07 1997 Nick Clifton <nickc@cygnus.com> + * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. + (ultrasparc_sched_init): Remove unneeded &. - * v850.c (compute_register_save_size): Correct register - number. - * v850.md (save_interrupt, return_interrupt): Correct - register number. - * v850/lib1funcs.asm (save_interrupt): Correct register number. - (return_interrupt): Use stack pointer, not element pointer. +Mon Aug 31 10:47:16 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> -1997-09-18 Brendan Kehoe <brendan@lisa.cygnus.com> + * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 + for m68020-60, to prevent the use of fintrz. - * configure.in, configure: Make sure to create the stage* and include - symbolic links in each subdirectory. +Sun Aug 30 22:17:20 1998 Mark Mitchell <mark@markmitchell.com> -Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) + * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) + even in stage1. + * Makefile.in: Likewise. + * configure: Regenerated. - * pa.md (reload_peepholes): Don't allow addresses with side - effects for the memory operand. +Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) -Wed Sep 17 18:19:53 1997 Jason Merrill <jason@yorick.cygnus.com> + * configure.in (gxx_include_dir): Changed to + '${prefix}/include/g++'-${libstdcxx_interface}. + * configure: Rebuilt. - * libgcc2.c (find_exception_handler): Subtract one from our PC when - looking for a handler, to avoid hitting the beginning of the next - region. +Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson <hp@axis.se> - * except.c (expand_builtin_set_return_addr_reg): Use force_operand. + * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use + consistent. + * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move + *sequences* *below* which scalar moves will be used. -Wed Sep 17 18:33:59 1997 Jeffrey A Law (law@cygnus.com) +Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) - * mips/abi64.h (LONG_MAX_SPEC): Define. - * mips.h (LONG_MAX_SPEC): Define. - (CPP_SPEC): Include long_max_spec. - (EXTRA_SPECS): Include long_max_spec. + * collect2.c (mktemp): Delete unused declaration. -Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) + * config/xm-netbsd.h: Remove unnecessary file. + * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h + file anymore, it is not needed. - * v850.c (construct_save_jarl): Fix thinko in last change. +Sun Aug 30 16:05:45 1998 Mark Mitchell <mark@markmitchell.com> -Wed Sep 17 09:53:07 1997 Jeffrey A Law (law@cygnus.com) + * convert.c (convert_to_integer): Issue an error on conversions to + incomplete types. - * version.c: Bump for snapshot. +Sun Aug 30 16:47:20 1998 Martin von Lvwis <loewis@informatik.hu-berlin.de> -Tue Sep 16 14:22:36 1997 Jason Merrill <jason@yorick.cygnus.com> + * Makefile.in: Add lang_tree_files and gencheck.h. + * configure.in: Generate them. + * gencheck.c: Include gencheck.h. - * libgcc2.c (find_exception_handler): Not found is -1. +Sat Aug 29 21:38:24 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * integrate.c (expand_inline_function): Move expand_start_bindings - after expanding the arguments. + * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to + movdi_lo_sum_pic and movdi_high_pic and make visible. + * config/sparc/sparc.c (legitimize_pic_address): For -fPIC, + emit these when Pmode is not SImode. + * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW. -Tue Sep 16 11:13:46 1997 Jim Wilson <wilson@cygnus.com> +Sat Aug 29 14:59:32 1998 Mumit Khan <khan@xraylith.wisc.edu> - * expr.c (expand_expr): Remove previous incorrect change. - If target and slot has no DECL_RTL, then call mark_addressable - again for the slot after we give it RTL. + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit + .linkonce directive after the first time. -Tue Sep 16 09:18:52 1997 Jason Merrill (jason@cygnus.com) +Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. + * m68k.md (beq0_di): Generate correct (and more efficient) code when + the clobbered operand overlaps with an input. + (bne0_di): Similarly. -Tue Sep 16 00:13:20 1997 Nick Clifton <nickc@cygnus.com> + * Makefile.in (INSTALL): Remove "--no-header" argument. - * v850.c (register_is_ok_for_epilogue, - pattern_is_ok_for_epilogue, construct_restore_jr, - pattern_is_ok_for_prologue, construct_save_jarl): New functions. + * NEWS: Various updates. - * v850.h (pattern_is_ok_for_prologue, - pattern_is_ok_for_epilogue, register_is_ok_for_epilogue): New - predicates. +Fri Aug 28 19:00:44 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * v850.md: Replace prologue and epilogue patterns with a - match_parallel pattern. + * config/sparc/sparc.c (arith_operand, const64_operand, + const64_high_operand, arith_double_4096_operand): Mark mode as + unused. + (create_simple_focus_bits): Remove unused arg highest_bit_set, all + callers changed. + (sparc_emit_set_const64): Remove unused variable i. + (sparc_splitdi_legitimate): Likewise for addr_part. + (ultra_code_from_mask): Likewise for mask. + (ultra_cmove_results_ready_p): Fixup entry modulo calc. and + reverse return values so it matches usage and comments. + (ultra_flush_pipeline): Likewise. + (ultra_fpmode_conflict_exists): Likewise, remove unused variable + this_type, and allow loads and stores of differing FP modes as + they do not create a conflict. + (ultra_find_type): Initialize fpmode to SFmode, fix + parenthesization thinkos in large conditional. + (ultrasparc_sched_init): Mark dump and sched_verbose as unused. + Init free_slot_mask after ultra_cur_hist is reset, not before. + (ultrasparc_rescan_pipeline_state): Remove unused variable ucode. + (ultrasparc_sched_reorder): Don't bzero current pipeline state, + use ultra_flush_pipeline instead, then re-init group pointer. + Fix statement with no effect. If no progress made in, and no + instructions scheduled at all, advance to new pipeline cycle else + we get into an endless loop. + (ultrasparc_adjust_cost): Remove previous arg. + * config/sparc/sparc.h (ADJUST_COST): Update to reflect that. -Mon Sep 15 22:53:01 1997 Jeffrey A Law (law@cygnus.com) +Fri Aug 28 13:52:35 1998 Jim Wilson <wilson@cygnus.com> - * aclocal.m4: Add replacement for AC_PROG_INSTALL. - * configure.in: Use EGCS_PROG_INSTALL. + * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference + code. Use reg_overlap_mentioned_p to detect when source and + destination overlap. + (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands. -Mon Sep 15 22:40:55 1997 Jim Wilson (wilson@cygnus.com) +1998-08-28 Brendan Kehoe <brendan@cygnus.com> - * dwarf2out.c (gen_subprogram_die): Handle redefinition of an - extern inline function. + * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not + COMPARISON_VAL, into invariant_p. -Mon Sep 15 22:40:55 1997 Richard Henderson (rth@cygnus.com) +Fri Aug 28 15:13:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * dwarf2out.c (reg_loc_descriptor): Fix prototype. - (concat_loc_descriptor): New function. - (loc_descriptor): Call it. - (add_AT_location_description): Also elide the descriptor if both - halves of a CONCAT are pseudos. - (add_location_or_const_value_attribute): Recognize CONCAT too. + * regmove.c (regclass_compatible_p): New function. + (regmove_optimize): Use it. -Mon Sep 15 15:24:00 1997 Richard Henderson <rth@cygnus.com> + Use NREGS parameter instead of calling max_reg_num. - * alpha.md (movdi): Handle CONST_DOUBLE for TARGET_BUILD_CONSTANTS. + (fixup_match_1): Don't use code = MINUS when later tieing with + a hard register is likely. - * alpha/alpha.c (output_prolog): New variable sa_reg. Use it for - out-or-range reg_offset. - (output_epilog): Likewise. +Fri Aug 28 14:54:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com) + * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when + COMPARISON_VAL was normalized. - * cse.c (simplify_relational_operation): If MODE specifies a - mode wider than HOST_WIDE_INT, then the high word of a CONST_INT - is derived from the sign bit of the low word. +Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) -Mon Sep 15 11:43:38 1997 Jason Merrill <jason@yorick.cygnus.com> + * loop.c (check_dbra_loop): The loop ending comparison value + must be an invariant or we can not reverse the loop. - Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. + * loop.c (scan_loop): Count down from max_reg_num - 1 to + FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration + of the loop. + (load_mems_and_recount_loop_regs_set): Likewise. - * dwarf2.h: Add DW_CFA_GNU_args_size. - * frame.c (execute_cfa_insn): Likewise. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. - (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. - (dwarf2out_frame_debug): If this isn't a prologue or epilogue - insn, hand it off to dwarf2out_stack_adjust. - (dwarf2out_begin_prologue): Initialize args_size. - * frame.h (struct frame_state): Add args_size. - * libgcc2.c (__throw): Use args_size. - * final.c (final_scan_insn): If we push args, hand off all insns - to dwarf2out_frame_debug. - * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. + * i386.c (print_operand): Remove obsolete 'c' docs. - * dwarf2out.c dwarf2out_frame_debug): Fix typo. - Handle epilogue restore of SP from FP. - * emit-rtl.c (gen_sequence): Still generate a sequence if the - lone insn has RTX_FRAME_RELATED_P set. +Wed Aug 26 17:13:37 1998 Tom Tromey <tromey@cygnus.com> - * frame.c (extract_cie_info): Handle "e" augmentation. - * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the - absence of UNALIGNED_*_ASM_OP. - (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. - (output_call_frame_info): Use "e" instead of "z" for augmentation. - Don't emit augmentation fields length. - (dwarf2out_do_frame): Move outside of #ifdefs. - * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data - opcodes. + * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. + * frame.c (init_object_mutex): New function. + (init_object_mutex_once): Likewise. + (find_fde): Call it. + (__register_frame_info): Likewise. + (__register_frame_info_table): Likewise. + (__deregister_frame_info): Likewise. - * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. - * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. - * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. - * sparc/sun4gas.h: New file. - * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. +Thu Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) - * collect2.c (write_c_file_stat, write_c_file_glob): Declare - __register_frame_table and __deregister_frame. + * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. -1997-09-15 Brendan Kehoe <brendan@cygnus.com> +Thu Aug 27 16:34:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * except.c (find_exception_handler_labels): Use xmalloc instead of - alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million - in some cases. + * loop.c (check_dbra_loop): Enable code for reversal + of some loops without a known constant loop end. -Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) +Wed Aug 26 18:38:15 1998 Richard Henderson <rth@cygnus.com> - * Makefile.in: Various changes to build info files - in the object tree rather than the source tree. + * haifa-sched.c (last_clock_var): New. + (schedule_block): Initialize it. + (schedule_insn): Use it to fill insn modes with issue information. -Sun Sep 14 12:24:30 1997 Jeffrey A Law (law@cygnus.com) + * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit. + Tag trapb and next insn with TImode. + (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New. + (alpha_reorg): Add conditional for alpha_handle_trap_shadows. + Invoke alphaev5_align_insns as appropriate. + * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER. + (MD_SCHED_VARIABLE_ISSUE): New. + * alpha.md (attr type): Add multi. + (define_asm_attributes): New. + (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi. + (arg_home): Likewise. + (fnop, unop, realign): New. - * fixinc.math: New file to fix math.h on some systems. - * configure.in (freebsd, netbsd): Use fixinc.math on these - systems. - * configure: Rebuilt. +Wed Aug 26 15:55:41 1998 Jim Wilson <wilson@cygnus.com> -Sun Sep 14 11:11:05 1997 Jeffrey A Law (law@cygnus.com) + * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. + * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. - * regmove.c (regmove_optimize): If we end up moving the - original insn due to lifetime overlaps, make sure to move - REG_NOTES too. + * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. + (rs6000-ibm-aix4.[12]*): Likewise. + * configure: Regenerate. -Sat Sep 13 15:51:11 1997 Manfred Hollstein <manfred@s-direktnet.de> +Wed Aug 26 09:30:59 1998 Nick Clifton <nickc@cygnus.com> - * Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure. + * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it + already contains the return address. -Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com) +Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) - * haifa-sched.c (add_branch_dependences): Make each insn in - a SCHED_GROUP_P block explicitly depend on the previous insn. + * calls.c (expand_call): Use bitfield instructions to extract/deposit + word sized hunks when loading unaligned args into registers. -Fri Sep 12 13:49:58 1997 Jason Merrill <jason@yorick.cygnus.com> + * haifa-sched.c (sched_analyze_insn): Only create scheduling + barriers for LOOP, EH and SETJMP notes on the loop_notes list. - * except.h: Prototype dwarf2 hooks. - * expr.c: Adjust. + * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. -Thu Sep 11 17:43:55 1997 Jim Wilson <wilson@cygnus.com> +Wed Aug 26 16:35:37 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - * configure.in (native_prefix): Delete. - (mips-dec-netbsd): Don't set prefix. - (*linux*): Don't set prefix. + * loop.c (check_dbra_loop): Add some code that would allow reversal + of some loops without a known constant loop end if it were enabled. -Thu Sep 11 15:48:32 1997 Fred Fish <fnf@ninemoons.com> +Wed Aug 26 11:08:44 1998 Gavin Romig-Koch <gavin@cygnus.com> - * protoize.c: Include <varargs.h> only if HAVE_VARARGS_H is - defined. If not defined, include <sys/varargs.h> if - HAVE_SYS_VARARGS_H is defined. - * configure.in: Test for varargs.h and sys/varargs.h. - * configure: Regenerate with autoconf. - * config.in: Regenerate with autoheader. + * mips.md (lshrsi3_internal2+2): Fix type-o. - * cpplib.c (quote_string): Cast first arg of sprintf call - from "unsigned char *" to "char *". - (output_line_command): Ditto. - (macroexpand): Ditto. - (do_line): Cast atoi arg from "unsigned char *" to "char *". +Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> -Wed Sep 10 21:37:30 1997 Jeffrey A Law (law@cygnus.com) + * system.h: Include stdarg.h/varargs.h, make sure they are ordered + correctly with regards to stdio.h. - * version.c: Bump for snapshot. + * calls.c: Remove stdarg.h/varargs.h. + * cccp.c: Likewise. + * cexp.y: Likewise. + * combine.c: Likewise. + * cpperror.c: Likewise. + * cpplib.c: Likewise. + * cpplib.h: Likewise. + * doprint.c: Likewise. + * emit-rtl.c: Likewise. + * final.c: Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * genattr.c: Likewise. + * genattrtab.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * mips-tfile.c: Likewise. + * prefix.c: Likewise. + * protoize.c: Likewise. + * regmove.c: Likewise. + * toplev.c: Likewise. + * tree.c: Likewise. + +Wed Aug 26 05:09:27 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> + + * config/sparc/sparc.c (sparc_override_options): If not + TARGET_FPU, turn off TARGET_VIS. + * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis. + (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS. + * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero. + (movdi_insn_sp64): Add VIS fzero alternative. + (clear_sf, clear_df): New VIS patterns. + (movsf, movdf expanders): Allow fp_zero_operand flat out when + TARGET_VIS. + (one_cmpldi2_sp64): Provide new fnot1 VIS alternative. + +Tue Aug 25 10:57:41 1998 Mark Mitchell <mark@markmitchell.com> + + * loop.c (n_times_set, n_times_used, may_not_optimize, + reg_single_usage): Convert to varrays. All uses changed. + (insert_loop_mem): Return a value. + (scan_loop): Tweak AVOID_CC_MODE_COPIES code. + (load_mems_and_recount_loop_regs_set): Likewise. Grow the arrays, if + necessary. - * Makefile.in (compare): Exit with nonzero status if there - are comparison failures. Note which files failed the - comparison test in .bad_compare. +Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) -Wed Sep 10 17:05:46 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * From Alexandre: + * configure.in: Do not set thread_file to "irix" since no such + support exists yet. - * config/alpha/elf.h (CPP_PREDEFINES): Remove -D__PIC__ -D__pic__. + * sparc.md (float abs/neg splits): Check reload_completed before + calling alter_subreg. -Wed Sep 10 16:37:28 1997 Fred Fish <fnf@ninemoons.com> +Tue Aug 25 19:17:59 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * Makefile.in (LN, LN_S): New macros, use where appropriate. - * aclocal.m4 (GCC_PROG_LN_S, GCC_PROG_LN): New tests. - * configure.in: Use GCC_PROG_LN_S and GCC_PROG_LN. - * configure: Regenerated. + * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New + function. + * config/sparc/sparc.h: Declare it. + * config/sparc/sparc.md (float abs/neg splits): Use it. + (all other splits): Handle SUBREGs properly where necessary. + (unnamed (1<<x)-1 V8PLUS pattern): Disable for now. -Thu Sep 11 11:09:43 1997 Jeffrey A Law (law@cygnus.com) +Tue Aug 25 19:48:46 1998 Jeffrey A Law (law@cygnus.com) - * loop.c (strength_reduce): Fix typo. + * reorg.c (fill_simple_delay_slots): Do not abort if we encounter + an insn on the unfilled_slots_list that has no delay slots. + (fill_eager_delay_slots): Similarly. -Wed Sep 10 16:01:15 1997 Jim Wilson <wilson@cygnus.com> +Tue Aug 25 13:35:20 1998 Nick Clifton <nickc@cygnus.com> - * m88k/m88k.c (struct option): Rename to struct options. - * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments. - * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not - __DOLPHIN__ or sysV88. + * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX + as an ordinary operand. -Wed Sep 10 14:58:40 1997 Jim Wilson <wilson@cygnus.com> +Tue Aug 25 12:54:57 1998 Jason Merrill <jason@yorick.cygnus.com> - * emit-rtl.c (gen_lowpart_common): For a SUBREG, add in word when - create new subreg. + * tree.c (valid_machine_attribute): Don't apply attributes to both + decl and type. -Wed Sep 10 15:19:22 1997 Jeffrey A Law (law@cygnus.com) +Tue Aug 25 12:23:20 1998 Richard Henderson <rth@cygnus.com> - * config.sub: Accept 'amigados' for backward compatability. + * reload.c (operands_match_p): Handle rtvecs. -Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * 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. - * Makefile.in (testsuite/site.exp): New target. - (check-gcc, check-g++): Depend on testsuite/site.exp. - Don't stop for failure. +Tue Aug 25 12:02:23 1998 Mark Mitchell <mark@markmitchell.com> -Wed Sep 10 12:59:57 1997 Jason Merrill <jason@yorick.cygnus.com> + * alias.c: Include output.h. + (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as + different if we're in a varargs function. + * Makefile.in (alias.o): Depend on output.h - * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() - if DWARF2_UNWIND_INFO. +Tue Aug 25 19:20:12 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Wed Sep 10 11:49:20 1997 Jason Merrill <jason@yorick.cygnus.com> + * sh.h (GIV_SORT_CRITERION): Delete. - Add support for exception handling using DWARF 2 frame unwind info. - Currently works on SPARC and MIPS, and almost on x86. +Tue Aug 25 13:19:46 1998 Dave Brolley <brolley@cygnus.com> - * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, - next_stack_level, in_reg_window): Helper fns. - (__throw): Implement for DWARF2_UNWIND_INFO. + * regclass.c (regclass): Use xmalloc/free instead of alloca. + * stupid.c (stupid_life_analysis): Likewise. + * reload1.c (reload): Likewise. - * expr.c (expand_builtin): Handle builtins used by __throw. - * tree.h (enum built_in_function): Add builtins used by __throw. - * c-decl.c (init_decl_processing): Declare builtins used by __throw. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. - * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. - (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_frob_return_addr): Likewise. - (expand_builtin_set_return_addr_reg): Likewise. - (expand_builtin_eh_stub): Likewise. - (expand_builtin_set_eh_regs): Likewise. - (eh_regs): Choose two call-clobbered registers for passing back values. +Tue Aug 25 05:48:18 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - * frame.c, frame.h: New files for parsing dwarf 2 frame info. - * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. - (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) - (stmp-multilib): Likewise. - ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. + * config/sparc/sparc.c (arith_4096_operand, arith_add_operand, + arith_double_4096_operand, arith_double_add_operand): New + predicates. + * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them. + * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use + them to transform add/sub 4096 into add/sub -4096. - * except.c: #include "defaults.h". - (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. - (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. - (register_exception_table_p): New fn. - (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. - (end_eh_unwinder): Likewise. +Mon Aug 24 23:31:03 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, - call __register_frame and __deregister_frame as needed. - * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. - * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check - EH_FRAME_SECTION_ASM_OP. - * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. - * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. + * loop.c (scan_loop): Allocate some slop to handle pseudos + generated by move_movables. + (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES + here too. - * dwarf2out.c (output_call_frame_info): If no support for - EXCEPTION_SECTION, mark the start of the frame info with a - collectable tag. - * collect2.c (frame_tables): New list. - (is_ctor_dtor): Recognise frame entries. - (scan_prog_file): Likewise. - (main): Pass -fno-exceptions to sub-compile. Also do collection - if there are any frame entries. - (write_c_file_stat): Call __register_frame_table and - __deregister_frame as needed. - (write_c_file_glob): Likewise. - - * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. - Also require unaligned reloc support. - * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define here. - * sparc/sysv4.h: Not here. - - * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. - * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. - (dwarf2out_finish): Don't call dwarf2out_frame_finish. - - * libgcc2.c (L_eh): Reorganize, moving code shared by different - EH implementations to the top. - (find_exception_handler): Split out. Start from 0. Compare against - end with >=. - (__find_first_exception_table_match): Use it. - * except.c (output_exception_table): Don't do anything if there's - no table. Don't output a first entry of zeroes. - (eh_outer_context): Adjust properly. - (add_eh_table_entry): Use xrealloc. - * toplev.c (compile_file): Just call output_exception_table. - -Wed Sep 10 11:30:36 1997 Jason Merrill <jason@cygnus.com> - - * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. - -Wed Sep 10 08:17:10 1997 Torbjorn Granlund <tege@pdc.kth..se> - - * except.c (eh_outer_context): Do masking using expand_and. - -Wed Sep 10 01:38:30 1997 Doug Evans <dje@cygnus.com> - - Add port done awhile ago for the ARC cpu. - * arc/arc.h: New file. - * arc/arc.c: New file. - * arc/arc.md: New file. - * arc/initfini.c: New file. - * arc/lib1funcs.asm: New file. - * arc/t-arc: New file. - * arc/xm-arc.h: New file. - * ginclude/va-arc.h: New file. - * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. - * ginclude/varargs.h: Likewise. - * Makefile.in (USER_H): Add va-arc.h. - * configure.in (arc-*-elf*): Recognize. - * longlong.h: Add ARC support. +Mon Aug 24 19:45:40 1998 Jim Wilson <wilson@cygnus.com> -Wed Sep 10 01:32:54 1997 Jeffrey A Law (law@cygnus.com) + * tree.def (DECL_RESULT): Correct documentation. - * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. - when clearing non-BLKmode data. +Tue Aug 25 01:15:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Wed Sep 10 00:29:29 1997 Manfred Hollstein <manfred@s-direktnet.de> + * reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed + all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR: + conflicts will all RELOAD_FOR_OUTPUT reloads. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE) Define. - * libgcc2.c (__enable_execute_stack): Provide for sysV88 too. + * reload1.c (reload_cse_regs_1): When deleting a no-op move that + loads the function result, substitute with a USE. - * xm-m88k.h (USG): Only define if it hasn't already been defined. +Mon Aug 24 15:20:19 1998 David Edelsohn <edelsohn@gnu.org> - * Makefile.in (risky-stage1): Delete gratutious whitespace. + * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 + when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode. + (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup. + * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4. + (print_operand, cases 'O' and 'T'): Fix typos in lossage strings. + * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT + operand. + (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change + 'o' to 'm' for GPR variant constraints. - * Makefile.in (clean): Delete libgcc1-test. +Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) - * Makefile.in (INSTALL): cd to $(srcdir) before running texinfo. + * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. -Tue Sep 9 17:07:36 1997 Stan Cox <coxs@dg-rtp.dg.com> + * h8300.h (STRIP_NAME_ENCODING): Fix typo. - * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list - template. + * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect + when the source and destination overlap. -Tue Sep 9 09:50:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid + clash with global type. - * dwarf2out.c (output_call_frame_info): Call named_section. +Mon Aug 24 00:53:53 1998 Jason Merrill <jason@yorick.cygnus.com> -Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com) + * fixinc.irix: Add curses.h handling from fixinc.wrap. - * haifa-sched.c (print_value): Fix last change. + * c-common.c (combine_strings): Also set TREE_READONLY. + Change warn_write_strings to flag_const_strings. + * c-decl.c, c-tree.h: Likewise. -Tue Sep 9 01:30:37 1997 Jason Merrill <jason@yorick.cygnus.com> +Sun Aug 23 18:39:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of - write_symbols. + * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a + CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM + sequence, use SET/IOR instead so CSE can see it. + * config/sparc/sparc.md (movhi_const64_special, + movsi_const64_special): New patterns necessitated by that change. + (movhi_high): Remove. + (movhi_lo_sum): Change to match an IOR. + (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64. + (movdf_insn_v9only): New pattern for when V9 but not ARCH64. + (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64. + (movdf splits): Allow when not V9 or when not ARCH64 and integer + registers are involved. + (snesi_zero_extend split): Remove reload_completed test. + (unnamed plus and minus zero_extend sidi splits): Add it. -Mon Sep 8 16:32:43 1997 Jason Merrill <jason@yorick.cygnus.com> +Sun Aug 23 11:56:08 1998 Mark Mitchell <mark@markmitchell.com> - * mips.c (function_prologue): Set up the CFA when ABI_32. + * extend.texi: Remove description of extension to explicit + instantiation that is now endorsed by standard C++. - * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG - for dwarf2 unwind info. - (output_function_prologue, sparc_flat_output_function_prologue): Same. +Sun Aug 23 09:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * final.c (final_end_function): Check dwarf2out_do_frame instead - of DWARF2_DEBUG for dwarf2 unwind info. - (final_scan_insn): Likewise. - (final_start_function): Likewise. Initialize dwarf2 frame debug here. - (final): Not here. + * config/arc/arc.c (arc_initialize_pic): Remove. + * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does + nothing on any platform and is invoked by no-one, it does not even + appear in the documentation. + * config/sparc/sparc.h (INITIALIZE_PIC): Likewise. + * config/sparc/sparc.c (initialize_pic): Likewise. + (find_addr_reg): Remove this as well, no longer referenced after + my rewrite. - * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if - count > 0. +Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) - * varasm.c (exception_section): Check EXCEPTION_SECTION first. + * recog.c (validate_replace_rtx_group): New function. + * recog.h (validate_replace_rtx_group): Declare it. + * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo + the entire group of substitutions. -Mon Sep 8 15:15:11 1997 Nick Clifton <nickc@cygnus.com> +Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) - * v850.h (ASM_SPEC): Pass on target processor. - (CPP_PREDEFINES): Only define if not already specified. - (TARGET_VERSION): Only define if not already specified. - (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target - processor. - (EXTRA_SWITCHES): Extra entries in the switches array. - (TARGET_DEFAULT): Set default target processor. + * loop.c (load_mems): Fix initializers. -Mon Sep 8 18:26:35 1997 Jim Wilson <wilson@cygnus.com> +Fri Aug 21 23:07:46 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): In MOTOROLA - cases, add %# and %/, and add : to make them into extended asms. + * config/sparc/sparc.md (TFmode splits): Handle destination + registers being referenced in the address correctly. -Sun Sep 7 23:57:50 1997 Weiwen Liu <liu@hepunix.physics.yale.edu> + * expmed.c (make_tree) [CONST_INT]: Sign extend even if + TREE_UNSIGNED, when bitsize of type's mode is larger than + HOST_BITS_PER_WIDE_INT. - * alias.c (init_alias_analysis): Clean up incompatible pointer - type warning in bzero. - * regmove.c (regmove_optimize): Ditto. - * haifa-sched.c (find_rgns): Ditto. +Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - * haifa-sched.c (print_value): Clean up ptr->int cast - warnings. + * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes. + * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, + EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New + macros. + * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and + EXIT_BLOCK_EXPR. -Sun Sep 7 23:18:32 1997 Fred Fish <fnf@ninemoons.com> +Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) - * INSTALL: Change 'amigados' to 'amigaos' to match current usage. - * install.texi (Configurations): Ditto. - * config.sub: Ditto. + * h8300.c (h8300_encode_label): Use '&' for tiny data items. + * h8300.h (TINY_DATA_NAME_P): Likewise. + (STRIP_NAME_ENCODING): Handle '&'. -Sun Sep 7 22:56:56 1997 Weiwen Liu (liu@hepvms.physics.yale.edu) + * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the + register (it could be accessed via an outer SUBREG). + (REG_OK_FOR_BASE_P): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P. - * Makefile.in (sdbout.o): Depend on insn-config.h. + * remove.c (optimize_reg_copy_3): Abort instead of silently generating + bogus rtl. -Sun Sep 7 18:44:50 1997 Jim Wilson <wilson@cygnus.com> + * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. - * m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. +Thu Aug 20 17:35:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Sun Sep 7 18:30:46 1997 Jason Merrill <jason@yorick.cygnus.com> + * config/sparc/sparc.md (movtf_insn_sp32): All memory operands + must be offsettable so the splits can be made. - * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL - prologue insn, only the first elt is significant. - (output_call_frame_info): For exception handling, always use 4-byte - fields as specified by the dwarf2 spec. - Don't skip trivial FDEs. +Thu Aug 20 13:56:53 1998 Michael Meissner <meissner@cygnus.com> -Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com) + * config/i386/winnt.c: Include system.h, not stdio.h to get + sys/param.h pulled in before rtl.h in case the system defines MIN + and MAX. - * version.c: Bump for snapshot. +Thu Aug 20 13:44:20 1998 David Edelsohn <edelsohn@gnu.org> -Sun Sep 7 14:17:36 1997 Torbjorn Granlund (tege@pdc.kth.se) + * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. - * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp - for negative constants. Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR - when op1_is_pow2. +Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com> -Sun Sep 7 13:46:46 1997 Jeffrey A Law (law@cygnus.com) + * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for + arrays of bits. + * cpplib.c (cpp_define): Handle macros with parameters. - * final.c (shorten_branches): During first pass, assume worst - possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. +Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@gnu.org> - * Makefile.in (distclean): Remove various things left around - by running the testsuite. + * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit. + (output_toc): Use single TOC slot or llong minimal-toc for DFmode + and DImode 64-bit. Use llong for minimal-toc SFmode and + SYMBOL_REF / LABEL_REF 64-bit. + (output_function_profiler): Use llong for profiler label and ld to + load 64-bit label address. -Sun Sep 7 13:16:06 1997 Manfred Hollstein <manfred@s-direktnet.de> +Wed Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) - * configure.in (out_file): Emit definition to config.status in order - to have a defined value for configure.lang. - * configure: Re-built. + * config/arm/thumb.md (extendqisi2_insn): Cope with REG + + OFFSET addressing. -Sun Sep 7 09:59:08 1997 Jan-Jaap van der Heijden (J.J.vanderHeijden@student.utwente.nl) +Wed Aug 19 14:13:31 1998 Jeff Law (law@cygnus.com) - * configure.in: Make symlink to as-new rather than as.new. Similarly - for ld-new. - * configure: Rebuilt. + * version.c: Bump for snapshot. -Fri Sep 5 16:54:55 1997 Jim Wilson <wilson@cygnus.com> +Wed Aug 19 13:10:30 1998 Jeff Law (law@cygnus.com) - * profile.c (output_func_start_profiler): Set DECL_EXTERNAL to zero. + * version.c: Bump for snapshot. -Fri Sep 5 16:16:44 1997 Christian Kuehnke <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE> +Wed Aug 19 13:06:47 1998 Jason Merrill <jason@yorick.cygnus.com> + + * collect2.c (extract_init_priority): Use atoi instead of strtoul. + +Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson <hp@axis.se> + + * tm.texi (Misc): Fix typo "teh". + + * tm.texi (PIC): Fix typo "PPIC". + + * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no + effect when -O2 and higher. + * invoke.texi (Optimize Options): Likewise for -fcaller-saves. + +1998-08-19 Michael Hayes <michaelh@ongaonga.chch.cri.nz> + + * regclass.c: Changed register set documentation to be consistent + with GCC behavior. + + * final.c (final_start_function): Removed redundant test for + call_fixed_regs. + +Wed Aug 19 13:28:41 1998 Mark Mitchell <mark@markmitchell.com> + + * rtl.h (rtx_function): New type. + (for_each_rtx): New function. + * rtlanal.c (for_each_rtx): Define it. + + * recog.c (change_t): New type. + (change_objects, change_old_codes, change_locs, change_olds): + Replace with ... + (changes): New variable. + (validate_change): Dynamically allocate room for more changes, if + necessary. Uses changes array instead of change_objects, etc. + (apply_change_group): Use changes array instead of + change_objects, etc. + + * loop.c (loop_mem_info): New type. + (loop_mems): New variable. + (loop_mems_idx): Likewise. + (looop_mems_allocated): Likewise. + (scan_loop): Remove nregs parameter. + (next_insn_in_loop): New function. + (load_mems_and_recount_loop_regs_set): Likewise. + (load_mems): Likewise. + (insert_loop_mem): Likewise. + (replace_loop_mem): Likewise. + (replace_label): Likewise. + (INSN_IN_RANGE_P): New macro. + (loop_optimize): Don't pass max_reg_num() to scan_loop. + (scan_loop): Remove nregs parameter, compute it after any new + registers are created by load_mems. Use INSN_IN_RANGE_P and + next_insn_in_loop rather than expanding them inline. Call + load_mems to load memory into pseudos, if appropriate. + (prescan_loop): Figure out whether or not there are jumps from the + loop to targets other than the label immediately following the + loop. Call insert_loop_mem to notice all the MEMs used in the + loop, if it could be safe to pull MEMs into REGs for the duration + of the loop. + (strength_reduce): Use next_insn_in_loop. Tweak comments. + +Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) - * sparc/sparc.md: Add ultrasparc scheduling support. - * sparc/sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. + * arm.c (arm_override_options): Remove lie about ignoring PIC flag. -Fri Sep 5 14:04:59 1997 Philippe De Muyter <phdm@info.ucl.ac.be> +Wed Aug 19 07:08:15 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, - as initial value for real_label_map. - (copy_for_inline): Likewise. + * config/sparc/sparc.c (finalize_pic): Check for the correct + nonlocal_goto_receiver UNSPEC number. + * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment + making note of this dependency existing in sparc.c. + (negtf2_notv9 split): Give NEG SFmode. + (negsf2): Fix insn output string. -Fri Sep 5 13:36:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Tue Aug 18 12:40:27 1998 Richard Henderson <rth@cygnus.com> - * sched.c (update_flow_info) When looking if to set found_split_dest - or found_orig_dest, look at all parts of a PARALLEL. - * haifa-sched.c (update_flow_info): Likewise. + * c-common.c (decl_attributes): Issue an error if the argument + to alias is not a string. -Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) +Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) - * v850: New directory for v850 port. - * v850/lib1funcs.asm: New file. - * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. - * ginclude/va-v850.h: New file. - * ginclude/varargs.h, ginclude/stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - * configure: Rebuilt. - * config.sub: Handle v850-elf. - * Makefile.in (USER_H): Add va-mn10200.h. - * invoke.texi: Document v850 stuff. + * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last + pending memory flush list. -Fri Sep 5 09:37:50 1997 Jim Wilson (wilson@cygnus.com) + * combine.c (can_combine_p): Allow combining insns with REG_RETVAL + notes. + (try_combine): Allow combining insns with REG_LIBCALL notes. - * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN - has integer TYPE_{MAX,MIN}_VALUE before using them. + * expr.c (emit_block_move): Do not call memcpy as a libcall + instead build up a CALL_EXPR and call it like any other + function. + (clear_storage): Similarly for memset. - * m68k/m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add - __HPUX_ASM__ versions. + * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p + on notes. -Fri Sep 5 09:08:44 1997 Jeffrey A Law (law@cygnus.com) + * Makefile.in (cplus-dem.o): Provide explicit rules for building + cplus-dem.o. - * install.sh: Delete duplicate install script. + * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED + and REG_LIVE_LENGTH as successful substitutions are made. -Thu Sep 4 23:14:27 1997 Stan Cox (coxs@dg-rtp.dg.com) +Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * reg-stack.c (subst_stack_regs): Pop the stack register for a - computed goto which sets the same stack register. + * config/sparc/sparc.c (ultra_find_type): Add empty semicolon + statement after end of loop label. - * reg-stack.c (compare_for_stack_reg): Swap only if the source and - destination are both on the regstack. - (subst_stack_regs_pat): Put the destination at the top of the regstack. +Tue Aug 18 07:13:27 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Thu Sep 4 15:02:27 1997 Jim Wilson <wilson@cygnus.com> + * config/sparc/sparc.c (ultra_types_avail): New variable. + (ultra_build_types_avail): New function to record mask of insn + types in ready list at this cycle. + (ultrasparc_sched_reorder): Call it. + (ultra_find_type): Use it to quicken the search. Also simplif + dependency check, don't use rtx_equal_p because we know exactly + what we are looking for. - * mips.md (nonlocal_goto_receiver): Define. +Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) - * profile.c (output_arc_profiler): Check next_insert_after for non - NULL before deferencing it. + * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling + for architecture v4. - * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. +Mon Aug 17 21:26:38 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Thu Sep 4 14:51:57 1997 Jeffrey A Law (law@cygnus.com) + * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call + gen_compare_reg. + (movsf_const_intreg, movsf_const_high, movsf_const_lo, + movdf_const_intreg and helper splits): New patterns to move float + constants into integer registers. + (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and + splits. - * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. +Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) -Thu Sep 4 15:01:49 1997 Michael Meissner <meissner@cygnus.com> + * From Graham + * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype + to itype. + * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. - * toplev.c (rest_of_compilation): For passes starting with - flow_analysis, use print_rtl_with_bb instead of print_rtl. + * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that + a BASE_REGS register is needed as an intermediate when copying + a symbolic value into any register class other than BASE_REGS. - * print-rtl.c (print_rtl_single): Print a single rtl value to a - file. + * expr.c (move_by_pieces): No longer static. Remove prototype. + * rtl.h (move_by_pieces): Add extern prototype. + * mips.c (expand_block_move): Handle aligned straight line copy by + calling move_by_pieces. - * flow.c (print_rtl_with_bb): Print which insns start and end - basic blocks. For the start of a basic block, also print the live - information. + * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs + and VAR_DECLs. -Thu Sep 4 11:51:43 1997 Jim Wilson <wilson@cygnus.com> +Mon Aug 17 10:28:52 1998 Mark Mitchell <mark@markmitchell.com> - * toplev.c (main): Change #elif to #else/#ifdef + * stmt.c (expand_end_loop): Tidy. Allow unconditional + jumps out of the loop to be treated as part of the exit test. - * tlink.c: Include ctype.h. - * ginclude/va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. +Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + Jeff Law <law@cygnus.com> -Thu Sep 4 11:17:16 1997 Mikeael Meissner (meissner@cygnus.com) + * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. + * cplus-dem.c: Delete. - * bitmap.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. + * Makefile.in (fold-const.o): Depend on $(RTL_H). -Thu Sep 4 09:58:53 1997 Joel Sherrill (joel@OARcorp.com) + * fold-const.c: Include rtl.h to get the prototype for + `set_identifier_local_value'. - * i960/i960.h: Added default for SUBTARGET_SWITCHES macro. + * loop.c (express_from_1): Remove unused variable `tmp'. + (combine_givs): Cast the first argument of bzero to char *. -Thu Sep 4 09:53:20 1997 Jim Wilson (wilson@cygnus.com) + * toplev.c (display_help): Remove unused variable `looking_for_start'. - * profile.c (output_arc_profiler): Verify next_insert_after is an - INSN before and after skipping a stack pop. + * c-decl.c (init_decl_processing): Remove unneeded &. -Thu Sep 4 07:39:19 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + * alpha.h (alpha_initialize_trampoline): Provide prototype. - * final.c (shorten_branches): Don't count the lengths of deleted - instructions. + * except.c (set_exception_lang_code, set_exception_version_code): + Change parameter from `short' to `int' to avoid using a gcc + extension. -Thu Sep 4 09:43:01 1997 Jeffrey A Law (law@cygnus.com) + * except.h (set_exception_lang_code, set_exception_version_code): + Likewise for prototypes. - * version.c: Bump for snapshot. + * flow.c (count_reg_references): Remove unused variables `regno' + and `i'. -Thu Sep 4 11:04:21 1997 Michael Meissner <meissner@cygnus.com> + * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. - * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over - two bitmaps ANDed together. - (bitmap_print): Declare. + * prefix.c (translate_name): Cast the result of `alloca'. - * bitmap.c (function_obstack): Don't declare any more. - (bitmap_obstack): Obstack for allocating links from. - (bitmap_obstack_init): New static to say whether to initialize - bitmap_obstack. - (bitmap_element_allocate): Use bitmap_obstack to allocate from. - (bitmap_release_memory): Free all memory allocated from - bitmap_obstack. + * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. - * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke - EXECUTE_IF_AND_IN_BITMAP. +Mon Aug 17 09:23:42 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> -Wed Sep 3 10:39:42 1997 Jim Wilson <wilson@cygnus.com> + * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>. + Include "toplev.h". + (valid_dbcc_comparison_p): Mark mode argument as unused. + (symbolic_operand): Likewise. + (legitimize_pic_address): Likewise. + (const_uint32_operand): Likewise. + (const_sint32_operand): Likewise. + * sched.c [!INSN_SCHEDULING]: Define only dummy function + schedule_insns and comment out rest of file. - * alias.c (true_dependence): Address with AND can alias scalars. - (anti_dependence, output_dependence): Likewise. + * m68k.c (output_move_simode_const): Use subl to move a zero into an + address register. + (output_move_[hq]imode): Likewise. - * alias.c (true_dependence): Test x for BLKmode, in addition to mem. +Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) -Wed Sep 3 09:28:50 CDT 1997 Joel Sherrill (joel@OARcorp.com) + * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. + * invoke.texi: Corresponding changes. - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, m68k/rtems.h, - mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, sh/rtems.h, - sparc/rtems.h (subtarget_switches): Removed SUBTARGET_SWITCHES - definitions. Use -qrtems instead of -mrtems. +Mon Aug 17 02:03:55 1998 Richard Henderson <rth@cygnus.com> -Wed Sep 3 09:05:41 1997 Robert Lipe (robert@dgii.com) + * regclass.c (allocate_reg_info): Respect MIN when clearing data. - * xm-sco5.h (sys_siglist): Define. - (SYS_SIGLIST_DECLARED): Likewise. +Sun Aug 16 17:37:06 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.c (ultra_code_from_mask, + ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, + ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline, + ultrasparc_sched_init, ultrasparc_variable_issue, + ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New + functions to describe UltraSPARC pipeline exactly to Haifa. + (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost, + as there is nothing the scheduler can do about it. Indicate that + REG_DEP_OUTPUT's collide. Fixup formatting. + * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and + divide costs on Ultra for DImode. + (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE): + Define. + * config/sparc/sparc.md (ieu_unnamed function unit): Rename to + ieuN and add call_no_delay_slot to type list. + (cti function unit): New unit for branches on UltraSPARC. + (subx/addx insns): Set type to misc. + (sidi zero/sign extension insns on arch64): Set type to shift. + (sign_extendhidi2_insn): Set type to sload. + +Sun Aug 16 13:52:00 1998 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (rs6000_stack_info): Use if == 0 for sizes. + (output_epilog): Use if != 0 for offset. + (rs6000_fatal_bad_address): Prepare for Intl. + * rs6000.h (rs6000_fatal_bad_address): Declare. + * rs6000.md (movsfcc, movdfcc): Use else if. + (elf_high): Use {liu|lis}. + (elf_low): Use {cal|la}. Remove %a template from old mnemonics. + (movsi): Use rs6000_fatal_bad_address. -Tue Sep 2 23:33:33 1997 Jeffrey A Law (law@cygnus.com) +Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com> - * expr.c (convert_move): Handle truncation from TQFmode to QFmode. + * reload.c (find_equiv_reg): Reject equivalences separated + by a volatile instruction. -Wed Sep 3 02:09:30 1997 Torbjorn Granlund <tege@pdc.kth..se> +Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - * except.c (eh_outer_context): Expand masking operation using - expand_binop. + * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. -Tue Sep 2 18:09:39 1997 Jim Wilson <wilson@cygnus.com> +Sat Aug 15 20:51:35 1998 Richard Henderson <rth@cygnus.com> - * alpha.md (floatdisf2-1): New pattern. + * alpha.md (movsicc): Fix mode mismatch. -Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) +Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) - * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. - * xm-news.h (SYS_SIGLIST_DECLARED): Likewise. - * xm-sysv4.h (SYS_SIGLIST_DECLARED): Likewise. - * gcc.texi: Note that if you define sys_siglist that you should - also define SYS_SIGLIST_DECLARED. + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated + return type. + * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions - are relative to the next instruction, not the current instruction. +Sat Aug 15 08:39:49 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Tue Sep 2 14:22:43 1997 Jim Wilson <wilson@cygnus.com> + * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove + write-only modifier from operand 1 constraint. - * local-alloc.c (contains_replace_regs): New function. - (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, - verify that there is no existing REG_EQUIV note, and add a call to - contains_place_regs. +Sat Aug 15 06:28:19 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Tue Sep 2 12:48:11 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If + emitting a XOR of -1 at the end, emit a NOT instead for combine's + sake. + (sparc_emit_set_const64): Likewise, also when computing trailing + bits do not negate low_bits and make fast_int an int. - * config/alpha/elf.h (CPP_PREDEFINES): Add -D__PIC__ -D__pic__. - (STARTFILE_SPEC): Always use crtbegin.o%s - (ENDFILE_SPEC): Always use crtend.o%s. +Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) -Tue Sep 2 12:00:36 1997 Jim Wilson <wilson@cygnus.com> + * loop.c (add_label_notes): Do not ignore references to labels + before dispatch tables. Mirrors Apr 8 change to mark_jump_label. + * gcse.c (add_label_notes): Similarly. - * alpha/alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS - is passed in. - * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to - SFmode for 64 bit hosts. + * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. -Tue Sep 2 13:42:38 1997 Paul N. Hilfinger <hilfingr@CS.Berkeley.EDU> + * m68k.md (adddi_dilshr32): One of the operands must be a register. + (adddi_dishl32): Similarly. - * fixincludes: Permits spaces between # and define. Discard C++ - comments in sys/pci.h on HP/UX 10.20. +Fri Aug 14 14:12:59 1998 Jason Merrill <jason@yorick.cygnus.com> + + * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings. + * alias.c (memrefs_conflict_p): Add braces to shut up warnings. + * cse.c (cse_basic_block): Add parens to shut up warnings. + +Fri Aug 14 12:58:21 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.c (sparc_emit_set_const64_quick2, + sparc_emit_set_const64_longway, const64_is_2insns, + create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs + in 64-bit constant formation. + * config/sparc/sparc.md (snesi_zero_extend split): Generate + rtl for addx not subx. + (define_insn movdi_const64_special): Make available even when + HOST_BITS_PER_WIDE_INT is not 64. + (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove. + (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand. + (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both + instances of operand 1 inside a QI subreg. + (xordi3_sp64_dbl): Remove '%' constraint for op1. + (one_cmpldi2_sp64): Fix output string. + (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra + alternative case. + (unnamed arch64 ashift DI): Truncate shift count if greater than + 63, not 31. + +Fri Aug 14 21:52:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> -Mon Sep 1 22:13:18 1997 Jeffrey A Law (law@cygnus.com) + * expr.c (store_expr): Don't optimize away load-store pair + when either source or destination have a side effect. - * version.c: Bump for snapshot. +Fri Aug 14 16:50:10 1998 John Carr <jfc@mit.edu> - * pa.c (restore_unscaled_index_insn_codes): New function. - (record_unscaled_index_insn_codes): Likewise. - (output_function_prologue): Call restore_unscaled_index_insn_codes. - (output_function_epilogue): Free memory for unscaled_index_insn_codes. - (pa_reorg): Call record_unscaled_index_insn_codes. + * genrecog.c (add_to_sequence): Fatal error if the modes of the + operands of SET are incompatible. - * haifa-sched.c (move_insn): Handle notes correctly for insns - with SCHED_GROUP_P set. + * alpha.md: Fix max and min patterns so modes of SET operands match. -Mon Sep 1 16:58:57 1997 H.J. Lu (hjl@gnu.ai.mit.edu) +Fri Aug 14 12:22:55 1998 Ian Lance Taylor <ian@cygnus.com> - * alpha/xm-linux.h (USE_BFD): Undef before define. + * configure.in: Avoid [[ by using test and changequote. + * configure: Rebuild. -Mon Sep 1 16:25:34 1997 Jim Wilson <wilson@cygnus.com> +Fri Aug 14 01:22:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * rtl.def (CONSTANT_P_RTX): Fix typo in string name. + + * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc, + seqsi_special_extend, snesi_special_extend, snesi_zero_extend and + split, snedi_zero_trunc and split, seqsi_zero_extend and split, + seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di, + movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and + split, addx_extend_sp64, subx_extend_sp64, subx_extend and split): + Fix mismatching modes in SET operands. + (conditional move patterns): Fix formatting. + (unnamed subx arch64 pattern): Remove duplicate insn. + +Fri Aug 14 00:34:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.c (const64_operand, const64_high_operand): + Get it right when HOST_BITS_PER_WIDE_INT is not 64. + (input_operand): Fixup test for what we accept for constant + integers. + (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give + set VOIDmode. + (safe_constDI): Remove. + (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64, + gen_safe_XOR64): New functions. + (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2, + sparc_emit_set_const64_longway, sparc_emit_set_const64): Use + them. + * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make + available when HOST_BITS_PER_WIDE_INT is not 64. + (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and + move before movdi_insn_sp64 pattern. + (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove. + (define_insn sethi_di_medlow, seth44, setm44, sethh): Use + symbolic_operand as predicate for second operand. + (DImode minus split on arch32, negsi2 expander, one_cmplsi2 + expander): Give set VOIDmode. - * cse.c (cse_insn): Don't record BLKmode values. +Fri Aug 14 01:45:06 1998 Mumit Khan <khan@xraylith.wisc.edu> -Mon Sep 1 11:25:47 1997 Stephen Williams (steve@icarus.icarus.com) + * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. - * i960.h (LINK_SPEC): Handle "-mjX" and "-mrp" switches. +Fri Aug 14 01:40:21 1998 Geoffrey Keating <geoffk@ozemail.com.au> -Mon Sep 1 08:29:46 1997 Jeffrey A Law (law@cygnus.com) + * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. - * cccp.c (sys_errlist): Remove special 4.4bsd declaration. - * collect2.c (sys_errlist): Likewise. - * cpplib.c (sys_errlist): Likewise. - * gcc.c (sys_errlist): Likewise. - * protoize (sys_errlist): Likewise. - * configure.in: Check for strerror. - * xm-freebsd.h (HAVE_STRERROR): Remove definition. - * xm-gnu.h (HAVE_STRERROR): Likewise. - * xm-linux.h (HAVE_STRERROR): Likewise. - * xm-netbsd.h (HAVE_STRERROR): Likewise. - * xm-bsd386.h (HAVE_STRERROR): Likewise. - * xm-cygwin32.h (HAVE_STRERROR): Likewise. - * xm-dos.h (HAVE_STRERROR): Likewise. - * xm-mingw32.h (HAVE_STRERROR): Likewise. - * xm-pa.h (HAVE_STRERROR): Likewise. - * xm-papro.h (HAVE_STRERROR): Likewise. - * xm-sysv4.h (HAVE_STRERROR): Likewise. - * configure, config.in: Rebuilt. +Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) - * Makefile.in: Add several missing "else true" clauses. + * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating + point. + (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. - * collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED. - * mips-tfile.c: Likewise. - * gcc.texi: DONT_DECLARE_SYS_SIGLIST: Remove docs. - * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * xm-freebsd.h, xm-bsd386.h, xm-sysv4.h, xm-sol2.h: Likewise. - * configure.in: Check for sys_siglist declaration. - * configure, config.in: Rebuilt. - -Mon Sep 1 08:04:07 1997 Joel Sherrill (joel@OARcorp.com) - - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, - m68k/rtems.h, mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, - sparc/rtems.h (subtarget_switches): Added -mrtems as a switch. - * i960/i960.h: Added SUBTARGET_SWITCHES macro. - * rs6000/sysv4.h (extra_subtarget_switches): Added new - macro EXTRA_SUBTARGET_SWITCHES. - * configure.in (sh*-*-rtems*): New target. - * sh/rtems.h: New file. - * sh/sh.h: Added SUBTARGET_SWITCHES macro. - * configure: Rebuilt. +Fri Aug 14 01:19:08 1998 Robert Lipe <robertl@dgii.com> -Sat Aug 30 22:54:26 1997 Jim Wilson <wilson@cygnus.com> + * install.texi: Various SCO OpenServer tweaks. - * unroll.c (calculate_giv_inc): Handle increment with code PLUS. +Thu Aug 13 20:14:40 1998 Jim Wilson <wilson@cygnus.com> -Sat Aug 30 10:49:46 1997 David Edelsohn <edelsohn@mhpcc.edu> + * reload1.c (eliminate_regs_in_insn): Handle another case when + eliminating the frame pointer to the hard frame pointer. Add + missing ep->to_rtx check to one existing case. - * rs6000.md: Make DF fused-add operations pay attention to - -mno-fused-add. + * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. -Fri Aug 29 19:19:54 1997 Jim Wilson <wilson@cygnus.com> +Thu Aug 13 17:08:11 1998 Jason Merrill <jason@yorick.cygnus.com> - * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define. + * tree.h: De-conditionalize init_priority code. -Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) + * mips.h (NM_FLAGS): Change from -Bp to -Bn. + * collect2.c (NM_FLAGS): Change from -p to -n. - * pa.md (reload_peepholes): Make sure operand is a REG before - examining REGNO. Allow general registers too. + * configure.in: Turn on collect2 for mipstx39-elf. + Handle use_collect2=no properly. -Fri Aug 29 11:42:04 1997 Jim Wilson <wilson@cygnus.com> + * c-common.c: De-conditionalize init_priority code. + * collect2.c (extract_init_priority, sort_ids): New fns. + (main): Call sort_ids. + Move sequence_number to file scope. - * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. + * configure.in: Handle --enable-init-priority. + * c-common.c (attrs): Add A_INIT_PRIORITY. + (init_attributes, decl_attributes): Likewise. + * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros. + * tree.c (get_file_function_name_long): Split out... + (get_file_function_name): ...from here. -Fri Aug 29 09:33:20 1997 Philipp Thomas (kthomas@lxi165.gwdg.de) +Thu Aug 13 16:09:53 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> - * dwarf2out.c (build_abbrev_table): Use xrealloc, not xmalloc - to reallocate abbrev_die_table. + * expr.c (safe_from_p): Change code to ERROR_MARK only when not + accessing nodes. -Thu Aug 28 15:14:46 1997 Jim Wilson <wilson@cygnus.com> +Thu Aug 13 15:24:48 1998 Jason Merrill <jason@yorick.cygnus.com> - * m68k/m68k.md (iorsi_zexthi_ashl16): Disable. + * toplev.c (display_help): Add braces to shut up warnings. + * tree.c (simple_cst_equal): Likewise. -1997-08-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * fold-const.c (non_lvalue): Don't deal with null pointer + constants here. + (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - * Makefile.in (config.status): Depend on version.c + * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0 + of any size to a pointer. - * expr.h (insn_gen_function): Reenable prototype. +Thu Aug 13 12:53:13 1998 Jim Wilson <wilson@cygnus.com> - * expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of - first parameter. + * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. -Thu Aug 28 13:01:43 1997 Jim Wilson <wilson@cygnus.com> +Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) - * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. + * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers + which will be saved. + * mn10300.md (prologue insn): Only save registers which need saving. + (epilogue insn): Similarly. -Thu Aug 28 07:03:15 1997 Jeffrey A Law (law@cygnus.com) + * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" + optimizations. - * version.c: Bump for latest snapshot. +Wed Aug 12 12:39:16 1998 Gavin Romig-Koch <gavin@cygnus.com> - * bc-optab.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - * tree.c (free): Provide a declaration if NEED_DECLARATION_FREE. - * rtl.h (free): Remove declaration. - * tree.h (free): Remvoe declaration. + * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for + VAR_DECL's in gp addressable sections. - * configure: Rebuilt. +Tue Aug 11 23:02:31 1998 John Carr <jfc@mit.edu> -Wed Aug 27 21:32:20 1997 Jeffrey A Law (law@cygnus.com) + * sparc.c: Change return <exp> to <exp>; return; in functions + returning void. + * sparc.md: Add empty semicolon statement after final label in + move expanders. - * flags.h (flag_move_all_movables): Declare. - (flag_reduce_all_givs): Likewise. - * loop.c (move_movables): Handle flag_move_all_movables. - (strength_reduce): Handle flag_reduce_all_givs. - * toplev.c (flag_move_all_movables): Define. - (flag_reduce_all_givs): Likewise. - (f_options): Add -fmove-all-movables and -freduce-all-givs. - * invoke.texi: Document new options, including alias stuff that - wasn't included last time. +Tue Aug 11 22:42:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> -Wed Aug 27 18:08:51 1997 Bob Manson (manson@cygnus.com) + * config/sparc/sparc.md (define_insn addx_extend): Rename to + addx_extend_sp64, only allow when TARGET_ARCH64. + (define_insn addx_extend_sp32 and split): Version that works when + not TARGET_ARCH64. + (define_insn subx_extend): Likewise. + (define_split adddi3 and subdi3 with zero extension): Fixup and + correct bugs when not TARGET_ARCH64. - * t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS. - * t-mn10200: Ditto. - * t-vxsparc: Ditto. - * t-vxworks68: Ditto. - * t-vxworks960: Ditto. - * t-vx29k: Ditto. +Tue Aug 11 16:04:34 1998 John Carr <jfc@mit.edu> -Wed Aug 27 16:35:29 1997 Richard Henderson <rth@cygnus.com> + * except.c (set_exception_lang_code, set_exception_version_code): + Use prototype-style definition if __STDC__, to match declaration + in except.h. - * alpha/xm-alpha.h (alloca): Define alloca to builtin_alloca for GNUC - if not already defined, and USE_C_ALLOCA not defined. + * genemit.c: Change FAIL and DONE macros not to use loops. -Wed Aug 27 16:08:43 1997 Jim Wilson <wilson@cygnus.com> +Tue Aug 11 12:27:03 1998 Jim Wilson <wilson@cygnus.com> - * config.guess: Replace with script that uses ../config.guess. + * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use + ASM_OUTPUT_DWARF2_ADDR_CONST if defined. - * config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 - if USE_GNULIBC_1 is not defined. + * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. -Wed Aug 27 15:49:12 1997 Richard Henderson <rth@cygnus.com> +Tue Aug 11 18:12:53 1998 Dave Love <d.love@dl.ac.uk> - * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. - * config.guess: Recognize alpha-linux-gnulibc1. - * configure.in (alpha-*-linux-gnulibc1): New target. - (alpha-*-linux-gnu*): Don't build crtbegin/end. + * README.g77: Update from Craig. -Wed Aug 27 11:52:58 1997 Jim Wilson <wilson@cygnus.com> +Tue Aug 11 04:46:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of + type HOST_WIDE_INT. + (safe_constDI sparc_emit_set_const64_quick1, + sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, + analyze_64bit_constant, const64_is_2insns, + create_simple_focus_bits): Fix some bugs when compiled on real + 64-bit hosts. + (function_arg_record_value_3, function_arg_record_value_2, + function_arg_record_value): Add fully prototyped forward decls. + * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back + to cmpsi_insn and use on both 64 and 32 bit targets. + (define_insn cmpsi_insn_sp64): Remove. + (define_expand zero_extendsidi2): Allow for 32-bit target too. + (define_insn zero_extendsidi2_insn): Rename to + zero_extendsidi2_insn_sp64. + (define_insn zero_extendsidi2_insn_sp32): New pattern and + associated forced split for it. + + * config/sparc/sparc.c (const64_operand, const64_high_operand): + New predicates. + * config/sparc/sparc.h: Declare them. + (PREDICATE_CODES): Add them. + * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl, + movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them. + +Mon Aug 10 22:57:24 1998 John Carr <jfc@mit.edu> + + * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt + in v9 case as the latter makes the Solaris assembler crash. + +Mon Aug 10 22:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM + for TFmode when !v9. We require offsettable memory addresses. + * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to + DFmode register number conversions. + * config/sparc/sparc.md (define_split DFmode moves): If register + is a SUBREG do alter_subreg on it before using. + (define_expand movtf): Fixup comment about alignment on v9. + (define_split TFmode moves): Don't use gen_{high,low}part, create + explicit SUBREGs instead. + +Mon Aug 10 19:02:55 1998 John Carr <jfc@mit.edu> + + * Makefile.in (mbchar.o): Depend on mbchar.c. + +Mon Aug 10 04:28:13 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + Richard Henderson <rth@cygnus.com> + + Rewrite Sparc backend for better code generation and + improved sparc64 support. + * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to + zero. + * config/sparc/sysv4.h: Likewise. + * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand, + move_operand, v8plus_regcmp_op, emit_move_sequence, + singlemove_string, doublemove_string, mem_aligned_8, + output_move_double, output_move_quad, output_fp_move_double, + move_quad_direction, output_fp_move_quad, output_scc_insn): + Remove. + (small_int_or_double): New predicate. + (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission. + (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of + old pic_{sethi,lo_sum}_si patterns. + (mem_min_alignment): New generic function to replace + mem_aligned_8, which uses REGNO_POINTER_ALIGN information when + available and can test for arbitrary alignments. All callers + changed. + (save_regs, restore_regs, build_big_number, + output_function_prologue, output_cbranch, output_return, + sparc_flat_save_restore, sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Prettify + insn output. + (output_function_epilogue): Likewise and add code to output + deferred case vectors. + (output_v9branch): Likewise, add new arg INSN and use it to tack + on branch prediction settings. All callers changed. + (print_operand): Likewise and output %l44 for LO_SUMs when + TARGET_CM_MEDMID. + (sparc_splitdi_legitimate): New function to make sure DImode + splits can be run properly when !arch64. + (sparc_initialize_trampoline, sparc64_initialize_trampoline): + Reformat example code in comments. + (set_extends): Remove UNSPEC/v8plus_clear_high case. + (sparc_addr_diff_list, sparc_addr_list): New statics to keep track + of deferred case vectors we need to output. + (sparc_defer_case_vector): Record a case vector. + (sparc_output_addr_vec, sparc_output_addr_diff_vec, + sparc_output_deferred_case_vectors): New functions to output them. + (sparc_emit_set_const32): New function to form 32-bit constants in + registers when that requires more than one instruction. + (safe_constDI, sparc_emit_set_const64_quick1, + sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, + analyze_64bit_constant, const64_is_2insns, + create_simple_focus_bits, sparc_emit_set_const64): New functions + which do the same for 64-bit constants when arch64. + (sparc_emit_set_symbolic_const64): New function to emit address + loading for all code models on v9. + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make + %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0. + (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1. + (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix + inaccuracies in comments, add symbolic and text_segment operands + when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively. Use + GENERAL_REGS in these cases as a temp REG is needed to load these + addresses into a register properly. + (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it + is no longer used. + (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp + quads are guaranteed to have 16-byte alignment. + (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use + copy_to_suggested_reg instead of explicit LO_SUM and HIGH. + (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for + deferred case vector implementation. + (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline. + (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls. + Generate "internal label - label" instead of "label - 1b". + (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID. + (PREDICATE_CODES): Remove sparc_operand, move_operand, + v8plus_regcmp_op. Add small_int_or_double, input_operand, and + zero_operand. + (doublemove_string, output_block_move, output_fp_move_double, + output_fp_move_quad, output_move_double, output_move_quad, + output_scc_insn, singlemove_string, mem_aligned_8, move_operand, + sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs. + (sparc_emit_set_const32, sparc_emit_set_const64, + sparc_emit_set_symbolic_const64, input_operand, zero_operand, + mem_min_alignment, small_int_or_double): Add externs. + * config/sparc/sparc.md: Document the many uses of UNSPEC and + UNSPEC_VOLATILE in this backend. + (define_function_unit ieu): Rename to ieu_unnamed. Add move and + unary to types which execute in it. + (define_function_unit ieu_shift): Rename to ieu0. + (define_function_unit ieu1): New, executes compare, call, and + uncond_branch type insns. + (define_function_units for type fdivs, fdivd, fsqrt): These + execute in the fpu multiply unit not the adder on UltraSparc. + (define_expand cmpdi): Disallow TARGET_V8PLUS. + (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32. + (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it + allows the arith_double_operand predicate and rHI constraint when + TARGET_ARCH64. + (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe, + cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn, + neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn, + sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu, + sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64, + movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64, + movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64, + movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64, + movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn, + cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn, + sign_extendqihi2_insn, sign_extendqisi2_insn, + sign_extendqidi2_insn, sign_extendhidi2_insn, + extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2, + trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2, + floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2, + fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, + adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64, + subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3, + muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus, + const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3, + smulsi3_highpart_v8plus, unnamed subreg mult, + const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32, + const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32, + const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus, + const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32, + const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3, + udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64, + andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3, + or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64, + xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op, + cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not, + cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not, + cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set, + cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg, + cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not, + cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3, + addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3, + muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2, + negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2, + ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1, + cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt, + ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt, + lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32, + call_symbolic_sp32, call_address_sp64, call_symbolic_sp64, + call_address_struct_value_sp32, call_symbolic_struct_value_sp32, + call_address_untyped_struct_value_sp32, + call_symbolic_untyped_struct_value_sp32, call_value_address_sp32, + call_value_symbolic_sp32, call_value_address_sp64, + call_value_symbolic_sp64, branch_sp32, branch_sp64, + flush_register_windows, goto_handler_and_restore, + goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64, + flush, all ldd/std peepholes, return_qi, return_hi, return_si, + return_addsi, return_di, return_adddi, return_sf, all call+jump + peepholes, trap, unnamed trap insns): Prettify output strings. + (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32, + or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2): + Likewise and force + implement splits for integer cases. + (define_insn return_sf_no_fpu): Likewise and allow to match when + no-fpu because of our subreg SFmode splits. + (define_insn zero_extendqihi2, zero_extendqisi2_insn, + zero_extendqidi2_insn, zero_extendhidi2_insn, + zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use + input_operand for second operand. + (cmp_minus_cc, cmp_minus_cc_set): Likewise and use + reg_or_0_operand for operand 2 so new splits can use it. + (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus, + cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0 + too. + (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow + CONST_DOUBLEs for operand 2. + (define_insn move_label_di): Likewise and label distance + optimization because it no longer works with new deferred case + vector scheme. To be revisited. + (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise + and allow reg_or_0_operand and J constraint for second operand. + (define_insn jump): Set branch predict taken on V9. + (define_insn tablejump): Emit LABEL_REF + PLUS memory address for + new deferred case vector scheme. + (define_insn pic_tablejump_32, pic_tablejump_64): Remove. + (define_insn negdi2_sp32): Force + implement splits. + (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and + one_cmplsi2_not_liveg0 respectively, and create expander of original + names which emit special rtl for TARGET_LIVE_G0. + (define_insn cmpdi_v8plus, scc_si, scc_di): Remove. + (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do + gen_compare_reg, FAIL instead. + (define_insn sgtu, sleu): Likewise and check gen_s*() return + values when trying to reverse condition codes, if they FAIL then + do likewise. + (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend, + snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero, + neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero, + seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0, + x_minus_i_eq_0): Add new splits to perform these multi-insn cases, + set output string to # to indicate they are mandatory splits. + (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di, + pic_sethi_di, move_pic_label_si): Remove. + (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic, + movsi_high_pic, movsi_pic_label_reg): New patterns to take their + place. + (define_expand movsi_pic_label_ref, define_insn + movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New + expander and insns to handle PIC label references and deferred + case vectors. + (define_insn get_pc_via_rdpc): Comment out as it is no longer + used. + (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf): + Rewrite to not use emit_move_sequence, make use of new constant + formation code, and new splits for all multi-insn cases. + (define_insn movqi_insn): Remove sethi case, it can never happen. + Use reg_or_zero_operand instead of const0_rtx explicit test, + use input_operand instead of move_operand for source, and use + general_operand now for dest. + (define_insn movhi_insn): Similar but leave sethi case. + (define_insn lo_sum_qi, store_qi, store_hi): Remove. + (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and + movhi_lo_sum respectively, prettify output string. + (define_insn movsi_zero_liveg0): New pattern to put zero into a + register when needed on TARGET_LIVE_G0. + (define_insn movsi_insn): Use general_operand and input_operand + for dest and src respectively. Simplify applicability test. + Prettify output strings, and add clr alternative for J + constraint. + (define_insn movdi_sp32_v9, movdi_sp32, define_splits for + deprecated std and reg-reg DI moves): Remove and... + (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new + implementation which uses forced splits for all non-single insn + cases. + (define_split DI move cases on !arch64): New splits to handle all + situations of 64-bit double register DImode on 32bit, and + unaligned registers and memory addresses for all subtargets. + (define_insn movsf_const_insn, movdf_const_insn, store_sf): + Remove. + (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and + input_operand for dest and src respectively, prettify output + strings. + (define_insn movdf_insn, movdf_no_e_insn, store_df, + movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove + and... + (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32, + movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn, + movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64, + movtf_no_e_insn_sp64): Replace with new + implementation which uses forced splits for all non-single insn + cases. + (define_split DF move cases): New splits in similar vein to DI + move counterparts. + (define_insn sethi_di_medlow, sethi_di_medium_pic, + sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64, + movdi_sp64_insn): Remove old v9 code model and constant loading + support insns and.. + (define_insn pic_lo_sum_di, pic_sethi_di, + sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow, + seth44, setm44, setl44, sethh, setlm, sethm, setlo, + embmedany_sethi, embmedany_losum, embmedany_brsum, + embmedany_textuhi, embmedany_texthi, embmedany_textulo, + embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl, + movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new + scheme, using unspecs, secondary reloads, and one to one sparc + insn to rtl insn mapping for better scheduling and code gen. + (define_expand reload_indi, reload_outdi): Reload helpers for + MEDANY and EMBMEDANY symbol address loading cases which require a + temporary register. + (define_expand movsicc): Remove v8plus_regcmp cases. + (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, + cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc, + cmp_diqi_trunc_set): New patterns used by some of the new scc + splits on arch64. + (define_insn xordi3_sp64_dbl): New pattern used for constant + formation when crossing from 32-bit targets. + (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper + split): Remove. + (define_insn addx, subx): Make visible and prettify. + (define_insn adddi3_insn_sp32): Likewise and force split. + (define_insn addx_extend, subx_extend, unnamed): New patterns for + 64bit scc split usage. + (define_insn unnamed plusDI zero_extend, unnamed minusDI + zero_extend, subdi3): Force and implement splits. + + * final.c (final_scan_insn): Don't output labels if target + specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations + instead. - * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in - last change. + * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end, + don't forget to walk inside SEQUENCESs too as these are what the + delay slot scheduler will create. -Wed Aug 27 01:56:18 1997 Doug Evans <dje@seba.cygnus.com> +Mon Aug 10 01:21:01 1998 Richard Henderson <rth@cygnus.com> - * loop.c (combine_movables): Earlier insns don't match later ones. + * alpha.md (extxl+1,+2): New patterns to work around + combine lossage. -Wed Aug 27 01:24:25 1997 H.J. Lu (hjl@gnu.ai.mit.edu) +Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) - * config/linux.h (CC1_SPEC): Define it only if not defined. + * rs6000.c (rs6000_allocate_stack_space): Fix typo which + caused bad assembly code to be generated. - * config/m68k/linux.h (CC1_SPEC): Undefine it before include - <linux.h> +Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) - * config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if - USE_GNULIBC_1 is not defined. + * netbsd.h: Fix typo. - * config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1. +Mon Aug 3 00:06:42 1998 Robert Lipe <robertl@dgii.com> - * config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined - as 1 if USE_GNULIBC_1 is not defined. + * config.sub: Fix typo. -Wed Aug 27 00:49:14 1997 Jeffrey A Law (law@cygnus.com) +Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson <hp@axis.se> - * reorg.c (dbr_schedule): Allow current_function_return_rtx - to be something other than a REG. - * function.c (expand_function_end): Fix current_function_return_rtx - if it was a pseudo. + * invoke.texi (Environment Variables): Typo: Change "ascpects" + into "aspects". + (Running Protoize): Typo: Change "ther" into "other". - * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - * x-netbsd: Likewise - * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS - (INSTALL_HEADERS): Delete. - * x-dguxbcs: Likewise. - * x-hp3bsd44: Likewise - * x-pa: Likewise. +Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) -Wed Aug 27 00:30:00 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> + * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. + * m68k/netbsd.h: Likewise. + * ns32k/netbsd.h: Likewise. + * sparc/netbsd.h: Likewise. - * i386.md (pop): pop increments the stack pointer. - (prologue_set_stack_ptr): New pattern. - * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr - instead of subsi3. +Sat Aug 1 17:59:30 1998 Richard Henderson <rth@cygnus.com> -Tue Aug 26 18:50:32 1997 Jim Wilson <wilson@cygnus.com> + * ginclude/va-alpha.h (va_list): Use a typedef, not a define. + * ginclude/va-clipper.h (va_list): Likewise. - * reload.c (find_reloads, case '0'): Reject matching a non-offsettable - address where an offsettable address is required. +Fri Jul 31 20:22:02 1998 Michael Meissner <meissner@cygnus.com> -Tue Aug 26 17:54:56 1997 Michael P. Hayes (michaelh@ongaonga.chch.cri.nz> + * rs6000.c (rs6000_override_options): If big endian and -Os, use + load/store multiple instructions unless user overrides. - * loop.c (check_final_value): Don't miss a biv increment in a - parallel. +Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) -Tue Aug 26 12:03:49 1997 Jim Wilson (wilson@cygnus.com) + * ns32k/netbsd.h: Fix typo. - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check - TYPE_DECL_IS_STUB instead of DECL_NAME. +Fri Jul 31 10:23:55 1998 Doug Evans <devans@canuck.cygnus.com> -Mon Aug 25 23:27:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number + labels with .debugsym if no parallel insns. - * objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj. +Thu Jul 30 19:15:53 1998 Richard Henderson <rth@cygnus.com> -Mon Aug 25 23:27:10 1997 Jim Meyering <meyering@eng.ascend.com> + * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. + (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. - * objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES). +Thu Jul 30 19:50:15 1998 David Edelsohn <edelsohn@gnu.org> -Mon Aug 25 13:12:24 1997 Jeffrey A Law (law@cygnus.com) + * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. + (AR_FOR_TARGET): Define. - * haifa-sched.c (find_pre_sched_live): Remove #if 0 code. - (find_post_sched_live): Likewise. +Thu Jul 30 12:29:12 1998 Mark Mitchell <mark@markmitchell.com> - * haifa-sched.c (schedule_block): Remove old code to get arguments - from hard regs into pseudos early. + * 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): List dependencies. + * dwarf2out.c: Include dyn-string.h. + (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 Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) +Thu Jul 30 13:08:07 1998 Ken Raeburn <raeburn@cygnus.com> + + Function entry/exit profiling instrumentation: + * expr.h (profile_function_entry_libfunc, + profile_function_exit_libfunc): Declare new variables. + * optabs.c: Define them here. + (init_optabs): Initialize them. + * tree.h (struct tree_decl): New flag + no_instrument_function_entry_exit. + (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro. + * c-decl.c (duplicate_decls): Merge it. + * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION. + (init_attributes): Use it for "no_instrument_function". + (decl_attributes): Handle it, for functions that have not yet been + compiled. Set decl flag. + * flags.h (flag_instrument_function_entry_exit): Declare new + variable. + * toplev.c (flag_instrument_function_entry_exit): Define it here. + (f_options): New option "instrument-functions". + * function.h (struct function): New field instrument_entry_exit. + * function.c (current_function_instrument_entry_exit): New + variable. + (push_function_context_to, pop_function_context_from): Save and + restore. + (expand_function_start): Set current_ variable, maybe emit return + label and entry profile call. + (expand_function_end): Maybe emit exit profile call. - * version.c: Bump for new snapshot. +Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) - * local-alloc.c (update_equiv_regs): All the target to reject - promotion of some REG_EQUAL to REG_EQUIV notes. - * pa.h (DONT_RECORD_EQUIVALENCE): Define. + * i386.md (movqi): When optimizing a load of (const_int 1) into a + NON_QI_REG_P, pretend the register is SImode. - * pa.c (secondary_reload_class): (mem (mem ... )) does not need - secondary reloads. +Wed Jul 29 23:49:23 1998 Todd Vierling <tv@netbsd.org> - * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the - store of the argument registers. + * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist). + Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any + manufacturer id for ns32k. + * configure: Regenerated. + * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too. + * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc. + * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0. + * config/m68k/netbsd.h: Same. + * config/ns32k/netbsd.h: Same. + * config/sparc/netbsd.h: Same. -Mon Aug 25 08:39:02 1997 Craig Burley (burley@gnu.ai.mit.edu) +Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) - * fold-const.c (multiple_of_p): New function. - (fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR. + * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO + or UNROLL_COMPLETELY loop that starts with a jump to its + exit code. -Mon Aug 25 01:47:41 1997 Jeffrey A Law (law@cygnus.com) +Wed Jul 29 22:18:14 1998 David Edelsohn <edelsohn@gnu.org> - * expr.h (insn_gen_function): Temporarily remove prototype. + * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS. + * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT. + (print_operand, case 'B'): Don't fall through. + (print_operand, case 'S'): Correct mask begin/end computation. + Use HOST_BITS_PER_WIDE_INT. + * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG. + (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT. + * rs6000/aix41.h (CPP_PREDEFINES): Same. + * rs6000/aix43.h (CPP_PREDEFINES): Same. -Sun Aug 24 17:22:21 1997 Jim Wilson <wilson@cygnus.com> +Wed Jul 29 11:47:10 1998 Nick Clifton <nickc@cygnus.com> - * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to - filenames. Use sed to extract base filename for install. + * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber + constraint from second alternative. -Sat Aug 23 18:19:40 1997 John F. Carr <jfc@mit.edu> +Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> - * unroll.c (find_splittable_givs): Only share if two givs have the - same add and multiply values. + * configure.in: Fix --without/--disable cases for local-prefix, + gxx-include-dir and checking. -Sat Aug 23 14:36:27 1997 Jim Wilson <wilson@cygnus.com> +Tue Jul 28 22:01:23 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. - * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. + * configure.in (enable_haifa): Set by default for sparc64 too. + configure: Rebuilt. -Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) +Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> - * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns - around branch tables. - * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab - and .end_brtab directives if TARGET_GAS. + * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro. + * 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. -Fri Aug 22 14:05:55 1997 Jim Wilson <wilson@cygnus.com> + From Antonio M. O. Neto <anmendes@cruzeironet.com.br>: + * i386.c (i386_valid_type_attribute_p): Also accept + attributes for METHOD_TYPEs. - * alias.c (true_dependence): Pass x_addr not x to varies. +Tue Jul 28 23:17:39 1998 Peter Gerwinski <peter@gerwinski.de> - * acconfig.h (NEED_DECLARATION_CALLOC): Add. - * configure.in: Add GCC_NEED_DECLARATION call for calloc. - * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete - declarations. - * config.in, configure: Regenerate. + * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. -Thu Aug 21 23:52:16 1997 John F. Carr <jfc@mit.edu> +Tue Jul 28 22:31:12 1998 Craig Burley <burley@gnu.org> - * alias.c (find_base_value): Improve handling of PLUS, MINUS, and - LO_SUM. - (record_set): Handle LO_SUM like PLUS. - (init_alias_analysis): When following chains of base addresses, - do not stop on reaching a hard register. + * gcc.c: Fix commentary describing %g, %u, %U, and %O. -Thu Aug 21 20:17:37 1997 Jeffrey A Law (law@cygnus.com) + * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent + them from generating a new base name for each occurrence of + a specific suffix. - * version.c: Bump for new snapshot. +1998-07-28 Vladimir N. Makarov <vmakarov@cygnus.com> -Thu Aug 21 17:28:00 1997 Jim Wilson <wilson@cygnus.com> + * cse.c (cse_insn): Enable substitution inside libcall only for REG, + SUBREG, MEM. + * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. - * alpha.h (ARCH_ASM_FILE_START): Define. - (ASM_FILE_START): Use ARCH_ASM_FILE_START. - * osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string. + * cplus-dem.c (type_kind_t): New type. + (demangle_template_value_parm): Add type_kind_t parameter. Rely + on this parameter, rather than demangling the type again. + (demangle_integral_value): Pass tk_integral. + (demangle_template_: Pass the value returned from do_type. + (do_type): Return a type_kind_t. Pass tk_integral to + demangle_template_value_parm for array bounds. + (demangle_fund_type): Likewise. -Thu Aug 21 10:22:19 1997 Jeffrey A Law (law@cygnus.com) +Mon Jul 27 00:54:41 1998 Jason Merrill <jason@yorick.cygnus.com> - * Makefile.in (install-common): Put gcov comment at start of line. + * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are + identical. -Wed Aug 20 22:47:33 1997 Jeffrey A Law (law@cygnus.com) +Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) - * alias.c (init_alias_analysis): When simplifying the reg_base_value - array, simplify entries for hard registers too. + * pa.c (move_operand): Accept CONSTANT_P_RTX. -Wed Aug 20 12:35:47 1997 Dave Love <d.love@dl.ac.uk> +Mon Jul 27 17:18:52 1998 Dave Brolley <brolley@cygnus.com> - * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from - list. + * stor-layout.c (layout_type): Handle arrays of bits, for Chill. -Wed Aug 20 11:58:33 1997 Jim Wilson <wilson@cygnus.com> + * expr.c (get_inner_reference): Handle zero-based, unsigned, array + index conversion. - * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test - block_stack before dereferencing it. +Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) -Wed Aug 20 11:57:11 1997 Michael Meissner <meissner@cygnus.com> + * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. + (DEBUGGER_ARG_OFFSET): Likewise. - * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. + * mn10300.md (movsf): Remove last change. Not needed. -Tue Aug 19 17:10:56 1997 Jason Merrill <jason@yorick.cygnus.com> +Mon Jul 27 14:22:36 1998 Dave Brolley <brolley@cygnus.com> - * cplus-dem.c: Add 'extern' to prepends_underscore. + * c-lex.c (yylex): Fix boundary conditions in character literal and + string literal loops. -Tue Aug 19 09:34:57 1997 Jeffrey A Law (law@cygnus.com) +Mon Jul 27 11:43:54 1998 Stan Cox <scox@cygnus.com> - * haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate. - (get_issue_rate): Delete. - * pa.h (ISSUE_RATE): Define. + * longlong.h (count_leading_zeros): Sparclite scan instruction was + being invoked incorrectly. - * configure.in: Turn on haifa by default for the PA. + * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation. + * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): + Add -pg support. + * i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration. + * configure.in: Added i[34567]86-*-win32. + * config.sub: Likewise. * configure: Rebuilt. - * pa.c (override_options): Accept -mschedule=7200 option. - (pa_adjust_cost): No longer need to scale costs for newer - processors. - * pa.h (enum processor_type): Add PROCESSOR_7200. - * pa.md: Revamp scheduling parameters to work better with - haifa. Add scheduling parameters for the 7200. - * haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P - insns too. - (schedule_block): When adjusting basic_block_{head,end}, account - for movement of SCHED_GROUP_P insns too. +Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) + + * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating + the frame pointer and compiling PIC code and reload has not completed. + + * i386.c (output_to_reg): Add code to emulate non-popping DImode + case. + +Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) - * haifa-sched.c (debug_dependencies): Fix thinko. + * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. - * Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define. - (site.exp, check, check-g++, check-gcc): New targets. +Sat Jul 25 23:29:23 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - * haifa-sched.c: Make lots of variables static. + * Makefile.in (install-info): Only try to update the info + directory file if it exists in the first place. -Tue Aug 19 07:18:34 1997 H.J. Lu (hjl@gnu.ai.mit.edu) +Fri Jul 24 18:58:37 1998 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> - * expr.h, real.h: Finish prototyping. + * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. -Mon Aug 18 21:49:02 1997 Jim Wilson <wilson@cygnus.com> +Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) - * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR - reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. - * reload1.c: Undo bugfix from Aug 11. + * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle + CONST_DOUBLE source. -Mon Aug 18 17:39:02 1997 Mike Meissner <meissner@cygnus.com> +Fri Jul 24 11:17:04 1998 Nick Clifton <nickc@cygnus.com> - * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single - quotes around the name. - * configure: Regenerate. + * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm + strings as the insertion of USER_LABEL_PREFIX. + * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a + valid code. + * config/arm/thumb.md: Use %_ as a prefix to gcc library function + calls. + +Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com> -Mon Aug 18 13:46:47 1997 Jim Wilson <wilson@cygnus.com> + * dbxout.c (dbxout_range_type): Only call dbxout_type_index for + already defined type. - * Makefile.in (stmp-multilib-sub): Fix typo in last change. +Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) -Thu Aug 7 10:33:13 1997 Manfred Hollstein <manfred@s-direktnet.de> + * expr.c (check_max_integer_computation_mode): Allow conversions + of constant integers to MAX_INTEGER_COMPUTATION_MODE. + (expand_expr): Likewise. - * Makefile.in (sub-makes): Pass the current value of LANGUAGES down - to sub-makes to avoid building more passes than the user might have - requested on the command line. +Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> -Sun Aug 17 15:42:17 1997 Dave Love (d.love@dl.ac.uk) + * expr.c (expand_expr): Expand RETURN_EXPR. - * configure.in: Expurgate `broken_install' (install is - autoconfed). +Thu Jul 23 11:00:29 1998 Jim Wilson <wilson@cygnus.com> - * configure.lang: Substitute autoconfed ${INSTALL} (not currently - relevant). + * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. -Sat Aug 16 01:08:12 1997 Jeffrey A Law (law@cygnus.com) +Wed Jul 22 19:10:00 1998 Catherine Moore <clm@cygnus.com> - * loop.c (is_power_of_2, is_conditional_branch): Delete unused - functions and declarations. - (analyze_loop_iterations): Use condjump_p. - (insert_bct): Likewise. Use exact_log2. + * dwarf2out.c (output_aranges): Call stripattributes + for TEXT_SECTION references. + (output_line_info): Likewise. -Fri Aug 15 23:48:32 1997 Jeffrey A Law (law@cygnus.com) +Wed Jul 22 14:08:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - * haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed. - (schedule_region): Likewise. - (schedule_insns): Likewise. + * profile.c (branch_prob): Call allocate_reg_info after outputting + profile rtl in instrument_arcs. - * PROJECTS: Update with Haifa stuff. +Wed Jul 22 12:47:49 1998 Jim Wilson <wilson@cygnus.com> -Fri Aug 15 12:49:56 1997 Jeffrey A Law (law@cygnus.com) + * fixinc.irix (math.h): Install wrapper instead of copying. - * version.c: Change the version string to look like: - egcs-2.90.00 970814 (gcc2-970802 experimental). +Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - * loop.c (is_conditional_branch): Make definition match declaration. + * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression + so WFL are expanded correctly when contained in a COMPOUND_EXPR. + * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use + lang_flag_0. Added documentation in the flag table. - * gcc.c: Take out experimental snapshot warning message. +Tue Jul 21 23:28:35 1998 Klaus Kaempf <kkaempf@rmi.de> -Fri Aug 15 13:43:39 1997 Michael Meissner <meissner@cygnus.com> + * cccp.c (do_include): Fix vax c style include handling. - * haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to - print out the names of the notes. Print out the name of the insn - that is not a note, and not an {,CALL_,JUMP_}INSN. +Tue Jul 21 13:28:19 1998 Jason Merrill <jason@yorick.cygnus.com> -Wed Aug 13 17:32:38 1997 Jason Merrill <jason@yorick.cygnus.com> + * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. +Sun Jul 12 01:27:05 1998 Jason Merrill <jason@yorick.cygnus.com> -Wed Aug 13 01:03:37 1997 Doug Evans <dje@canuck.cygnus.com> + * fold-const.c (non_lvalue): Don't deal with null pointer + constants here. + (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - * configure.in (haifa configury): Fix typo. - * configure: Regenerate. +Tue Jul 21 15:49:31 1998 David Edelsohn <edelsohn@gnu.org> -Tue Aug 12 10:20:36 1997 Jeffrey A Law (law@cygnus.com) + * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX. + * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX. + * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX. + (u_short_cint_operand): Same. + (reg_or_cint_operand): Same. + (logical_operand): Same. + (input_operand): Same. + (reg_or_short_operand): Use u_short_cint_operand. - * version.c: Bump version to "gcc-3.0.0 970802 experimental". +Tue Jul 21 08:56:42 1998 Richard Henderson <rth@cygnus.com> - * gcc.info*: Rebuilt. + * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands, + but keep the insns and splits. Adjust so when the ultimate destination + is memory, use cvtql. - * COPYING.g77, README.g77: New files. - * real.c (ereal_unto_float, ereal_unto_double): New functions. - * real.h (ereal_unto_float, ereal_unto_double): Declare them. - (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define. +Tue Jul 21 08:55:09 1998 Richard Henderson <rth@cygnus.com> -Mon Aug 11 14:50:55 1997 Jeffrey A Law (law@cygnus.com) + * flow.c (regno_uninitialized): Fixed regs are never uninitialized. - * Integrate Haifa instruction scheduler. - * Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS. Prefix all references - to sched with $(SCHED_CFLAGS. - * configure.in: Handle --enable-haifa. +Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) + + * gcc.c (do_spec): Call "error" not "warning". + + * configure.in: Fix minor problems with gas feature detection code. * configure: Rebuilt. - * flags.h: Add new flags for haifa instruction scheduler. - * genattrtab.c (expand_units): For haifa, don't subtract one - when computing blockage. - * toplev.h (flag_schedule_interblock): Haifa scheduler flag. - (flag_schedule_speculative): Ditto. - (flag_schedule_speculative_load): Ditto. - (flag_schedule_speculative_load_dangerous): Ditto. - (flag_schedule_reverse_before_reload): Ditto. - (flag_schedule_reverse_after_reload): Ditto. - (flag_branch_on_count_reg): Ditto. - (f_options): Add Haifa switches. - (main): Turn off some Haifa options if appropriate macro is - defined. Process Haifa switches. - * unroll.c (iteration_info): No longer static, since Haifa - scheduler uses it. - (unroll_loop): Inform HAIFA scheduler about loop unrolling factor. - * unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value. - * loop.h (loop_unroll_factor, loop_number): Add HAIFA decls. - * loop.h (loop_initial_value,loop_unroll_iter): New globals. - * loop.c (loop_optimize): If HAIFA is defined, allocate additional - storage for the Haifa scheduler. - (mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and - LABEL_NEXTREF. - (strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count - are defined, call analyze_loop_iterations and insert_bct to use - countdown loops. - (record_giv): Refine test for jumps out of loops if HAIFA is - defined. - (analyze_loop_iterations): New function to identify if we can use - a countdown loop. - (insert_bct): Insert countdown loop. - (instrument_loop_bct): Low level code to insert countdown loop. - (loop_number): Calculate UID of loop. - (indirect_jump_in_function_p): Return true if an indirect jump is - in the function. - (is_power_of_2): Return true if value is a power of 2. - (is_conditional_branch): Return true if insn is a conditional - jump. - (fix_bct_param): Process -fbct-{min,max}-N switches. - (check_bct_param): Return true if loop should be instrumented. - * loop.c (loop_initial_value,loop_unroll_iter): New globals. - (loop_optimize): Initialize. - (get_condition_for_loop): Ditto. - * loop.c (strength_reduce): Inside of code that uses #ifdef - HAVE_decrement_and_branch_on_count code, test it to make sure the - condition is true. - (instrument_loop_bct): Ditto. - * haifa-sched.c: New file. - - - * Integrate regmove pass. - * Makefile.in (OBJS): Add regmove.o - (regmove.o): Add dependencies. - * flow.c (find_use_as_address): No longer static. - * rtl.h (find_use_as_address): Declare. - * toplev.c (regmove_dump, flag_regmove): Define. - (f_options): Add -fregmove. - (regmove_dump_file, regmove_time): Define. - (fatal_insn): Close the regmove dump file. - (compile_file): Initialize regmove_time; open/close the regmove dump - file as needed. Print regmove time as needed. - (rest_of_compilation): Run regmove pass if requested, dump - RTL after regmove if requested. - (main): If -O2 or more, turn on regmove. Handle dump switches. - * regmove.c: New file. - -Mon Aug 11 14:15:02 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate tlink patch from jason@cygnus.com - * gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'. - (process_command): Increment n_switches for them. Don't discard - their args. Validate them. - (main): Escape " marks when creating COLLECT_GCC_OPTIONS. - From Rohan Lenard. - (process_command): Set include_prefixes from COMPILER_PATH. - (main): Set COLLECT_GCC_OPTIONS sooner. - * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld. - * tlink.c, hash.c, hash.h: New files. - * Makefile.in (USE_COLLECT2): Always use collect2. - (collect2): Depend on and link in hash.o and tlink.o. - (tlink.o, hash.o): Add dependencies. - -Mon Aug 11 10:04:49 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate alias analysis changes from jfc@mit.edu - * Makefile.in (OBJS): Add alias.o - (alias.o): Add dependencies. - * alias.c: New file. - * sched.c: Remove alias analysis code. It lives in alias.c now. - (sched_analyze_2): Add new arguments to true_dependence. - (schedule_insns): Always call init_alias_analysis. - * calls.c (expand_call): Note calls to malloc, calloc, and realloc; - mark return value from such functions as a pointer and keep track of - them for alias analysis. If a return value from a function is a - pointer, mark it as such. - * combine.c (distribute_notes): Handle REG_NOALIAS. - * cse.c (struct write_data): Delete. No longer needed. - (invalidate): Don't call set_nonvarying_address_components anymore. - Use true_dependence to decide if an entry should be removed from - the hash table. - (invalidate_memory): Remove WRITES argument, simplify appropriately. - Fix all callers. - (note_mem_written): Similarly for WRITE_PTR argument. - (invalidate_from_clobbers): Similarly for W argument. - (invalidate_for_call): Remove memory elements from the hash table. - (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. - (cse_rtx_varies_p): New function. Derived from old - cse_rtx_addr_varies_p. - (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. - Don't call note_mem_written anymore. Stack pushes invalidate the stack - pointer if PUSH_ROUNDING is defined. No longer need to call - cse_rtx_addr_varies_p to decide if a MEM should be invalidated. - (skipped_writes_memory): Remove variable. - (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. - (invalidate_skipped_block): Simplify for new alias analysis code. - (cse_set_around_loop): Likewise. - (cse_main): Call init_alias_analysis. - * flags.h (flag_alias_check, flag_argument_noalias): Declare. - * toplev.c (flag_alias_check, flag_argument_noalias): Define. - (f_options): Add new alias checking arguments. - (main): Set flag_alias_check when optimizing. - * local_alloc (validate_equiv_mem_from_store): Add new arguments - to true_dependence. - (memref_referenced_p): Likewise. - * loop.c (NUM_STORES): Increase to 30. - (prescan_loop): Only non-constant calls set unknown_address_altered. - (invariant_p): Add new arguments to true_dependence. - (record_giv): Initialize unrolled and shared fields. - (emit_iv_add_mult): Call record_base_value as needed. - * loop.h (struct induction): Add unrolled and shared fields. - * unroll.c (unroll_loop): Call record_base_value as needed. - (copy_loop_body): Likewise. - (final_biv_value): Likewise. - (final_giv_value): Likewise. - (find_splittable_regs): Likewise. Only create one new pseudo - if we have multiple address GIVs that were combined with the same - dst_reg GIV. Note when a new register is created due to unrolling. - * rtl.c (reg_note_name): Add REG_NOALIAS. - * rtl.h (enum reg_note): Similarly. - (rtx_varies_p, may_trap_p, side_effects_p): Declare. - (volatile_refs_p, volatile_insn_p, remove_note): Likewise. - (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. - (true_dependence, read_dependence, anti_dependence): Likewise. - (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. - (mark_user_reg, mark_reg_pointer): Likewise. - - - * Integrate reload bugfix from Wilon which enables the PA port - to bootstrap again. - * reload1.c (reload): Sum needs for both OPADDR_ADDR and - OPERAND_ADDRESS when computing how many registers an insn needs. - (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do - conflict. - (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like - OPADDR_ADDR reload. - (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers - in reload_reg_use_in_op_addr do not reach the end. - do not reach the end. - (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with - RELOAD_FOR_OPERAND_ADDRESS. - -Sun Aug 10 12:00:20 1997 Jeffrey A Law (law@cygnus.com) - - * egcs project officially starts. + + * gcc.c (do_spec): Issue a warning for '%[]' usage. + + * Undo this change. + * gcc.c: Delete %[spec] support. + (do_spec_1, case '('): Likewise. + (do_spec_1, case '['): Call error. + +Mon Jul 20 22:34:17 1998 Richard Henderson <rth@cygnus.com> + + * alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget. + (CPP_SUBTARGET_SPEC): Default to empty string. + (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New. + (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New. + * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker). + * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New. + (LIB_SPEC): Tidy. + * alpha/linux.h (CPP_PREDEFINES): Tidy. + * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New. + * alpha/netbsd.h (CPP_PREDEFINES): Tidy. + * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC. + * alpha/win-nt.h (CPP_PREDEFINES): Likewise. + * alpha/vsf.h (CPP_PREDEFINES): Likewise. + (CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC. + * alpha/vxworks.h: Likewise. + +Mon Jul 20 22:51:57 1998 Ken Raeburn <raeburn@cygnus.com> + + * mips.md (reload_outsi): Added missing REGNO call. + (smulsi3_highpart, umulsi3_highpart): Provide prototype for + function pointer. + (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use + another match_operator and compare the codes. + + * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. + + * MIPS multiply pattern fixes: + * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add union classes for HI, LO, or HILO plus general registers. + (GENERATE_MADD): Deleted. + * mips.md (mulsi3_mult3): Don't disparage output-LO alternative. + Add TARGET_MAD to condition. + (mulsi3): Test HAVE_mulsi3_mult3, not specific flags. + (mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use + "*d" for accumulator, to give preference to LO initially but not + during reload. + +Mon Jul 20 16:16:38 1998 Dave Brolley <brolley@cygnus.com> + + * configure.in (enable_c_mbchar): New configure option. + (extra_cpp_objs): Always available now. + + * 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): See above. + (validate_else): See above. + (skip_to_end_of_comment): See above. + (macarg1): See above. + (discard_comments): See above. + (rescan): Handle multibyte characters in string and character literals. + (collect_expansion): See above. + (skip_quoted_string): See above. + (macroexpand): See above. + (macarg1): See above. + (discard_comments): See above. + (change_newlines): See above. + + * 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 literals. + (yylex): Handle multibyte characters in string literals. + + * Makefile.in (mbchar.o): New target. + (cccp$(exeext)): @extra_cpp_objs@ is always available. + (cppmain$(exeext)): @extra_cpp_objs@ is always available. + + * mbchar.[ch]: New files for multibyte character handling. + +Mon Jul 20 01:11:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> + + * jump.c (jump_optimize): When simplifying noop moves and + PUSH_ROUNDING, fix thinko so we use same criterion for identifying + the PUSHes to rewrite in second loop as we did in the first. + +Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cplus-dem.c (demangle_nested_args): Make function definition + static to match the prototype. + +Fri Jul 17 14:58:44 1998 Richard Henderson <rth@cygnus.com> + + * alloca.c: Respect USE_C_ALLOCA. + * gencheck.c (xmalloc): Ignore __GNUC__ for definition. + * gengenrtl.c (xmalloc): Likewise. + +Fri Jul 17 14:18:14 1998 Richard Henderson <rth@cygnus.com> + + * loop.h (struct induction): Add no_const_addval. + * loop.c (the_movables, reg_address_cost): New variables. + (init_loop): Init reg_address_cost. + (loop_optimize): Call end_alias_analysis. + (scan_loop): Init the_movables. + (record_giv): Init induction->no_const_addval. + (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==. + [REG]: Rearrange loop search test to catch more cases. + (general_induction_var): Return success not benefit; take an extra + argument for that. Change all callers. + (simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus. + [MULT]: Use rtx_equal_p instead of ==. Combine simple invariants. + [default]: Search the_movables for additional combinations. + (sge_plus_constant, sge_plus): New functions. + (express_from_1): New function. + (express_from): Always define. Rewrite using express_from_1. + (combine_givs_p): Handle more cases. Ignore address cost. + (cmp_combine_givs_stats): New function. + (combine_givs_used_once, combine_givs_benefit_from): New functions. + (combine_givs): Rewrite to do best-fit combination. + + * fold-const.c (operand_equal_p): Handle RTL_EXPR. + (fold): Do a complete (A*C)+(B*C) association check. + +Fri Jul 17 11:21:55 1998 Jim Wilson <wilson@cygnus.com> + + * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. + +Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (MODES_TIEABLE_P): Fix typo. + +Fri Jul 17 03:26:12 1998 Rihcard 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 14:48:04 1998 Nick Clifton <nickc@cygnus.com> + + * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have + a suffix. + +Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson <hp@axis.se> + + * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may + be deleted" + +Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. + Simplify tests for clearing an address register. + (expand_prologue): Corresponding changes. + + * mn10300.md (movXX patterns): Make sure the destination is an + ADDRESS_REG when substituting "zero_areg" for (const_int 0). + (logical patterns): Split into expanders + patterns. + (zero and sign extension patterns): Similarly. + (shift patterns): Similarly. + +Thu Jul 16 01:17:44 1998 Richard Henderson <rth@cygnus.com> + + * loop.c (emit_iv_add_mult): Scan the entire insn list generated + for the sequence, recording base values. + +Wed Jul 15 10:49:55 1998 Richard Henderson <rth@cygnus.com> + + * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). + +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. + +Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: Rework gas feature code to work with symlink based + source trees. + + * extend.texi: Clarify some issues related to local variables + assigned to explicit registers. + + * mn10300.md (mulsi): Turn into expander + pattern. + + * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a + alternative. + +Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. + +Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump again to distinguish mainline tree from the + egcs-1.1 branch. + +See ChangeLog.0 for earlier changes. Local Variables: add-log-time-format: current-time-string |