http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573



Alexandre Oliva <aoliva at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2012-12-07

                 CC|                            |aoliva at gcc dot gnu.org,

                   |                            |zadeck at naturalbridge dot

                   |                            |com

     Ever Confirmed|0                           |1



--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-12-07 
00:14:12 UTC ---

I've looked a bit into this.  The code in df-problems.c (see bug 32749) is at

least inconsistent.  df_note_bb_compute is supposed to set do_not_gen at the

def, so that we emit the REG_UNUSED but not the REG_DEAD.  However, it does not

set do_not_gen for clobbers (may or must), even though it emits the note.  Oh,

and it only emits the note if it's not a call;for calls, the REG_UNUSED note is

not emitted for clobbers (I wonder why that is), and we still fail to set

do_not_gen, so we emit the REG_DEAD for the parallel use anyway.



Kenny, it seems to me that we should set do_not_gen regardless of any clobber

flags, because the whole (documented) point of do_not_gen is to avoid emitting

a REG_DEAD for a parallel use, and we should make the REG_UNUSED note emission

consistently conditional on clobbers.  Does it sound like this would work?

Reply via email to