toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup call after...
authorJan Hubicka <jh@suse.cz>
Thu, 14 Mar 2002 10:10:13 +0000 (11:10 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 14 Mar 2002 10:10:13 +0000 (10:10 +0000)
* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
call after liveness analysis.

* recog.c (split_insn): Use delete_insn_and_edges.

* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
instructions to have branch prediction notes.
* ia64reorg.c (ia64_reorg): Do not rebuild CFG.

From-SVN: r50765

gcc/ChangeLog
gcc/cfgrtl.c
gcc/config/ia64/ia64.c
gcc/recog.c
gcc/toplev.c

index 17e1ff34cba84afc40c98b7018e6c246ffa6499e..ea822d1d952318e80b7a2a38d4fa67bf97026115 100644 (file)
@@ -1,3 +1,14 @@
+Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
+       call after liveness analysis.
+
+       * recog.c (split_insn): Use delete_insn_and_edges.
+
+       * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
+       instructions to have branch prediction notes.
+       * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
+
 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
 
        * configure.in: Don't pass -Wno-long-long to a ADA compiler
index 6e929eb0dad7260a619990f18695e394df91ae70..5bf33bc0795912153d6150be4b2a314c7cac4d08 100644 (file)
@@ -1745,14 +1745,9 @@ verify_flow_info ()
       rtx note;
 
       if (INSN_P (bb->end)
-         && (note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX)))
+         && (note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX))
+         && any_condjump_p (bb->end))
        {
-         if (!any_condjump_p (bb->end))
-           {
-             error ("verify_flow_info: REG_BR_PROB on non-condjump",
-                    bb->index);
-             err = 1;
-           }
          if (INTVAL (XEXP (note, 0)) != BRANCH_EDGE (bb)->probability)
            {
              error ("verify_flow_info: REG_BR_PROB does not match cfg %i %i",
index 8afa9515ad21a94271a3a4c564752759a39dc0ff..186f4b3d92b38a52d07edd4cc7d1cab8ff4b605b 100644 (file)
@@ -6733,9 +6733,10 @@ ia64_reorg (insns)
   if (optimize == 0)
     split_all_insns_noflow ();
 
-  /* Make sure the CFG and global_live_at_start are correct
-     for emit_predicate_relation_info.  */
-  find_basic_blocks (insns, max_reg_num (), NULL);
+  /* We are freeing block_for_insn in the toplev to keep compatibility
+     with old MDEP_REORGS that are not CFG based.  Recompute it now.  */
+  compute_bb_for_insn (get_max_uid ());
+  /* update_life_info_in_dirty_blocks should be enought here.  */
   life_analysis (insns, NULL, PROP_DEATH_NOTES);
 
   if (ia64_flag_schedule_insns2)
index 9eb953878af6ce7c982dafa5a572ff143a0c36fd..8ad3ed2a1ceffab2974ced0647dbe1aa5cddb3f9 100644 (file)
@@ -2682,11 +2682,7 @@ split_insn (insn)
          allocation, and there are unlikely to be very many
          nops then anyways.  */
       if (reload_completed)
-       {
-         PUT_CODE (insn, NOTE);
-         NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
-         NOTE_SOURCE_FILE (insn) = 0;
-       }
+       delete_insn_and_edges (insn);
     }
   else
     {
@@ -2761,7 +2757,7 @@ split_all_insns (upd_life)
              insn = last;
            }
 
-         if (insn == bb->end)
+         if (next == NEXT_INSN (bb->end))
            break;
        }
 
index fbf6e6ba395be1c7d37a6677381e68f43dd96311..fa8af755fdbe508567ebd5730fee4e26aeef8d63 100644 (file)
@@ -2999,7 +2999,7 @@ rest_of_compilation (decl)
 #endif
   life_analysis (insns, rtl_dump_file, PROP_FINAL);
   if (optimize)
-    cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0)
+    cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0) | CLEANUP_UPDATE_LIFE
                 | (flag_thread_jumps ? CLEANUP_THREADING : 0));
   timevar_pop (TV_FLOW);