flow.c (find_auto_inc): Also make sure there aren't any sets of the incremented register between the...

* flow.c (find_auto_inc): Also make sure there aren't
        any sets of the incremented register between the memory
        reference and increment insn.

From-SVN: r11682
This commit is contained in:
Jeff Law 1996-04-08 14:31:32 -06:00
parent 3066b88a9f
commit b24884cd27
1 changed files with 5 additions and 1 deletions

View File

@ -2231,7 +2231,11 @@ find_auto_inc (needed, x, insn)
else if (GET_CODE (q) == REG
/* PREV_INSN used here to check the semi-open interval
[insn,incr). */
&& ! reg_used_between_p (q, PREV_INSN (insn), incr))
&& ! reg_used_between_p (q, PREV_INSN (insn), incr)
/* We must also check for sets of q as q may be
a call clobbered hard register and there may
be a call between PREV_INSN (insn) and incr. */
&& ! reg_set_between_p (q, PREV_INSN (insn), incr))
{
/* We have *p followed sometime later by q = p+size.
Both p and q must be live afterward,