mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 17:54:48 +08:00
ifcvt.c (find_if_block): Allow join_bb as EXIT.
* ifcvt.c (find_if_block): Allow join_bb as EXIT. (merge_if_block): Handle fallout from same. From-SVN: r45093
This commit is contained in:
parent
91db4a92c6
commit
b64d061e80
@ -1,3 +1,8 @@
|
||||
2001-08-21 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* ifcvt.c (find_if_block): Allow join_bb as EXIT.
|
||||
(merge_if_block): Handle fallout from same.
|
||||
|
||||
2001-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* builtins.c (type_to_class): Fix typo in last change.
|
||||
|
@ -1881,7 +1881,9 @@ merge_if_block (test_bb, then_bb, else_bb, join_bb)
|
||||
is more than one remaining edge, it must come from elsewhere. There
|
||||
may be zero incoming edges if the THEN block didn't actually join
|
||||
back up (as with a call to abort). */
|
||||
else if (join_bb->pred == NULL || join_bb->pred->pred_next == NULL)
|
||||
else if ((join_bb->pred == NULL
|
||||
|| join_bb->pred->pred_next == NULL)
|
||||
&& join_bb != EXIT_BLOCK_PTR)
|
||||
{
|
||||
/* We can merge the JOIN. */
|
||||
if (life_data_ok)
|
||||
@ -1901,6 +1903,7 @@ merge_if_block (test_bb, then_bb, else_bb, join_bb)
|
||||
abort ();
|
||||
|
||||
/* Remove the jump and cruft from the end of the COMBO block. */
|
||||
if (join_bb != EXIT_BLOCK_PTR)
|
||||
tidy_fallthru_edge (combo_bb->succ, combo_bb, join_bb);
|
||||
}
|
||||
|
||||
@ -2067,7 +2070,7 @@ find_if_block (test_bb, then_edge, else_edge)
|
||||
next_index = then_bb->index;
|
||||
if (else_bb && ++next_index != else_bb->index)
|
||||
return FALSE;
|
||||
if (++next_index != join_bb->index)
|
||||
if (++next_index != join_bb->index && join_bb->index != EXIT_BLOCK)
|
||||
{
|
||||
if (else_bb)
|
||||
join_bb = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user