summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dce.c
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-15 16:14:55 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-15 16:14:55 +0000
commitbfad1dc2c71ec30d4293b2b0c17a18ca3f67db9b (patch)
tree1453ddcea17581f5ff7d5632d9fce716fc3ee8f3 /gcc/tree-ssa-dce.c
parent3d5331376b469e7d42b9d9bce251736ab9510443 (diff)
downloadgcc-bfad1dc2c71ec30d4293b2b0c17a18ca3f67db9b.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112089 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-dce.c')
-rw-r--r--gcc/tree-ssa-dce.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 15c2ee417ff..56f17ceeee1 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -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);
- });
+ }
}
/* Propagate necessity using the operands of necessary statements. Process