[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