OSDN Git Service

* collect2.c (main): Do prelimnary link on AIX if rflag.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dfe8f96..d609d0f 100644 (file)
@@ -1,8 +1,286 @@
+Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
+
+       * collect2.c (main): Do prelimnary link on AIX if rflag.
+
+Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
+
+        * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
+        __CTOR_LIST__ in opposite order, which is the correct order for sorted
+        constructors.
+        (__do_global_dtors): similarly for __DTOR_LIST__.
+
+Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+                               Diego Novillo <dnovillo@cygnus.com>
+
+       * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
+       FPUL_REGS.
+
+Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
+
+       * fixincl/*: Merged "no_bogosity" branch
+       * fixincl/fixlib.h: protect against doubly defining t_bool
+       * fixincl/server.h: protect against doubly defining t_bool
+
+Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * genoutput.c: Include toplev.h.
+
+Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
+       Undef.
+       * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
+       * configure: Regenerate.
+
+Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
+
+       * gcse.c (delete_null_pointer_checks): Returns void.
+
+Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
+       * emit-rtl.c (copy_insn_1): Likewise.
+
+Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/mips/mips.c (mips_build_va_list): Correct
+       TREE_CHAIN setting when hard-float.
+       (mips_va_start): Use corrected setting.
+       (mips_va_arg): Likewise.  Also pass a tree to build of
+       POSTINCREMENT_EXPR rather than a naked 'int'.
+
+Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
+
+       * ggc.h (ggc_push_context): Fix comment.
+       (ggc_pop_context): Likewise.
+       (mark_string_if_gcable): Likewise.
+       * ggc-common.c (ggc_mark_rtx_children): Use
+       ggc_mark_string_if_gcable.
+       * ggc-page.c (ggc_lookup_page_table): New function.
+       (ggc_allocated_p): Likewise.
+       (mark_obj): Fix formatting.
+       (ggc_mark_string_if_gcable): New function.
+       * ggc-simple.c (ggc_allocated_strings): New variable.
+       (ggc_strings_used): Likewise.
+       (ggc_compare_addresses): New function.
+       (ggc_pop_context): Pop the `any' memory too.
+       (ggc_mark_string_if_gcable): New function.
+       (ggc_collect): Initialize and tear down ggc_allocated_strings.
+       
+Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
+       (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
+       * rs6000.c (expand_block_move): Match movstrsi_?reg register
+       changes.
+
+Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
+
+       * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
+       (sched_reg_live_length, sched_reg_basic_block): Delete.
+       (current_block_num, bb_live_regs, old_live_regs): Delete.
+       (dead_notes, struct sometimes): Delete.
+       (sched_note_set, birthing_insn_p): Delete.
+       (adjust_priority): Gut useless reg lifetime code.
+       (create_reg_dead_note, attach_deaths): Delete.
+       (attach_deaths_insn, new_sometimes_live): Delete.
+       (finish_sometimes_live): Delete.
+       (find_pre_sched_live, find_post_sched_live): Delete.
+       (update_reg_usage): Delete.
+       (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
+       (schedule_insns): Delete reg lifetime code.
+       (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
+       (unlink_other_notes): Adjust REG_NOTE commentary.
+       (reemit_notes): Use REG_SAVE_NOTE.
+       (schedule_block): Likewise.
+       (schedule_region): Allocate bitmap of blocks in region.  Use
+       count_or_remove_death_notes.  Use update_life_info.
+
+       * rtl.h (REG_SAVE_NOTE): New.
+       * rtl.c (reg_note_name): Update.
+       
+Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
+
+       * combine.c (refresh_blocks, need_refresh): New.
+       (combine_instructions): Allocate refresh_blocks.  Invoke
+       update_life_info if needed.
+       (distribute_notes): Mark refresh_blocks instead of installing
+       USE insns.
+       * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
+       * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
+
+       * Makefile.in (recog.o): Depend on basic-block.h.
+
+Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
+
+       * genrecog.c (add_to_sequence): Thinko last change: delete
+       shadowing allow_const_int variable.
+
+Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
+       __GNUC__ and __GNUC_MINOR__.
+
+       * gansidecl.h: Likewise.
+
+       * rtl.c: Likewise.
+       
+       * rtl.h: Likewise.
+
+       * toplev.h: Likewise.
+
+       * tree.c: Likewise.
+
+       * tree.h: Likewise.
+
+       * varray.c: Likewise.
+
+       * varray.h: Likewise.
+
+Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
+       use one before a jump table.
+
+       * rtl.def (ADDRESS): Change documentation to match reality.
+       * md.texi: Don't document it.
+       * gmicro.md (load address pattern): Use 'p' constraint, delete use
+       of ADDRESS rtx.
+
+       * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
+
+Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
+
+       * genrecog.c (add_to_sequence): Move allow_const_int test outside
+       known predicate block; default allow_const_int true.
+       (debug_decision_list): New.
+
+Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
+
+       * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
+
+Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
+
+        * gcse.c (gcse_main): Avoid global optimizations if we have a
+        large number of basic blocks and the ratio of edges to blocks
+        is high.
+        (delete_null_pointer_checks): Likewise.
+
+Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
+
+       * c-common.c (check_format_info): Warn if format string isn't a
+       string literal.
+
+Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
+
+       * configure.in (arm*-*-*): Don't let autoconf remove brackets
+       * configure: regenerate
+
+Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
+       If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
+       (peepholes): Re-enable.
+
+Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
+
+       * Makefile.in (flow.o): Depend on TREE_H.
+       * basic-block.h (REG_SET_EQUAL_P): New.
+       (XOR_REG_SET): New.
+       (n_edges): Declare.
+       (free_regset_vector): Remove declaration.
+       (flow_delete_insn_chain): Declare.
+       (enum update_life_extent): New.
+       (update_life_info, count_or_remove_death_notes): Declare.
+       * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
+       Verify register live at bb->global_live_at_start before adding USE.
+       * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
+       (CLEAN_ALLOCA): New.
+       (n_edges): New. 
+       (PROP_*): New flags.
+       (find_basic_blocks_1): Use alloc_EXPR_LIST.
+       (clear_edges): Zero n_edges.
+       (make_edge): Increment n_edges.
+       (split_edge): Don't allocate bb->local_set.  Increment n_edges.
+       (flow_delete_insn_chain): Export.
+       (delete_block): Decrement n_edges.
+       (merge_blocks_nomove): Likewise.
+       (life_analysis): Give life_analysis_1 PROP flags.
+       (verify_wide_reg_1, verify_wide_reg): New.
+       (verify_local_live_at_start): New.
+       (update_life_info): Rewrite to call into propogate_block.
+       (mark_reg): New.
+       (mark_regs_live_at_end): After reload, if epilogue as rtl, 
+       always mark stack pointer.  Conditionally mark PIC register.
+       After reload, mark call-saved registers, return regsiters.
+       (life_analysis_1): Accept PROP flags not remove_dead_code.
+       Call mark_regs_live_at_end before zeroing regs_ever_live.
+       Use calculate_global_regs_live.  Copy global_live_at_end before
+       calling final propagate_block.  Zero reg_next_use on exit.
+       (calculate_global_regs_live): New.
+       (allocate_bb_life_data): Don't allocate bb->local_set.
+       (init_regset_vector, free_regset_vector): Remove.
+       (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
+       Test flags before every operation.  Warn if prologue/epilogue insn
+       would have been deleted.
+       (mark_set_regs, mark_set_1): Accept and use FLAGS. 
+       Use alloc_EXPR_LIST.
+       (mark_used_regs): Accept and use FLAGS, not FINAL.
+       Remove special handling for RETURN.
+       (try_pre_increment): Use alloc_EXPR_LIST.
+       (dump_flow_info): Dump n_edges.
+       (unlink_insn_chain, split_hard_reg_notes): Remove.
+       (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
+       (find_insn_with_note, new_insn_dead_notes): Remove.
+       (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
+       (maybe_remove_dead_notes, prepend_reg_notes): Remove.
+       (replace_insns): Remove.
+       (count_or_remove_death_notes): New.
+       (verify_flow_info): Abort on error after all checks.
+       (remove_edge): Decrement n_edges.
+       (remove_fake_edges): Tweek format.
+       * haifa-sched.c (schedule_insns): Use split_all_insns.
+       * output.h (update_life_info): Remove declaration.
+       * recog.c (split_all_insns): From the corpse of split_block_insns,
+       do the whole function block by block.  Use update_life_info.
+       (recog_last_allowed_insn): New.
+       (recog_next_insn): Mind it.
+       (peephole2_optimize): Set it.  Walk backwards through blocks.
+       Use update_life_info.
+       * rtl.h (update_flow_info, replace_insns): Remove declarations.
+       (split_all_insns): Declare.
+       * toplev.c (rest_of_compilation): Thread prologue before flow2.
+       Use split_all_insns.
+
+       * i386.md (or -1 peep2s): Disable.
+
+Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
+
+       * config/mips/mips.md (movstrsi+[123]) : Combine these into
+       a single pattern.  Scrap the 'd' versions as unnecessary. 
+
+       * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
+       tablejump_mips162,tablejump_internal4): The operands to a
+       label_ref must be VOIDmode.
+
+Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
+
+Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
+
+       * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
+
+Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
+
+       * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
+       cache every function if ggc_p.
+
 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
 
        * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
        instead of copy_rtx.  Accept sequences that contain asm statements.
-       * emit_rtl.c (copy_insn_1, copy_insn): New functions.
+       * emit-rtl.c (copy_insn_1, copy_insn): New functions.
        (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
        orig_asm_operands_vector, copy_asm_operands_vector,
        orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
@@ -40,7 +318,7 @@ Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
         (make_lang_type_fn): Likewise.
         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
 
-Thu Oct  7 00:36:17 MDT 1999   Diego Novillo <dnovillo@cygnus.com>
+Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
 
        * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
        make sure that HIGH instructions are copied into BASE_REGS.