http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46567
--- Comment #4 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2010-12-13 11:12:08 UTC --- [Comments from Richard.] There are two possible solutions: (1) Teach inlining to propagate the in_transaction_p bit to every call within the function that gets inlined, (2) Don't use an in_transaction_p bit. I.e. rewrite <tmipa> to only use the region blocks bitmap, rather than cheating with on-the-side data that has to be kept up to date by other parties. Nr 2 is probably the better solution. You might be able to use cgraph_edge->aux as a replacement marker for in_transaction_p during the <tmipa> pass. That would certainly make things like the use in ipa_tm_note_irrevocable easier. [Comments from Aldy] I'll be fixing this with option 2, but I'm trying to come up with a work around for now.