llvm-project
e51bb36f - [AA] Respect potential synchronization effects of inline asm (#196965)

Commit
77 days ago
[AA] Respect potential synchronization effects of inline asm (#196965) Respect potential synchronization effects of inline assembly calls on not-yet-escaped memory. We only do this if the call is both non-nosync and ModRefs "other" memory. This is consistent with the atomic memory effects established in https://github.com/llvm/llvm-project/pull/193768 and makes sure that things like readonly/argmemonly continue to work as expected even for frontends that do not emit nosync (which, right now, is all of them). The limitation to inline asm should not actually exist: The issue applies to all calls. This just fixes a particularly important case in a targeted way. (The fact that inline asm memory barrier do not work as expected is a problem for making optimizations of monotonic accesses more aggressive, e.g. it caused issues for https://github.com/llvm/llvm-project/pull/195015.) The ability of inline asm (with a `~{memory}` clobber) to synchronize was explicitly specified in https://github.com/llvm/llvm-project/pull/150191.
Author
Parents
Loading