OSDN Git Service

* g++.dg/rtti/tinfo1.C: Remove xfails.
[pf3gnuchains/gcc-fork.git] / gcc / ifcvt.c
index 709a675..a033f35 100644 (file)
@@ -2914,9 +2914,9 @@ find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge)
   /* Conversion went ok, including moving the insns and fixing up the
      jump.  Adjust the CFG to match.  */
 
-  bitmap_operation (test_bb->global_live_at_end,
-                   else_bb->global_live_at_start,
-                   then_bb->global_live_at_end, BITMAP_IOR);
+  bitmap_ior (test_bb->global_live_at_end,
+             else_bb->global_live_at_start,
+             then_bb->global_live_at_end);
 
   new_bb = redirect_edge_and_branch_force (FALLTHRU_EDGE (test_bb), else_bb);
   then_bb_index = then_bb->index;
@@ -3018,9 +3018,9 @@ find_if_case_2 (basic_block test_bb, edge then_edge, edge else_edge)
   /* Conversion went ok, including moving the insns and fixing up the
      jump.  Adjust the CFG to match.  */
 
-  bitmap_operation (test_bb->global_live_at_end,
-                   then_bb->global_live_at_start,
-                   else_bb->global_live_at_end, BITMAP_IOR);
+  bitmap_ior (test_bb->global_live_at_end,
+             then_bb->global_live_at_start,
+             else_bb->global_live_at_end);
 
   delete_basic_block (else_bb);
 
@@ -3217,14 +3217,9 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb,
           TEST_SET & merge_bb->global_live_at_start
         are empty.  */
 
-      bitmap_operation (tmp, test_set, test_live, BITMAP_IOR);
-      bitmap_operation (tmp, tmp, merge_set, BITMAP_AND);
-      if (bitmap_first_set_bit (tmp) >= 0)
-       fail = 1;
-
-      bitmap_operation (tmp, test_set, merge_bb->global_live_at_start,
-                       BITMAP_AND);
-      if (bitmap_first_set_bit (tmp) >= 0)
+      if (bitmap_intersect_p (test_set, merge_set)
+         || bitmap_intersect_p (test_live, merge_set)
+         || bitmap_intersect_p (test_set, merge_bb->global_live_at_start))
        fail = 1;
 
       FREE_REG_SET (tmp);