[llvm] [MSSA] Don't check non-AA memory effects when using template access (PR #76142)

Alina Sbirlea via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 2 12:19:20 PST 2024


alinas wrote:

In your example `nowreadnone` is a MemoryDef, which doesn't get the defining access updated. It has an optimized field which will be set to `writes x` but its defining should still be `writes y`. 
The mechanism for deleting accesses relies on this too. If a clone is created for `nowreadnone`, then deleted later (if checked and found it doesn't access memory), then all it's uses will get as the defining access, its own defining access.

I'm ok with moving fwd with this solution to resolve the asserts. I haven't found a counter example for the generalization yet, but I need more time to check it's safe, it's still possible it's missing cases where it's not correct.

https://github.com/llvm/llvm-project/pull/76142


More information about the llvm-commits mailing list