From: Jeff Law Date: Thu, 20 May 1999 00:41:26 +0000 (-0600) Subject: jump.c (can_reverse_comparison_p): Do not abort if the comparison insn for a conditio... X-Git-Tag: releases/libgcj-2.95.0~447 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8d41a69eeb83daaeff527ce512bd6ef78d7ad07;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/jump.c b/gcc/jump.c index 9b727fa32c85..01df0dbba759 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;