regmove.c (regmove_optimize): Avoid setting a register twice in a parallel set.
* regmove.c (regmove_optimize): Avoid setting a register twice in a parallel set. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r44785
This commit is contained in:
parent
cbf4c36fa3
commit
bb948ad31d
2 changed files with 14 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2001-08-10 Roman Zippel <zippel@linux-m68k.org>
|
||||
Richard Henderson <rth@redhat.com>
|
||||
|
||||
* regmove.c (regmove_optimize): Avoid setting a register twice in
|
||||
a parallel set.
|
||||
|
||||
2001-08-10 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* doc/extend.texi (Arrays and pointers implementation): Document
|
||||
|
|
|
@ -1319,6 +1319,14 @@ regmove_optimize (f, nregs, regmove_dump_file)
|
|||
if (! set)
|
||||
continue;
|
||||
|
||||
/* Note that single_set ignores parts of a parallel set for
|
||||
which one of the destinations is REG_UNUSED. We can't
|
||||
handle that here, since we can wind up rewriting things
|
||||
such that a single register is set twice within a single
|
||||
parallel. */
|
||||
if (reg_set_p (src, insn))
|
||||
continue;
|
||||
|
||||
/* match_no/dst must be a write-only operand, and
|
||||
operand_operand/src must be a read-only operand. */
|
||||
if (match.use[op_no] != READ
|
||||
|
|
Loading…
Add table
Reference in a new issue