haifa-sched.c (find_rgns): Mark a block found during the DFS search as reachable.

* haifa-sched.c (find_rgns): Mark a block found during the DFS search
        as reachable.

From-SVN: r28838
This commit is contained in:
Jeffrey A Law 1999-08-25 05:24:04 +00:00 committed by Jeff Law
parent 8f04d345d0
commit 50f71e6f5f
2 changed files with 18 additions and 0 deletions

View file

@ -1,5 +1,8 @@
Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
* haifa-sched.c (find_rgns): Mark a block found during the DFS search
as reachable.
* haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>

View file

@ -1595,6 +1595,21 @@ find_rgns (s_preds, s_succs, num_preds, num_succs, dom)
stack[++sp] = current_edge;
SET_BIT (passed, current_edge);
current_edge = OUT_EDGES (child);
/* This is temporary until haifa is converted to use rth's new
cfg routines which have true entry/exit blocks and the
appropriate edges from/to those blocks.
Generally we update dfs_nr for a node when we process its
out edge. However, if the node has no out edge then we will
not set dfs_nr for that node. This can confuse the scheduler
into thinking that we have unreachable blocks, which in turn
disables cross block scheduling.
So, if we have a node with no out edges, go ahead and mark it
as reachable now. */
if (current_edge == 0)
dfs_nr[child] = ++count;
}
/* Another check for unreachable blocks. The earlier test in