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.

Reply via email to