OSDN Git Service

* reorg.c (try_merge_delay_insns): Account for resources referenced
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7260115..44721e7 100644 (file)
@@ -1,3 +1,377 @@
+Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
+
+       * 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.
+
+        * 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.
+
+Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * 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.
+
+Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * 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 Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
+
+       * 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.
+
+Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
+
+       * 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.
+
+Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
+       and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
+
+Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
+
+        * toplev.c:  Fix last patch.
+
+Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * loop.c (get_condition): Fix typo in May 9 change.
+
+Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * invoke.texi (-fexceptions): Merge 2 different descriptions.
+
+Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * toplev.c (documented_lang_options): Spelling corrections.
+
+Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * 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: ditto
+       * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
+       * config.in: ditto
+       * 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
+
+       * gcc.c (find_a_file): the test for existence of a full
+       pathname was reversed
+
+Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
+
+       * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
+       * rs6000.c (output_mi_thunk): Always use a raw jump for now.
+
+Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
+
+       * tree.h (TYPE_BINFO): Document.
+
+Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
+
+       * i386-coff.h (dbxcoff.h): Added.
+
+Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
+
+        * toplev.c:  fix bad patch around flag_data_sections.
+
+Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * 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).
+
+Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
+
+       * 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.
+
+Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
+        * 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.
+Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
+
+       * invoke.texi (-ffloat-store): Clarify that this option
+       does not affect intermediate results -- only variables.
+
+Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * cpp.texi: Update for Fortran usage from Craig.
+
+Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (function_arg_boundary): Revert accidental change on
+       September 18.
+
+Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
+
+       * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
+       (output_mi_thunk): Declare.
+
+       * 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.
+       
+Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
+
+Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.c (gen_shl_sext): Fix case 5.
+
+Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload1.c (reload_combine): Re-add line that got accidentally lost.
+
+Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
+       accessing variables until they are initialized via va_arg().
+
+Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
+
+       * reload1.c (reload_combine): Initialize set before using.
+
+Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * sdbout.c (sdbout_field_types): Don't emit the types of fields we
+       won't be emitting.
+
+Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
+       operand3 with mask before using it.  Patch provided by Jim Wilson.
+
+Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
+
+       * 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.
+
+Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (sqrtsf2): Fix mode of sqrt.
+
+Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * 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.
+
+Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * 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.
+
+Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
+       reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
+
+       Properly keep track of first RELOAD_FOR_X_ADDRESS also for
+       more than 3 such reloads.
+
+       If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
+       RELOAD_FOR_X_ADDR_ADDR reload.
+
+Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * 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.
+
+       * cse.c (cse_insn): When we are about to change a register,
+       remove any invalid references to it.
+
+       (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.
+
+Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.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.
+
+Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
+
+       * 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 approriately 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.
+       
+Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.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.
+
+Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@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.
+
+       * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
+
+Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
+
+       * 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.
+
+Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm.c (find_barrier): Revert change of Apr 23.  Handle table
+       jumps as a single entity, taking into account the size of the
+       table.
+
+Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * tree.def (SWITCH_EXPR): New tree node definition.
+
+Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
+       NetBSD.
+
+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 EDT 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
+
+       * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
+       typo in no-fancy-math-387 description.
+
+Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
 
        * i386-coff.h (DBX_DEBUGGING_INFO): Added.