OSDN Git Service

Add a case where reg_n_refs is cleared
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Jan 1997 20:25:29 +0000 (20:25 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Jan 1997 20:25:29 +0000 (20:25 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13561 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index be5843b..a0f15b3 100644 (file)
@@ -2355,7 +2355,9 @@ try_combine (i3, i2, i1)
 
        /* If the reg formerly set in I2 died only once and that was in I3,
           zero its use count so it won't make `reload' do any work.  */
-       if (! added_sets_2 && newi2pat == 0 && ! i2dest_in_i2src)
+       if (! added_sets_2
+           && (newi2pat == 0 || ! reg_mentioned_p (i2dest, newi2pat))
+           && ! i2dest_in_i2src)
          {
            regno = REGNO (i2dest);
            reg_n_sets[regno]--;