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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-09
          Component|c                           |tree-optimization
            Version|trans-mem                   |4.9.0
     Ever confirmed|0                           |1

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Confirmed.  The problem is also present in 4.9.

The problem here is that the code removing nested transactions runs as part of
the execute_lower_tm() pass:

  /* If there was absolutely nothing transaction related inside the
     transaction, we may elide it.  Likewise if this is a nested
     transaction and does not contain an abort.  */
  if (this_state == 0
      || (!(this_state & GTMA_HAVE_ABORT) && outer_state != NULL))

...whereas inlining happens in a subsequent pass.

Reply via email to