From 8318490b1ebf6bce70a5ee7754c489aae228d945 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Sat, 6 Feb 1999 10:08:51 +0000 Subject: [PATCH] unroll.c (find_splittable_givs): After express_from, call replace_rtx to convert dest_reg to new_reg. * unroll.c (find_splittable_givs): After express_from, call replace_rtx to convert dest_reg to new_reg. From-SVN: r25056 --- gcc/ChangeLog | 5 +++++ gcc/unroll.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a2439de867f..30ff75eaa3c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sat Feb 6 11:04:08 1999 Jim Wilson + + * unroll.c (find_splittable_givs): After express_from, call replace_rtx + to convert dest_reg to new_reg. + Sat Feb 6 10:31:35 1999 Jeffrey A Law (law@cygnus.com) * reload1.c (reload_combine_note_store): Be more careful with 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); } }