summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.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/tree-ssa-loop-im.c
parentc5e121d5bfabffc4b75c327a374816fc6a01fd6d (diff)
downloadgcc-994ab8bb4b8a0ba60ddb3a669f510dd56d7ccae4.tar.gz
add ctor / dtor to bitmap_head
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r--gcc/tree-ssa-loop-im.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 34a37633a48..a78a2d55f21 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -2285,20 +2285,19 @@ store_motion_loop (struct loop *loop, bitmap sm_executed)
{
vec<edge> exits = get_loop_exit_edges (loop);
struct loop *subloop;
- bitmap sm_in_loop = BITMAP_ALLOC (&lim_bitmap_obstack);
+ bitmap_head sm_in_loop (&lim_bitmap_obstack);
if (loop_suitable_for_sm (loop, exits))
{
- find_refs_for_sm (loop, sm_executed, sm_in_loop);
- hoist_memory_references (loop, sm_in_loop, exits);
+ find_refs_for_sm (loop, sm_executed, &sm_in_loop);
+ hoist_memory_references (loop, &sm_in_loop, exits);
}
exits.release ();
- bitmap_ior_into (sm_executed, sm_in_loop);
+ bitmap_ior_into (sm_executed, &sm_in_loop);
for (subloop = loop->inner; subloop != NULL; subloop = subloop->next)
store_motion_loop (subloop, sm_executed);
- bitmap_and_compl_into (sm_executed, sm_in_loop);
- BITMAP_FREE (sm_in_loop);
+ bitmap_and_compl_into (sm_executed, &sm_in_loop);
}
/* Try to perform store motion for all memory references modified inside
@@ -2308,12 +2307,11 @@ static void
store_motion (void)
{
struct loop *loop;
- bitmap sm_executed = BITMAP_ALLOC (&lim_bitmap_obstack);
+ bitmap_head sm_executed (&lim_bitmap_obstack);
for (loop = current_loops->tree_root->inner; loop != NULL; loop = loop->next)
- store_motion_loop (loop, sm_executed);
+ store_motion_loop (loop, &sm_executed);
- BITMAP_FREE (sm_executed);
gsi_commit_edge_inserts ();
}