http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56572
--- Comment #6 from Aldy Hernandez <aldyh at redhat dot com> --- > walk the transaction tree and delete nested transactions. Hopefully > we could do this before actually creating the uninstrumented path. > > I think moving the creation of the uninstrumented path after ipa_inline > is probably a mistake. The inliner makes decisions e.g. based on the Ah I see. Yes, I agree that the creation of the uninstrumented path after ipa_inline is not a good idea, but then you are contradicting yourself. You want to delete nested transactions before creating the uninstrumented path (first quoted paragraph), but yet you don't want to move the uninstrumented path after ipa_inline (second quoted paragraph). Do you mean remove the nested transactions after ipa_inline (possibly tmmark), but then just suck it up and handle the multiple instrumented/uninstrumented code paths in the CFG? Or do you mean something else? Or do you mean make early inling smarter so it inlines transactions properly? Although perhaps something else could be added by ipa_inline, so we'd have the same problem.