bb-reorder.c (make_reorder_chain_1): Handle case where jump edge goes to the same block as the fallthru edge.
* bb-reorder.c (make_reorder_chain_1): Handle case where jump edge goes to the same block as the fallthru edge. From-SVN: r39228
This commit is contained in:
parent
0024a8041f
commit
b0cc7919bf
@ -1,3 +1,8 @@
|
|||||||
|
2001-01-23 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
||||||
|
|
||||||
|
* bb-reorder.c (make_reorder_chain_1): Handle case where
|
||||||
|
jump edge goes to the same block as the fallthru edge.
|
||||||
|
|
||||||
2001-01-23 Jim Wilson <wilson@redhat.com>
|
2001-01-23 Jim Wilson <wilson@redhat.com>
|
||||||
|
|
||||||
* dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
|
* dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
|
||||||
|
@ -397,14 +397,25 @@ make_reorder_chain_1 (bb, prev)
|
|||||||
|
|
||||||
/* Find the normal taken edge and the normal fallthru edge.
|
/* Find the normal taken edge and the normal fallthru edge.
|
||||||
Note that there may in fact be other edges due to
|
Note that there may in fact be other edges due to
|
||||||
asynchronous_exceptions. */
|
asynchronous_exceptions.
|
||||||
|
|
||||||
|
Note, conditional jumps with other side effects may not
|
||||||
|
be fully optimized. In this case it is possible for
|
||||||
|
the conditional jump to branch to the same location as
|
||||||
|
the fallthru path.
|
||||||
|
|
||||||
|
We should probably work to improve optimization of that
|
||||||
|
case; however, it seems silly not to also deal with such
|
||||||
|
problems here if they happen to occur. */
|
||||||
|
|
||||||
e_taken = e_fall = NULL;
|
e_taken = e_fall = NULL;
|
||||||
for (e = bb->succ; e ; e = e->succ_next)
|
for (e = bb->succ; e ; e = e->succ_next)
|
||||||
if (e->flags & EDGE_FALLTHRU)
|
{
|
||||||
e_fall = e;
|
if (e->flags & EDGE_FALLTHRU)
|
||||||
else if (! (e->flags & EDGE_EH))
|
e_fall = e;
|
||||||
e_taken = e;
|
if (! (e->flags & EDGE_EH))
|
||||||
|
e_taken = e;
|
||||||
|
}
|
||||||
|
|
||||||
next = (taken ? e_taken : e_fall)->dest;
|
next = (taken ? e_taken : e_fall)->dest;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user