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?