OSDN Git Service

* regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 May 2001 13:40:49 +0000 (13:40 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 May 2001 13:40:49 +0000 (13:40 +0000)
handling of two-address insns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41925 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/regclass.c

index 03cd38f..5d54bb8 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 001015f..82d90fa 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);
     }