regrename.c (do_replace, [...]): Update register attributes.
authorJan Hubicka <jh@suse.cz>
Fri, 7 Feb 2003 01:20:04 +0000 (02:20 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 7 Feb 2003 01:20:04 +0000 (01:20 +0000)
* regrename.c (do_replace, find_oldest_value_reg,
copyprop_hardreg_forward_1): Update register attributes.

From-SVN: r62509

gcc/ChangeLog
gcc/regrename.c

index 9a288d5292d1279a6c207952d8971b2f77a04f43..948e11df57779eedc47b19eb5a591df026a3eb99 100644 (file)
@@ -1,3 +1,8 @@
+Fri Feb  7 02:18:57 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c (do_replace, find_oldest_value_reg,
+       copyprop_hardreg_forward_1): Update register attributes.
+
 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
 
        * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
index dce0e898751816f5089f584336043ad8d1b0def8..027e2f444b7808465de9c39ce39795ca9a28244d 100644 (file)
@@ -377,9 +377,12 @@ do_replace (chain, reg)
   while (chain)
     {
       unsigned int regno = ORIGINAL_REGNO (*chain->loc);
+      struct reg_attrs * attr = REG_ATTRS (*chain->loc);
+
       *chain->loc = gen_raw_REG (GET_MODE (*chain->loc), reg);
       if (regno >= FIRST_PSEUDO_REGISTER)
        ORIGINAL_REGNO (*chain->loc) = regno;
+      REG_ATTRS (*chain->loc) = attr;
       chain = chain->next_use;
     }
 }
@@ -1393,6 +1396,7 @@ find_oldest_value_reg (class, reg, vd)
                                     regno)))
       {
        ORIGINAL_REGNO (new) = ORIGINAL_REGNO (reg);
+        REG_ATTRS (new) = REG_ATTRS (reg);
        return new;
       }
     }
@@ -1686,6 +1690,7 @@ copyprop_hardreg_forward_1 (bb, vd)
                  if (validate_change (insn, &SET_SRC (set), new, 0))
                    {
                      ORIGINAL_REGNO (new) = ORIGINAL_REGNO (src);
+                     REG_ATTRS (new) = REG_ATTRS (src);
                      if (rtl_dump_file)
                        fprintf (rtl_dump_file,
                                 "insn %u: replaced reg %u with %u\n",