rtlanal.c (single_set): Reject if the parallel has anything except SET or USE or CLOBBER.
* rtlanal.c (single_set): Reject if the parallel has anything except SET or USE or CLOBBER. From-SVN: r32614
This commit is contained in:
parent
7d89dda571
commit
787ccee012
|
@ -1,3 +1,8 @@
|
|||
2000-03-17 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* rtlanal.c (single_set): Reject if the parallel has anything
|
||||
except SET or USE or CLOBBER.
|
||||
|
||||
2000-03-17 Jeff Law <law@cygnus.com>
|
||||
Richard Henderson <rth@cygnus.com>
|
||||
|
||||
|
|
|
@ -703,15 +703,29 @@ single_set (insn)
|
|||
else if (GET_CODE (PATTERN (insn)) == PARALLEL)
|
||||
{
|
||||
for (i = 0, set = 0; i < XVECLEN (PATTERN (insn), 0); i++)
|
||||
if (GET_CODE (XVECEXP (PATTERN (insn), 0, i)) == SET
|
||||
&& (! find_reg_note (insn, REG_UNUSED,
|
||||
SET_DEST (XVECEXP (PATTERN (insn), 0, i)))
|
||||
|| side_effects_p (XVECEXP (PATTERN (insn), 0, i))))
|
||||
{
|
||||
rtx sub = XVECEXP (PATTERN (insn), 0, i);
|
||||
|
||||
switch (GET_CODE (sub))
|
||||
{
|
||||
case USE:
|
||||
case CLOBBER:
|
||||
break;
|
||||
|
||||
case SET:
|
||||
if (! find_reg_note (insn, REG_UNUSED, SET_DEST (sub))
|
||||
|| side_effects_p (sub))
|
||||
{
|
||||
if (set)
|
||||
return 0;
|
||||
else
|
||||
set = XVECEXP (PATTERN (insn), 0, i);
|
||||
set = sub;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue