summaryrefslogtreecommitdiff
path: root/gcc/sched-rgn.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/sched-rgn.c')
-rw-r--r--gcc/sched-rgn.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 6227645651b..4a9989758c8 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -153,7 +153,7 @@ static int *containing_rgn;
void debug_regions PARAMS ((void));
static void find_single_block_region PARAMS ((void));
-static void find_rgns PARAMS ((struct edge_list *, sbitmap *));
+static void find_rgns PARAMS ((struct edge_list *, dominance_info));
static int too_large PARAMS ((int, int *, int *));
extern void debug_live PARAMS ((int, int));
@@ -624,7 +624,7 @@ too_large (block, num_bbs, num_insns)
static void
find_rgns (edge_list, dom)
struct edge_list *edge_list;
- sbitmap *dom;
+ dominance_info dom;
{
int *max_hdr, *dfs_nr, *stack, *degree;
char no_loops = 1;
@@ -837,7 +837,7 @@ find_rgns (edge_list, dom)
{
/* Now verify that the block is dominated by the loop
header. */
- if (!TEST_BIT (dom[jbb->index], bb->index))
+ if (!dominated_by_p (dom, jbb, bb))
break;
}
}
@@ -2909,11 +2909,9 @@ init_regions ()
}
else
{
- sbitmap *dom;
+ dominance_info dom;
struct edge_list *edge_list;
- dom = sbitmap_vector_alloc (last_basic_block, last_basic_block);
-
/* The scheduler runs after flow; therefore, we can't blindly call
back into find_basic_blocks since doing so could invalidate the
info in global_live_at_start.
@@ -2928,7 +2926,7 @@ init_regions ()
edge_list = create_edge_list ();
/* Compute the dominators and post dominators. */
- calculate_dominance_info (NULL, dom, CDI_DOMINATORS);
+ dom = calculate_dominance_info (CDI_DOMINATORS);
/* build_control_flow will return nonzero if it detects unreachable
blocks or any other irregularity with the cfg which prevents
@@ -2946,7 +2944,7 @@ init_regions ()
/* For now. This will move as more and more of haifa is converted
to using the cfg code in flow.c. */
- free (dom);
+ free_dominance_info (dom);
}
}