[PATCH] D129516: [Intrinsics] Add `nocallback` to the memset/cpy/move intrinsics
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 11 15:15:18 PDT 2022
nikic added inline comments.
================
Comment at: llvm/include/llvm/IR/Intrinsics.td:622
[IntrArgMemOnly, IntrWillReturn, IntrNoFree,
+ IntrNoCallback,
NoCapture<ArgIndex<0>>, NoCapture<ArgIndex<1>>,
----------------
jdoerfert wrote:
> nikic wrote:
> > Why can't we use DefaultAttrsIntrinsic here? llvm.memcpy can't synchronize, right?
> The problem is the volatile flag. I don't think we can/should make them nosync as long as we have that one...
Ah, I assumed that nosync only covers atomic accesses and not volatile ones, but apparently volatile is explicitly covered by nosync in LangRef:
> Synchronization is considered possible in the presence of atomic accesses that enforce an order, thus not “unordered” and “monotonic”, volatile accesses, as well as convergent function calls.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129516/new/
https://reviews.llvm.org/D129516
More information about the llvm-commits
mailing list