From: John Wehle Date: Fri, 4 Aug 2000 19:16:05 +0000 (+0000) Subject: combine.c (recog_for_combine): Remove the old notes prior to attempting to recognize... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c1194d740388113a485bd42652d40d4e901152ee;p=gcc.git combine.c (recog_for_combine): Remove the old notes prior to attempting to recognize the new pattern. * combine.c (recog_for_combine): Remove the old notes prior to attempting to recognize the new pattern. (distribute_notes): Ignore REG_NONNEG notes. From-SVN: r35492 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b35e7377f5..74500393d8f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com) + + * combine.c (recog_for_combine): Remove the old notes + prior to attempting to recognize the new pattern. + (distribute_notes): Ignore REG_NONNEG notes. + 2000-08-04 Chandrakala Chavva * varasm.c (output_constructor): Add .align 0 for packed vars. diff --git a/gcc/combine.c b/gcc/combine.c index 9f1c59ef698..0d43891865c 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -9569,6 +9569,7 @@ recog_for_combine (pnewpat, insn, pnotes) int num_clobbers_to_add = 0; int i; rtx notes = 0; + rtx old_notes; /* If PAT is a PARALLEL, check to see if it contains the CLOBBER we use to indicate that something didn't match. If we find such a @@ -9579,6 +9580,10 @@ recog_for_combine (pnewpat, insn, pnotes) && XEXP (XVECEXP (pat, 0, i), 0) == const0_rtx) return -1; + /* Remove the old notes prior to trying to recognize the new pattern. */ + old_notes = REG_NOTES (insn); + REG_NOTES (insn) = 0; + /* Is the result of combination a valid instruction? */ insn_code_number = recog (pat, insn, &num_clobbers_to_add); @@ -9608,6 +9613,8 @@ recog_for_combine (pnewpat, insn, pnotes) insn_code_number = recog (pat, insn, &num_clobbers_to_add); } + REG_NOTES (insn) = old_notes; + /* If we had any clobbers to add, make a new pattern than contains them. Then check to make sure that all of them are dead. */ if (num_clobbers_to_add) @@ -12079,7 +12086,6 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) case REG_EQUAL: case REG_EQUIV: - case REG_NONNEG: case REG_NOALIAS: /* These notes say something about results of an insn. We can only support them if they used to be on I3 in which case they @@ -12137,9 +12143,12 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) } break; + case REG_NONNEG: case REG_WAS_0: - /* It is too much trouble to try to see if this note is still - correct in all situations. It is better to simply delete it. */ + /* These notes say something about the value of a register prior + to the execution of an insn. It is too much trouble to see + if the note is still correct in all situations. It is better + to simply delete it. */ break; case REG_RETVAL: