Commit acceac1a by J"orn Rennecke Committed by Jeff Law

* sched.c (update_flow_info) When looking if to set found_split_dest

        or found_orig_dest, look at all parts of a PARALLEL.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r15115
parent e20d4801
Fri Sep 5 13:36:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
* sched.c (update_flow_info) When looking if to set found_split_dest
or found_orig_dest, look at all parts of a PARALLEL.
* haifa-sched.c (update_flow_info): Likewise.
Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com)
* v850: New directory for v850 port. * v850: New directory for v850 port.
......
...@@ -8205,8 +8205,20 @@ update_flow_info (notes, first, last, orig_insn) ...@@ -8205,8 +8205,20 @@ update_flow_info (notes, first, last, orig_insn)
for (insn = first;; insn = NEXT_INSN (insn)) for (insn = first;; insn = NEXT_INSN (insn))
{ {
set = single_set (insn); rtx pat;
if (set) int i;
/* I'm not sure if this can happen, but let's be safe. */
if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
continue;
pat = PATTERN (insn);
i = GET_CODE (pat) == PARALLEL ? XVECLEN (pat, 0) : 0;
set = pat;
for (;;)
{
if (GET_CODE (set) == SET)
{ {
if (GET_CODE (SET_DEST (set)) == REG if (GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest)) && REGNO (SET_DEST (set)) == REGNO (orig_dest))
...@@ -8221,6 +8233,10 @@ update_flow_info (notes, first, last, orig_insn) ...@@ -8221,6 +8233,10 @@ update_flow_info (notes, first, last, orig_insn)
break; break;
} }
} }
if (--i < 0)
break;
set = XVECEXP (pat, 0, i);
}
if (insn == last) if (insn == last)
break; break;
......
...@@ -4108,8 +4108,19 @@ update_flow_info (notes, first, last, orig_insn) ...@@ -4108,8 +4108,19 @@ update_flow_info (notes, first, last, orig_insn)
for (insn = first; ; insn = NEXT_INSN (insn)) for (insn = first; ; insn = NEXT_INSN (insn))
{ {
set = single_set (insn); rtx pat;
if (set) int i;
/* I'm not sure if this can happen, but let's be safe. */
if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
continue;
pat = PATTERN (insn);
i = GET_CODE (pat) == PARALLEL ? XVECLEN (pat, 0) : 0;
set = pat;
for (;;)
{
if (GET_CODE (set) == SET)
{ {
if (GET_CODE (SET_DEST (set)) == REG if (GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest)) && REGNO (SET_DEST (set)) == REGNO (orig_dest))
...@@ -4124,6 +4135,10 @@ update_flow_info (notes, first, last, orig_insn) ...@@ -4124,6 +4135,10 @@ update_flow_info (notes, first, last, orig_insn)
break; break;
} }
} }
if (--i < 0)
break;
set = XVECEXP (pat, 0, i);
}
if (insn == last) if (insn == last)
break; break;
......
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