From f8d41a69eeb83daaeff527ce512bd6ef78d7ad07 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 19 May 1999 18:41:26 -0600 Subject: [PATCH] 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 --- gcc/jump.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/jump.c b/gcc/jump.c index 9b727fa32c8..01df0dbba75 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -3151,8 +3151,17 @@ can_reverse_comparison_p (comparison, 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) return 0; -- 2.30.2