I'm still unsure whether the IPA inliner (not the early inliner) will add
other nested transactions, so we may have to do everything in .tmmark and
handle the dual code paths :(. Either way, this is a start.
Sure it will. At least with cross-unit inlining with LTO. You can of
course simply
disallow inlining a function that has transactions into a transaction
when transactions
are lowered already.
I'd still like to catch the common cases, like I do with this patch.
Perhaps we move this code to the .tmmark pass and handle the
uninstrumented case. rth?