cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
authorJan Hubicka <jh@suse.cz>
Fri, 21 Feb 2003 10:06:44 +0000 (11:06 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 21 Feb 2003 10:06:44 +0000 (10:06 +0000)
* cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
(commit_edge_insertions): Call find_many_sub_basic_blocks

* reg-stack.c (convert_regs): Cleax aux for blocks.

From-SVN: r63216

gcc/ChangeLog
gcc/cfgrtl.c
gcc/reg-stack.c

index bc9b163..c57de2d 100644 (file)
@@ -1,3 +1,10 @@
+Fri Feb 21 11:05:44 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
+       (commit_edge_insertions): Call find_many_sub_basic_blocks
+
+       * reg-stack.c (convert_regs): Cleax aux for blocks.
+
 Fri Feb 21 10:29:52 CET 2003  Jan Hubicka  <jh@suse.cz>
 
        * toplev.c (parse_options_and_default_flags): Undo accidental commit.
index 5209aa2..6d3be7e 100644 (file)
@@ -1449,7 +1449,8 @@ commit_one_edge_insertion (e, watch_calls)
   else if (GET_CODE (last) == JUMP_INSN)
     abort ();
 
-  find_sub_basic_blocks (bb);
+  /* Mark the basic block for find_sub_basic_blocks.  */
+  bb->aux = &bb->aux;
 }
 
 /* Update the CFG for all queued instructions.  */
@@ -1458,6 +1459,7 @@ void
 commit_edge_insertions ()
 {
   basic_block bb;
+  sbitmap blocks;
 
 #ifdef ENABLE_CHECKING
   verify_flow_info ();
@@ -1474,6 +1476,21 @@ commit_edge_insertions ()
            commit_one_edge_insertion (e, false);
        }
     }
+
+  blocks = sbitmap_alloc (last_basic_block);
+  sbitmap_zero (blocks);
+  FOR_EACH_BB (bb)
+    if (bb->aux)
+      {
+        SET_BIT (blocks, bb->index);
+       /* Check for forgotten bb->aux values before commit_edge_insertions
+          call.  */
+       if (bb->aux != &bb->aux)
+         abort ();
+       bb->aux = NULL;
+      }
+  find_many_sub_basic_blocks (blocks);
+  sbitmap_free (blocks);
 }
 \f
 /* Update the CFG for all queued instructions, taking special care of inserting
index f8f4b31..52be2a2 100644 (file)
@@ -2922,6 +2922,7 @@ convert_regs (file)
          inserted |= convert_regs_2 (file, b);
        }
     }
+  clear_aux_for_blocks ();
 
   fixup_abnormal_edges ();
   if (inserted)