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

Richard Henderson <rth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.02.09 17:36:18
         AssignedTo|unassigned at gcc dot       |rth at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #1 from Richard Henderson <rth at gcc dot gnu.org> 2011-02-09 
17:36:18 UTC ---
Mine.

We aren't representing these functions as setjmp because we have more
detailed information about the control flow, and it's (eventually)
explicitly represented.  For instance, if a function has two transactions
we know that the commit for the second transaction cannot branch to the
restart of the first transaction.

The problem here is that these extra edges are not inserted until after
the tail-call discovery pass is run.  Thankfully, no actual transform 
is actually performed at that spot.  All we have to do later is clear
the bit that the tail-call discovery pass set.

Reply via email to