flow.c (init_propagate_block_info): Watch out for conditional branch to next instruction, and thus one outgoing edge.
* flow.c (init_propagate_block_info): Watch out for conditional branch to next instruction, and thus one outgoing edge. From-SVN: r33775
This commit is contained in:
parent
bdcabcd457
commit
4fb9b83058
@ -1,3 +1,8 @@
|
|||||||
|
2000-05-08 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* flow.c (init_propagate_block_info): Watch out for conditional
|
||||||
|
branch to next instruction, and thus one outgoing edge.
|
||||||
|
|
||||||
2000-05-08 Nick Clifton <nickc@cygnus.com>
|
2000-05-08 Nick Clifton <nickc@cygnus.com>
|
||||||
|
|
||||||
* config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
|
* config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
|
||||||
|
15
gcc/flow.c
15
gcc/flow.c
@ -3573,8 +3573,11 @@ init_propagate_block_info (bb, live, local_set, flags)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Identify the successor blocks. */
|
/* Identify the successor blocks. */
|
||||||
bb_false = bb->succ->succ_next->dest;
|
|
||||||
bb_true = bb->succ->dest;
|
bb_true = bb->succ->dest;
|
||||||
|
if (bb->succ->succ_next != NULL)
|
||||||
|
{
|
||||||
|
bb_false = bb->succ->succ_next->dest;
|
||||||
|
|
||||||
if (bb->succ->flags & EDGE_FALLTHRU)
|
if (bb->succ->flags & EDGE_FALLTHRU)
|
||||||
{
|
{
|
||||||
basic_block t = bb_false;
|
basic_block t = bb_false;
|
||||||
@ -3583,6 +3586,16 @@ init_propagate_block_info (bb, live, local_set, flags)
|
|||||||
}
|
}
|
||||||
else if (! (bb->succ->succ_next->flags & EDGE_FALLTHRU))
|
else if (! (bb->succ->succ_next->flags & EDGE_FALLTHRU))
|
||||||
abort ();
|
abort ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* This can happen with a conditional jump to the next insn. */
|
||||||
|
if (JUMP_LABEL (bb->end) != bb_true->head)
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
/* Simplest way to do nothing. */
|
||||||
|
bb_false = bb_true;
|
||||||
|
}
|
||||||
|
|
||||||
/* Extract the condition from the branch. */
|
/* Extract the condition from the branch. */
|
||||||
cond_true = XEXP (SET_SRC (PATTERN (bb->end)), 0);
|
cond_true = XEXP (SET_SRC (PATTERN (bb->end)), 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user