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)
* v850: New directory for v850 port.
......
......@@ -8205,21 +8205,37 @@ update_flow_info (notes, first, last, orig_insn)
for (insn = first;; insn = NEXT_INSN (insn))
{
set = single_set (insn);
if (set)
rtx pat;
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_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest))
{
found_orig_dest = 1;
break;
}
else if (GET_CODE (SET_DEST (set)) == SUBREG
&& SUBREG_REG (SET_DEST (set)) == orig_dest)
if (GET_CODE (set) == SET)
{
found_split_dest = 1;
break;
if (GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest))
{
found_orig_dest = 1;
break;
}
else if (GET_CODE (SET_DEST (set)) == SUBREG
&& SUBREG_REG (SET_DEST (set)) == orig_dest)
{
found_split_dest = 1;
break;
}
}
if (--i < 0)
break;
set = XVECEXP (pat, 0, i);
}
if (insn == last)
......
......@@ -4108,21 +4108,36 @@ update_flow_info (notes, first, last, orig_insn)
for (insn = first; ; insn = NEXT_INSN (insn))
{
set = single_set (insn);
if (set)
rtx pat;
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_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest))
{
found_orig_dest = 1;
break;
}
else if (GET_CODE (SET_DEST (set)) == SUBREG
&& SUBREG_REG (SET_DEST (set)) == orig_dest)
if (GET_CODE (set) == SET)
{
found_split_dest = 1;
break;
if (GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) == REGNO (orig_dest))
{
found_orig_dest = 1;
break;
}
else if (GET_CODE (SET_DEST (set)) == SUBREG
&& SUBREG_REG (SET_DEST (set)) == orig_dest)
{
found_split_dest = 1;
break;
}
}
if (--i < 0)
break;
set = XVECEXP (pat, 0, i);
}
if (insn == last)
......
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