Commit c1194d74 by John Wehle Committed by Jeff Law

combine.c (recog_for_combine): Remove the old notes prior to attempting to…

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
parent 4f3aeae1
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 <cchavva@redhat.com> 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
* varasm.c (output_constructor): Add .align 0 for packed vars. * varasm.c (output_constructor): Add .align 0 for packed vars.
......
...@@ -9569,6 +9569,7 @@ recog_for_combine (pnewpat, insn, pnotes) ...@@ -9569,6 +9569,7 @@ recog_for_combine (pnewpat, insn, pnotes)
int num_clobbers_to_add = 0; int num_clobbers_to_add = 0;
int i; int i;
rtx notes = 0; rtx notes = 0;
rtx old_notes;
/* If PAT is a PARALLEL, check to see if it contains the CLOBBER /* 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 we use to indicate that something didn't match. If we find such a
...@@ -9579,6 +9580,10 @@ recog_for_combine (pnewpat, insn, pnotes) ...@@ -9579,6 +9580,10 @@ recog_for_combine (pnewpat, insn, pnotes)
&& XEXP (XVECEXP (pat, 0, i), 0) == const0_rtx) && XEXP (XVECEXP (pat, 0, i), 0) == const0_rtx)
return -1; 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? */ /* Is the result of combination a valid instruction? */
insn_code_number = recog (pat, insn, &num_clobbers_to_add); insn_code_number = recog (pat, insn, &num_clobbers_to_add);
...@@ -9608,6 +9613,8 @@ recog_for_combine (pnewpat, insn, pnotes) ...@@ -9608,6 +9613,8 @@ recog_for_combine (pnewpat, insn, pnotes)
insn_code_number = recog (pat, insn, &num_clobbers_to_add); 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 /* 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. */ them. Then check to make sure that all of them are dead. */
if (num_clobbers_to_add) if (num_clobbers_to_add)
...@@ -12079,7 +12086,6 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) ...@@ -12079,7 +12086,6 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
case REG_EQUAL: case REG_EQUAL:
case REG_EQUIV: case REG_EQUIV:
case REG_NONNEG:
case REG_NOALIAS: case REG_NOALIAS:
/* These notes say something about results of an insn. We can /* 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 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) ...@@ -12137,9 +12143,12 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
} }
break; break;
case REG_NONNEG:
case REG_WAS_0: case REG_WAS_0:
/* It is too much trouble to try to see if this note is still /* These notes say something about the value of a register prior
correct in all situations. It is better to simply delete it. */ 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; break;
case REG_RETVAL: case REG_RETVAL:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment