unroll.c (find_splittable_givs): After express_from, call replace_rtx to convert...
authorJim Wilson <wilson@cygnus.com>
Sat, 6 Feb 1999 10:08:51 +0000 (10:08 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 6 Feb 1999 10:08:51 +0000 (03:08 -0700)
        * unroll.c (find_splittable_givs): After express_from, call replace_rtx
        to convert dest_reg to new_reg.

From-SVN: r25056

gcc/ChangeLog
gcc/unroll.c

index a2439de867ff2e48f4dfa330869748af0828ada3..30ff75eaa3cabbf12a50ca2e5ab9f17a6567ecd9 100644 (file)
@@ -1,3 +1,8 @@
+Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * 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
index bb5770d44fda4ecfa509e48a775fd7f0e5925fcf..8737544ae68557b1aa648e84723d7bb29f8e2bff 100644 (file)
@@ -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);
                    }
 
                }