jump.c (can_reverse_comparison_p): Do not abort if the comparison insn for a conditional jump can not be found.
p * jump.c (can_reverse_comparison_p): Do not abort if the comparison insn for a conditional jump can not be found. From-SVN: r27043
This commit is contained in:
parent
b87bc8f3ad
commit
f8d41a69ee
11
gcc/jump.c
11
gcc/jump.c
@ -3151,8 +3151,17 @@ can_reverse_comparison_p (comparison, insn)
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
rtx prev = prev_nonnote_insn (insn);
|
rtx prev = prev_nonnote_insn (insn);
|
||||||
rtx set = single_set (prev);
|
rtx set;
|
||||||
|
|
||||||
|
/* If the comparison itself was a loop invariant, it could have been
|
||||||
|
hoisted out of the loop. If we proceed to unroll such a loop, then
|
||||||
|
we may not be able to find the comparison when copying the loop.
|
||||||
|
|
||||||
|
Returning zero in that case is the safe thing to do. */
|
||||||
|
if (prev == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
set = single_set (prev);
|
||||||
if (set == 0 || SET_DEST (set) != arg0)
|
if (set == 0 || SET_DEST (set) != arg0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user