loop.c (emit_iv_add_mult): Scan the entire insn list generated for the sequence, recording base values.
8 * loop.c (emit_iv_add_mult): Scan the entire insn list generated for the sequence, recording base values. From-SVN: r21208
This commit is contained in:
parent
a2d926467c
commit
00116a7b6d
1 changed files with 17 additions and 1 deletions
18
gcc/loop.c
18
gcc/loop.c
|
@ -6005,7 +6005,23 @@ emit_iv_add_mult (b, m, a, reg, insert_before)
|
|||
|
||||
emit_insn_before (seq, insert_before);
|
||||
|
||||
record_base_value (REGNO (reg), b, 0);
|
||||
/* It is entirely possible that the expansion created lots of new
|
||||
registers. Iterate over the sequence we just created and
|
||||
record them all. */
|
||||
|
||||
if (GET_CODE (seq) == SEQUENCE)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < XVECLEN (seq, 0); ++i)
|
||||
{
|
||||
rtx set = single_set (XVECEXP (seq, 0, i));
|
||||
if (set && GET_CODE (SET_DEST (set)) == REG)
|
||||
record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
|
||||
}
|
||||
}
|
||||
else if (GET_CODE (seq) == SET
|
||||
&& GET_CODE (SET_DEST (seq)) == REG)
|
||||
record_base_value (REGNO (SET_DEST (seq)), SET_SRC (seq), 0);
|
||||
}
|
||||
|
||||
/* Test whether A * B can be computed without
|
||||
|
|
Loading…
Add table
Reference in a new issue