OSDN Git Service

* builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
[pf3gnuchains/gcc-fork.git] / gcc / bt-load.c
index bbd6abd..abfe8cd 100644 (file)
@@ -821,21 +821,21 @@ block_at_edge_of_live_range_p (int bb, btr_def def)
 static void
 clear_btr_from_live_range (btr_def def)
 {
-  int bb;
-
-  EXECUTE_IF_SET_IN_BITMAP
-    (def->live_range, 0, bb,
-     {
-       if ((!def->other_btr_uses_before_def
-            && !def->other_btr_uses_after_use)
-          || !block_at_edge_of_live_range_p (bb, def))
-        {
-          CLEAR_HARD_REG_BIT (btrs_live[bb], def->btr);
-          CLEAR_HARD_REG_BIT (btrs_live_at_end[bb], def->btr);
-          if (dump_file)
-            dump_btrs_live (bb);
-        }
-     });
+  unsigned bb;
+  bitmap_iterator bi;
+
+  EXECUTE_IF_SET_IN_BITMAP (def->live_range, 0, bb, bi)
+    {
+      if ((!def->other_btr_uses_before_def
+          && !def->other_btr_uses_after_use)
+         || !block_at_edge_of_live_range_p (bb, def))
+       {
+         CLEAR_HARD_REG_BIT (btrs_live[bb], def->btr);
+         CLEAR_HARD_REG_BIT (btrs_live_at_end[bb], def->btr);
+         if (dump_file)
+           dump_btrs_live (bb);
+       }
+    }
 }
 
 
@@ -845,15 +845,16 @@ clear_btr_from_live_range (btr_def def)
 static void
 add_btr_to_live_range (btr_def def)
 {
-  int bb;
-  EXECUTE_IF_SET_IN_BITMAP
-    (def->live_range, 0, bb,
-     {
-       SET_HARD_REG_BIT (btrs_live[bb], def->btr);
-       SET_HARD_REG_BIT (btrs_live_at_end[bb], def->btr);
-       if (dump_file)
-        dump_btrs_live (bb);
-     });
+  unsigned bb;
+  bitmap_iterator bi;
+
+  EXECUTE_IF_SET_IN_BITMAP (def->live_range, 0, bb, bi)
+    {
+      SET_HARD_REG_BIT (btrs_live[bb], def->btr);
+      SET_HARD_REG_BIT (btrs_live_at_end[bb], def->btr);
+      if (dump_file)
+       dump_btrs_live (bb);
+    }
 }
 
 /* Update a live range to contain the basic block NEW_BLOCK, and all
@@ -878,6 +879,7 @@ augment_live_range (bitmap live_range, HARD_REG_SET *btrs_live_in_range,
   else
     {
       edge e;
+      edge_iterator ei;
       int new_block = new_bb->index;
 
       gcc_assert (dominated_by_p (CDI_DOMINATORS, head_bb, new_bb));
@@ -899,7 +901,7 @@ augment_live_range (bitmap live_range, HARD_REG_SET *btrs_live_in_range,
          dump_hard_reg_set (*btrs_live_in_range);
          fprintf (dump_file, "\n");
        }
-      for (e = head_bb->pred; e; e = e->pred_next)
+      FOR_EACH_EDGE (e, ei, head_bb->preds)
        *tos++ = e->src;
     }
 
@@ -909,6 +911,7 @@ augment_live_range (bitmap live_range, HARD_REG_SET *btrs_live_in_range,
       if (!bitmap_bit_p (live_range, bb->index))
        {
          edge e;
+         edge_iterator ei;
 
          bitmap_set_bit (live_range, bb->index);
          IOR_HARD_REG_SET (*btrs_live_in_range,
@@ -922,7 +925,7 @@ augment_live_range (bitmap live_range, HARD_REG_SET *btrs_live_in_range,
              fprintf (dump_file, "\n");
            }
 
-         for (e = bb->pred; e != NULL; e = e->pred_next)
+         FOR_EACH_EDGE (e, ei, bb->preds)
            {
              basic_block pred = e->src;
              if (!bitmap_bit_p (live_range, pred->index))
@@ -972,11 +975,9 @@ btr_def_live_range (btr_def def, HARD_REG_SET *btrs_live_in_range)
       def->live_range = BITMAP_XMALLOC ();
 
       bitmap_set_bit (def->live_range, def->bb->index);
-      if (flag_btr_bb_exclusive)
-       COPY_HARD_REG_SET (*btrs_live_in_range, btrs_live[def->bb->index]);
-      else
-       COPY_HARD_REG_SET (*btrs_live_in_range,
-                          btrs_live_at_end[def->bb->index]);
+      COPY_HARD_REG_SET (*btrs_live_in_range,
+                        (flag_btr_bb_exclusive
+                         ? btrs_live : btrs_live_at_end)[def->bb->index]);
 
       for (user = def->uses; user != NULL; user = user->next)
        augment_live_range (def->live_range, btrs_live_in_range,
@@ -988,24 +989,17 @@ btr_def_live_range (btr_def def, HARD_REG_SET *btrs_live_in_range)
         the set of target registers live over it, because migration
         of other PT instructions may have affected it.
       */
-      int bb;
-      int def_bb = def->bb->index;
+      unsigned bb;
+      unsigned def_bb = flag_btr_bb_exclusive ? -1 : def->bb->index;
+      bitmap_iterator bi;
 
       CLEAR_HARD_REG_SET (*btrs_live_in_range);
-      if (flag_btr_bb_exclusive)
-       EXECUTE_IF_SET_IN_BITMAP
-         (def->live_range, 0, bb,
-          {
-            IOR_HARD_REG_SET (*btrs_live_in_range, btrs_live[bb]);
-          });
-      else
-       EXECUTE_IF_SET_IN_BITMAP
-         (def->live_range, 0, bb,
-          {
-            IOR_HARD_REG_SET (*btrs_live_in_range,
-                              (def_bb == bb
-                               ? btrs_live_at_end : btrs_live) [bb]);
-          });
+      EXECUTE_IF_SET_IN_BITMAP (def->live_range, 0, bb, bi)
+       {
+         IOR_HARD_REG_SET (*btrs_live_in_range,
+                           (def_bb == bb
+                            ? btrs_live_at_end : btrs_live) [bb]);
+       }
     }
   if (!def->other_btr_uses_before_def &&
       !def->other_btr_uses_after_use)