patch applied to loop.c
Joern Rennecke
amylaar@cygnus.co.uk
Mon Aug 2 15:52:00 GMT 1999
I have separately tested (with an x86 bootstrap) and re-applied this patch:
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.
Index: loop.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/loop.c,v
retrieving revision 1.168
diff -p -r1.168 loop.c
*** loop.c 1999/07/09 03:34:21 1.168
--- loop.c 1999/08/02 22:47:02
*************** strength_reduce (scan_start, end, loop_t
*** 4072,4077 ****
--- 4072,4078 ----
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
*************** strength_reduce (scan_start, end, loop_t
*** 4123,4129 ****
}
/* Remove this biv from the chain. */
if (bl->next)
! *bl = *bl->next;
else
{
*backbl = 0;
--- 4124,4136 ----
}
/* Remove this biv from the chain. */
if (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;
More information about the Gcc-patches
mailing list