Index: gcc/gcc/sched-ebb.c |
diff --git a/gcc/gcc/sched-ebb.c b/gcc/gcc/sched-ebb.c |
index 2773a36d1bdc9003274cbf6560e6e6cb6bdde6d1..534df4ad0f7b9c5326fdaf1fbf3befba9f57c6ba 100644 |
--- a/gcc/gcc/sched-ebb.c |
+++ b/gcc/gcc/sched-ebb.c |
@@ -144,13 +144,13 @@ begin_schedule_ready (rtx insn, rtx last) |
instruction scheduled after last control flow instruction. |
In this case we can create new basic block. It is |
always exactly one basic block last in the sequence. */ |
- |
+ |
FOR_EACH_EDGE (e, ei, last_bb->succs) |
if (e->flags & EDGE_FALLTHRU) |
break; |
#ifdef ENABLE_CHECKING |
- gcc_assert (!e || !(e->flags & EDGE_COMPLEX)); |
+ gcc_assert (!e || !(e->flags & EDGE_COMPLEX)); |
gcc_assert (BLOCK_FOR_INSN (insn) == last_bb |
&& !IS_SPECULATION_CHECK_P (insn) |
@@ -176,7 +176,7 @@ begin_schedule_ready (rtx insn, rtx last) |
else |
/* Create an empty unreachable block after the INSN. */ |
bb = create_basic_block (NEXT_INSN (insn), NULL_RTX, last_bb); |
- |
+ |
/* split_edge () creates BB before E->DEST. Keep in mind, that |
this operation extends scheduling region till the end of BB. |
Hence, we need to shift NEXT_TAIL, so haifa-sched.c won't go out |
@@ -286,6 +286,7 @@ static struct haifa_sched_info ebb_sched_info = |
rank, |
ebb_print_insn, |
ebb_contributes_to_priority, |
+ NULL, /* insn_finishes_block_p */ |
NULL, NULL, |
NULL, NULL, |
@@ -326,7 +327,7 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn) |
{ |
rtx insn1 = DEP_PRO (back_dep); |
- if (DEP_TYPE (back_dep) == REG_DEP_TRUE) |
+ if (DEP_TYPE (back_dep) == REG_DEP_TRUE) |
/* Found a DEF-USE dependence (insn1, load_insn). */ |
{ |
sd_iterator_def fore_sd_it; |
@@ -462,8 +463,8 @@ static basic_block |
schedule_ebb (rtx head, rtx tail) |
{ |
basic_block first_bb, target_bb; |
- struct deps tmp_deps; |
- |
+ struct deps_desc tmp_deps; |
+ |
first_bb = BLOCK_FOR_INSN (head); |
last_bb = BLOCK_FOR_INSN (tail); |
@@ -477,7 +478,7 @@ schedule_ebb (rtx head, rtx tail) |
init_deps_global (); |
/* Compute dependencies. */ |
- init_deps (&tmp_deps); |
+ init_deps (&tmp_deps, false); |
sched_analyze (&tmp_deps, head, tail); |
free_deps (&tmp_deps); |
@@ -490,7 +491,7 @@ schedule_ebb (rtx head, rtx tail) |
} |
else |
/* Only recovery blocks can have their dependencies already calculated, |
- and they always are single block ebbs. */ |
+ and they always are single block ebbs. */ |
gcc_assert (first_bb == last_bb); |
/* Set priorities. */ |
@@ -515,7 +516,7 @@ schedule_ebb (rtx head, rtx tail) |
/* We might pack all instructions into fewer blocks, |
so we may made some of them empty. Can't assert (b == last_bb). */ |
- |
+ |
/* Sanity check: verify that all region insns were scheduled. */ |
gcc_assert (sched_rgn_n_insns == rgn_n_insns); |
@@ -606,9 +607,9 @@ schedule_ebbs (void) |
a note or two. */ |
while (head != tail) |
{ |
- if (NOTE_P (head)) |
+ if (NOTE_P (head) || BOUNDARY_DEBUG_INSN_P (head)) |
head = NEXT_INSN (head); |
- else if (NOTE_P (tail)) |
+ else if (NOTE_P (tail) || BOUNDARY_DEBUG_INSN_P (tail)) |
tail = PREV_INSN (tail); |
else if (LABEL_P (head)) |
head = NEXT_INSN (head); |
@@ -642,7 +643,7 @@ ebb_add_remove_insn (rtx insn ATTRIBUTE_UNUSED, int remove_p) |
static void |
ebb_add_block (basic_block bb, basic_block after) |
{ |
- /* Recovery blocks are always bounded by BARRIERS, |
+ /* Recovery blocks are always bounded by BARRIERS, |
therefore, they always form single block EBB, |
therefore, we can use rec->index to identify such EBBs. */ |
if (after == EXIT_BLOCK_PTR) |