summaryrefslogtreecommitdiff
path: root/gcc/loop-invariant.c
diff options
context:
space:
mode:
authorTrevor Saunders <tsaunders@mozilla.com>2013-11-14 05:56:59 -0500
committerTrevor Saunders <tsaunders@mozilla.com>2013-11-15 20:10:56 -0500
commit994ab8bb4b8a0ba60ddb3a669f510dd56d7ccae4 (patch)
tree4ee2d43c1f02a52325af9bde6e5cafac422034a0 /gcc/loop-invariant.c
parentc5e121d5bfabffc4b75c327a374816fc6a01fd6d (diff)
downloadgcc-994ab8bb4b8a0ba60ddb3a669f510dd56d7ccae4.tar.gz
add ctor / dtor to bitmap_head
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r--gcc/loop-invariant.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index c5d6b5ac29d..eeacf30edd8 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -655,10 +655,10 @@ static void
find_defs (struct loop *loop, basic_block *body)
{
unsigned i;
- bitmap blocks = BITMAP_ALLOC (NULL);
+ bitmap_head blocks;
for (i = 0; i < loop->num_nodes; i++)
- bitmap_set_bit (blocks, body[i]->index);
+ bitmap_set_bit (&blocks, body[i]->index);
if (dump_file)
{
@@ -670,7 +670,7 @@ find_defs (struct loop *loop, basic_block *body)
df_remove_problem (df_chain);
df_process_deferred_rescans ();
df_chain_add_problem (DF_UD_CHAIN);
- df_set_blocks (blocks);
+ df_set_blocks (&blocks);
df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
df_analyze ();
check_invariant_table_size ();
@@ -682,8 +682,6 @@ find_defs (struct loop *loop, basic_block *body)
"*****ending processing of loop %d ******\n",
loop->num);
}
-
- BITMAP_FREE (blocks);
}
/* Creates a new invariant for definition DEF in INSN, depending on invariants
@@ -995,24 +993,20 @@ find_invariants_body (struct loop *loop, basic_block *body,
static void
find_invariants (struct loop *loop)
{
- bitmap may_exit = BITMAP_ALLOC (NULL);
- bitmap always_reached = BITMAP_ALLOC (NULL);
- bitmap has_exit = BITMAP_ALLOC (NULL);
- bitmap always_executed = BITMAP_ALLOC (NULL);
+ bitmap_head may_exit;
+ bitmap_head always_reached;
+ bitmap_head has_exit;
+ bitmap_head always_executed;
basic_block *body = get_loop_body_in_dom_order (loop);
- find_exits (loop, body, may_exit, has_exit);
- compute_always_reached (loop, body, may_exit, always_reached);
- compute_always_reached (loop, body, has_exit, always_executed);
+ find_exits (loop, body, &may_exit, &has_exit);
+ compute_always_reached (loop, body, &may_exit, &always_reached);
+ compute_always_reached (loop, body, &has_exit, &always_executed);
find_defs (loop, body);
- find_invariants_body (loop, body, always_reached, always_executed);
+ find_invariants_body (loop, body, &always_reached, &always_executed);
merge_identical_invariants ();
- BITMAP_FREE (always_reached);
- BITMAP_FREE (always_executed);
- BITMAP_FREE (may_exit);
- BITMAP_FREE (has_exit);
free (body);
}