regclass.c (scan_one_insn): Update REG_N_REFS when optimizing handling of two-address...
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 9 May 2001 13:40:49 +0000 (13:40 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 9 May 2001 13:40:49 +0000 (13:40 +0000)
* regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
handling of two-address insns.

From-SVN: r41925

gcc/ChangeLog
gcc/regclass.c

index 03cd38f029399558648290e07d207b1a2ecabc01..5d54bb88397ee18885bdb9df10f8a4db7240ed17 100644 (file)
@@ -1,3 +1,8 @@
+Wed May  9 10:40:25 2001  Alexandre Oliva  <aoliva@redhat.com>
+
+       * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
+       handling of two-address insns.
+
 Wed May  9 10:36:18 2001  Alexandre Oliva  <aoliva@redhat.com>
 
        * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
index 001015f7c2efcf870ad79322101a5dd04a3bda71..82d90faa525f991d5628235e0d78653d5b4077e5 100644 (file)
@@ -1058,11 +1058,16 @@ scan_one_insn (insn, pass)
 
       /* This makes one more setting of new insns's dest.  */
       REG_N_SETS (REGNO (recog_data.operand[0]))++;
+      REG_N_REFS (REGNO (recog_data.operand[0]))++;
 
       *recog_data.operand_loc[1] = recog_data.operand[0];
+      REG_N_REFS (REGNO (recog_data.operand[0]))++;
       for (i = recog_data.n_dups - 1; i >= 0; i--)
        if (recog_data.dup_num[i] == 1)
-         *recog_data.dup_loc[i] = recog_data.operand[0];
+         {
+           *recog_data.dup_loc[i] = recog_data.operand[0];
+           REG_N_REFS (REGNO (recog_data.operand[0]))++;
+         }
 
       return PREV_INSN (newinsn);
     }