summaryrefslogtreecommitdiff
path: root/gcc/unroll.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-02-06 10:08:51 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-02-06 10:08:51 +0000
commit2f63c0d34fe9b5c52d7219dba0e020af81dea288 (patch)
tree8a4fe0b6462bc893be59144efa432a63614a626b /gcc/unroll.c
parent2ed85bb65a694112c701d0e29c1d8cb6887d2da6 (diff)
downloadgcc-2f63c0d34fe9b5c52d7219dba0e020af81dea288.tar.gz
* unroll.c (find_splittable_givs): After express_from, call replace_rtx
to convert dest_reg to new_reg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r--gcc/unroll.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index bb5770d44fd..8737544ae68 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -2900,7 +2900,7 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
copy_loop_body works around the problem for the
DEST_REG givs themselves, but it can't handle
DEST_ADDR givs that have been combined with
- derived a derived DEST_REG giv.
+ a derived DEST_REG giv.
So Handle V as if the giv from which V->SAME has
been derived has been combined with V.
recombine_givs only derives givs from givs that
@@ -2909,6 +2909,8 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
same = same->derived_from;
new_reg = express_from (same, v);
+ new_reg = replace_rtx (new_reg, same->dest_reg,
+ same->new_reg);
}
/* If the address giv has a constant in its new_reg value,
@@ -3025,6 +3027,8 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
v->same = v->same->derived_from;
v->new_reg = express_from (v->same, v);
+ v->new_reg = replace_rtx (v->new_reg, v->same->dest_reg,
+ v->same->new_reg);
}
}