On 02/13/2012 01:35 AM, Richard Guenther wrote: > On Fri, 10 Feb 2012, Richard Henderson wrote: > >> On 02/10/2012 01:44 AM, Richard Guenther wrote: >>> What is the reason to keep a GIMPLE_TRANSACTION stmt after >>> TM lowering and not lower it to a builtin function call? >> >> Because "real" optimization hasn't happened yet, and we hold >> out hope that we'll be able to delete stuff as unreachable. >> Especially all instances of transaction_cancel. >> >>> It seems the body is empty after lowering (what's the label thing?) >> >> The label is the transaction cancel label. >> >> When we finally convert GIMPLE_TRANSACTION a builtin, we'll >> generate different code layouts with and without a cancel. > > Ah, I see. But wouldn't a placeholder builtin function be > effectively the same as using a new GIMPLE stmt kind?
Except for the whole "need to hold on to a label" thing. Honestly, think about that for 10 seconds and tell me that a builtin is better than simply re-tasking the gimple code that we already have around. r~