summaryrefslogtreecommitdiff
path: root/gcc/store-motion.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/store-motion.c')
-rw-r--r--gcc/store-motion.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 530766f800d..74fd340d073 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
+#include "bitvec.h"
#include "tm.h"
#include "diagnostic-core.h"
#include "toplev.h"
@@ -870,7 +871,7 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr)
edge_iterator *stack, ei;
int sp;
edge act;
- sbitmap visited = sbitmap_alloc (last_basic_block_for_fn (cfun));
+ stack_bitvec visited (last_basic_block_for_fn (cfun));
rtx last, note;
rtx_insn *insn;
rtx mem = smexpr->pattern;
@@ -879,8 +880,6 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr)
sp = 0;
ei = ei_start (bb->succs);
- bitmap_clear (visited);
-
act = (EDGE_COUNT (ei_container (ei)) > 0 ? EDGE_I (ei_container (ei), 0) : NULL);
while (1)
{
@@ -889,7 +888,6 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr)
if (!sp)
{
free (stack);
- sbitmap_free (visited);
return;
}
act = ei_edge (stack[--sp]);
@@ -897,14 +895,14 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr)
bb = act->dest;
if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun)
- || bitmap_bit_p (visited, bb->index))
+ || visited[bb->index])
{
if (!ei_end_p (ei))
ei_next (&ei);
act = (! ei_end_p (ei)) ? ei_edge (ei) : NULL;
continue;
}
- bitmap_set_bit (visited, bb->index);
+ visited[bb->index] = true;
if (bitmap_bit_p (st_antloc[bb->index], smexpr->index))
{