loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class.

* loop.c (strength_reduce): When doing biv->giv conversion, fix up
	reg_biv_class.

From-SVN: r28413
This commit is contained in:
J"orn Rennecke 1999-08-02 22:50:49 +00:00 committed by Joern Rennecke
parent 39c440fc38
commit e76d23764b
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (strength_reduce): When doing biv->giv conversion, fix up
reg_biv_class.
1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
* config/float-sparc.h: New file.

View File

@ -4072,6 +4072,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
fprintf (loop_dump_stream, "is giv of biv %d\n", bl2->regno);
/* Let this giv be discovered by the generic code. */
REG_IV_TYPE (bl->regno) = UNKNOWN_INDUCT;
reg_biv_class[bl->regno] = NULL_PTR;
/* We can get better optimization if we can move the giv setting
before the first giv use. */
if (dominator
@ -4123,7 +4124,13 @@ strength_reduce (scan_start, end, loop_top, insn_count,
}
/* Remove this biv from the chain. */
if (bl->next)
*bl = *bl->next;
{
/* We move the following giv from *bl->next into *bl.
We have to update reg_biv_class for that moved biv
to point to its new address. */
*bl = *bl->next;
reg_biv_class[bl->regno] = bl;
}
else
{
*backbl = 0;