summaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 601efd65aa8..dae718cd88d 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -7515,7 +7515,6 @@ remove_edge_and_dominated_blocks (edge e)
{
vec<basic_block> bbs_to_remove = vNULL;
vec<basic_block> bbs_to_fix_dom = vNULL;
- bitmap df, df_idom;
edge f;
edge_iterator ei;
bool none_removed = false;
@@ -7557,11 +7556,10 @@ remove_edge_and_dominated_blocks (edge e)
}
}
- df = BITMAP_ALLOC (NULL);
- df_idom = BITMAP_ALLOC (NULL);
+ bitmap_head df, df_idom;
if (none_removed)
- bitmap_set_bit (df_idom,
+ bitmap_set_bit (&df_idom,
get_immediate_dominator (CDI_DOMINATORS, e->dest)->index);
else
{
@@ -7571,16 +7569,16 @@ remove_edge_and_dominated_blocks (edge e)
FOR_EACH_EDGE (f, ei, bb->succs)
{
if (f->dest != EXIT_BLOCK_PTR)
- bitmap_set_bit (df, f->dest->index);
+ bitmap_set_bit (&df, f->dest->index);
}
}
FOR_EACH_VEC_ELT (bbs_to_remove, i, bb)
- bitmap_clear_bit (df, bb->index);
+ bitmap_clear_bit (&df, bb->index);
- EXECUTE_IF_SET_IN_BITMAP (df, 0, i, bi)
+ EXECUTE_IF_SET_IN_BITMAP (&df, 0, i, bi)
{
bb = BASIC_BLOCK (i);
- bitmap_set_bit (df_idom,
+ bitmap_set_bit (&df_idom,
get_immediate_dominator (CDI_DOMINATORS, bb)->index);
}
}
@@ -7589,7 +7587,7 @@ remove_edge_and_dominated_blocks (edge e)
{
/* Record the set of the altered basic blocks. */
bitmap_set_bit (cfgcleanup_altered_bbs, e->src->index);
- bitmap_ior_into (cfgcleanup_altered_bbs, df);
+ bitmap_ior_into (cfgcleanup_altered_bbs, &df);
}
/* Remove E and the cancelled blocks. */
@@ -7615,7 +7613,7 @@ remove_edge_and_dominated_blocks (edge e)
removed, and let W = F->dest. Before removal, idom(W) = Y (since Y
dominates W, and because of P, Z does not dominate W), and W belongs to
the dominance frontier of E. Therefore, Y belongs to DF_IDOM. */
- EXECUTE_IF_SET_IN_BITMAP (df_idom, 0, i, bi)
+ EXECUTE_IF_SET_IN_BITMAP (&df_idom, 0, i, bi)
{
bb = BASIC_BLOCK (i);
for (dbb = first_dom_son (CDI_DOMINATORS, bb);
@@ -7626,8 +7624,6 @@ remove_edge_and_dominated_blocks (edge e)
iterate_fix_dominators (CDI_DOMINATORS, bbs_to_fix_dom, true);
- BITMAP_FREE (df);
- BITMAP_FREE (df_idom);
bbs_to_remove.release ();
bbs_to_fix_dom.release ();
}