OSDN Git Service

* tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Mar 2006 16:14:55 +0000 (16:14 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Mar 2006 16:14:55 +0000 (16:14 +0000)
iterator-style macro.
(mark_control_dependent_edges_necessary): Update the use of
EXECUTE_IF_CONTROL_DEPENDENT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112089 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-dce.c

index 6f54909..415ce1d 100644 (file)
@@ -1,3 +1,10 @@
+2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
+       iterator-style macro.
+       (mark_control_dependent_edges_necessary): Update the use of
+       EXECUTE_IF_CONTROL_DEPENDENT.
+
 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
 
        * config/sh/predicates.md (cache_address_operand): Special.
index 15c2ee4..56f17ce 100644 (file)
@@ -105,17 +105,12 @@ static sbitmap visited_control_parents;
    to be recomputed.  */
 static bool cfg_altered;
 
-/* Execute CODE for each edge (given number EDGE_NUMBER within the CODE)
-   for which the block with index N is control dependent.  */
-#define EXECUTE_IF_CONTROL_DEPENDENT(N, EDGE_NUMBER, CODE)                   \
-  {                                                                          \
-    bitmap_iterator bi;                                                              \
-                                                                             \
-    EXECUTE_IF_SET_IN_BITMAP (control_dependence_map[N], 0, EDGE_NUMBER, bi)  \
-      {                                                                              \
-       CODE;                                                                 \
-      }                                                                              \
-  }
+/* Execute code that follows the macro for each edge (given number
+   EDGE_NUMBER within the CODE) for which the block with index N is
+   control dependent.  */
+#define EXECUTE_IF_CONTROL_DEPENDENT(BI, N, EDGE_NUMBER)       \
+  EXECUTE_IF_SET_IN_BITMAP (control_dependence_map[(N)], 0,    \
+                           (EDGE_NUMBER), (BI))
 
 /* Local function prototypes.  */
 static inline void set_control_dependence_map_bit (basic_block, int);
@@ -443,6 +438,7 @@ find_obviously_necessary_stmts (struct edge_list *el)
 static void
 mark_control_dependent_edges_necessary (basic_block bb, struct edge_list *el)
 {
+  bitmap_iterator bi;
   unsigned edge_number;
 
   gcc_assert (bb != EXIT_BLOCK_PTR);
@@ -450,7 +446,7 @@ mark_control_dependent_edges_necessary (basic_block bb, struct edge_list *el)
   if (bb == ENTRY_BLOCK_PTR)
     return;
 
-  EXECUTE_IF_CONTROL_DEPENDENT (bb->index, edge_number,
+  EXECUTE_IF_CONTROL_DEPENDENT (bi, bb->index, edge_number)
     {
       tree t;
       basic_block cd_bb = INDEX_EDGE_PRED_BB (el, edge_number);
@@ -462,7 +458,7 @@ mark_control_dependent_edges_necessary (basic_block bb, struct edge_list *el)
       t = last_stmt (cd_bb);
       if (t && is_ctrl_stmt (t))
        mark_stmt_necessary (t, true);
-    });
+    }
 }
 \f
 /* Propagate necessity using the operands of necessary statements.  Process