[PATCH] D115302: [AA] Teach AA about convergent instrinsics that affect loads/stores.

Artem Belevich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 8 12:04:32 PST 2021


tra added a comment.

In D115302#3178688 <https://reviews.llvm.org/D115302#3178688>, @nikic wrote:

> I don't think this should be part of the main AA implementation, but rather be sunk into the AA provider that is producing incorrect results (here GlobalModRef, unless BasicAA also produces an incorrect result?)

BasicAA does not seem to have any impact on the miscompile.

I've moved the code to `GlobalModRef` and changed it to check for the absence of nosync.

The good news is that it fixes my case. The bad -- it breaks a lot of other GlobalModRef tests. IIUIC, it's due to the functions in the tests not having `nosync`.

What's supposed to be the source of `nosync` attribute? Is it expected to be set explicitly by the user, or does LLVM relies on automatically inferring it?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115302/new/

https://reviews.llvm.org/D115302



More information about the llvm-commits mailing list