This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PR51752] publication safety violations in loop invariant motion pass



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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]