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