On 10/13/2015 05:17 PM, Pierre-Marie de Rodat wrote:
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index c08ae36..56e1cf5 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -1464,9 +1464,12 @@ df_live_bb_local_compute (unsigned int bb_index)
               seen are included in the gen set. */
            bitmap_set_bit (&bb_info->gen, regno);
          else if (DF_REF_FLAGS_IS_SET (def, DF_REF_MUST_CLOBBER))
-           /* Only must clobbers for the entire reg destroy the
-              value.  */
-           bitmap_set_bit (&bb_info->kill, regno);
+           {
+             /* Only must clobbers for the entire reg destroy the
+                value.  */
+             bitmap_set_bit (&bb_info->kill, regno);
+             bitmap_clear_bit (&bb_info->gen, regno);
+           }
          else if (! DF_REF_FLAGS_IS_SET (def, DF_REF_MAY_CLOBBER))
            bitmap_set_bit (&bb_info->gen, regno);
        }

I think I haven't approved that yet. It is ok, but I do wonder whether there really is a point distinguishing between MUST_CLOBBER and MAY_CLOBBER.


Bernd

Reply via email to