Again, __transactions being barriers and all, I don't think we should complicate things unnecessarily at this point, since it doesn't happen.Yes. Based on Richard Guenther's examples, my question was whether your code (without having actually looked at it ;) ) would also allow post-dominating loads in nontransactional code to enable hoisting (as in the __transaction_atomic { if (foo) load; } load case. I believe only loads within the same transaction should count, and I wasn't sure whether you were ensuring that (and/or whether a barrier would enforce this either).
In my patch, post-dominating loads in nontransactional code is fair game for hoisting, and will get hoisted out. However, tweaking it to make sure this post-dominating load occurs in a transaction is trivial since we have a bitmap of all BBs in transactions.
