diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-08-02 22:50:49 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-08-02 23:50:49 +0100 |
commit | e76d23764b387e9636b5d568b62531019f7f2273 (patch) | |
tree | e65c2ce9ff60d923389ab1b4fec1b80c5cc11cb3 /gcc/loop.c | |
parent | 39c440fc3829fce3619b8c38b5637648b936f95b (diff) | |
download | gcc-e76d23764b387e9636b5d568b62531019f7f2273.zip gcc-e76d23764b387e9636b5d568b62531019f7f2273.tar.gz gcc-e76d23764b387e9636b5d568b62531019f7f2273.tar.bz2 |
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
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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; |