http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52173
--- Comment #11 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-09-20 15:08:55 UTC --- (In reply to comment #10) > On Wed, 19 Sep 2012, aldyh at gcc dot gnu.org wrote: > > > After loop unrolling the above remains unchanged, but the following is > > inserted > > *before* bb 3. [Note, the following is after update_ssa(TODO_update_ssa), > > but > > before cleanup_tree_cfg() for clarity.] > > > > <bb 8>: > > # .MEM_12 = PHI <.MEM_3(D)(2)> > > # ivtmp_5 = PHI <10(2)> > > # .MEM_6 = VDEF <.MEM_13> <-- *************************** --> > > ^^^^^^^^^^^^ <-- shouldn't this be <.MEM_12> ????? > > <-- *************************** --> > > Yes. Btw, is_new_name says yes to .MEM_12, false for .MEM_6 and 13. update_ssa should have adjusted the use .MEM_13 to .MEM_12, but it didn't for some reason. I see that the DEF stmt for .MEM_6 is # .MEM_59 = VDEF <.MEM_13> __transaction_relaxed // SUBCODE=[ GTMA_HAVE_STORE ] though before update_ssa. That looks bogus to me. Now I have to leave ... maybe the above is some hints to you (or I will try to look further tomorrow).