emit-rtl.c (try_split): Avoid infinite loop if the split results in a sequence that contains the...
* emit-rtl.c (try_split): Avoid infinite loop if the split results in a sequence that contains the original insn. From-SVN: r33143
This commit is contained in:
parent
460f6b7194
commit
4b5e8abe18
@ -1,3 +1,8 @@
|
|||||||
|
Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||||||
|
|
||||||
|
* emit-rtl.c (try_split): Avoid infinite loop if the split
|
||||||
|
results in a sequence that contains the original insn.
|
||||||
|
|
||||||
2000-04-13 Andreas Jaeger <aj@suse.de>
|
2000-04-13 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
* config/mips/mips.c (expand_block_move): Pass alignment
|
* config/mips/mips.c (expand_block_move): Pass alignment
|
||||||
|
@ -2336,10 +2336,18 @@ try_split (pat, trial, last)
|
|||||||
it, in turn, will be split (SFmode on the 29k is an example). */
|
it, in turn, will be split (SFmode on the 29k is an example). */
|
||||||
if (GET_CODE (seq) == SEQUENCE)
|
if (GET_CODE (seq) == SEQUENCE)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Avoid infinite loop if any insn of the result matches
|
||||||
|
the original pattern. */
|
||||||
|
for (i = 0; i < XVECLEN (seq, 0); i++)
|
||||||
|
if (GET_CODE (XVECEXP (seq, 0, i)) == INSN
|
||||||
|
&& rtx_equal_p (PATTERN (XVECEXP (seq, 0, i)), pat))
|
||||||
|
return trial;
|
||||||
|
|
||||||
/* If we are splitting a JUMP_INSN, look for the JUMP_INSN in
|
/* If we are splitting a JUMP_INSN, look for the JUMP_INSN in
|
||||||
SEQ and copy our JUMP_LABEL to it. If JUMP_LABEL is non-zero,
|
SEQ and copy our JUMP_LABEL to it. If JUMP_LABEL is non-zero,
|
||||||
increment the usage count so we don't delete the label. */
|
increment the usage count so we don't delete the label. */
|
||||||
int i;
|
|
||||||
|
|
||||||
if (GET_CODE (trial) == JUMP_INSN)
|
if (GET_CODE (trial) == JUMP_INSN)
|
||||||
for (i = XVECLEN (seq, 0) - 1; i >= 0; i--)
|
for (i = XVECLEN (seq, 0) - 1; i >= 0; i--)
|
||||||
|
Loading…
Reference in New Issue
Block a user