[llvm] [LangRef] asm clobber constrains: '~memory' allows reads and synchronization (PR #150191)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sat Dec 13 03:31:52 PST 2025
https://github.com/nikic approved this pull request.
This looks fine to me as a clarification.
In terms of transforms, the usual caveat that fences inside calls are ignored of course applies to inline asm calls as well. Though possibly that's something we can improve separately from the more tricky problem of general calls.
I do find it somewhat confusing that we have all of `~{memory}`, `asm sideffect` and `memory(...)` on the call-site. I believe from a middle-end perspective, the only thing that actually matters is `memory(...)`.
Similarly we have both the `unwind` inline asm property and the `nounwind` call attribute.
I kind of wonder whether we shouldn't be encoding this stuff using *only* the standard attributes instead of representing the same fact in multiple different ways. But I guess this is largely orthogonal to this PR...
https://github.com/llvm/llvm-project/pull/150191
More information about the llvm-commits
mailing list