[llvm] [IR] Use default attributes for unordered memcpy/memset (PR #218409)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 24 07:29:05 PDT 2026


================
@@ -2565,28 +2565,24 @@ def int_xray_typedevent : Intrinsic<[], [llvm_i64_ty, llvm_ptr_ty, llvm_i64_ty],
 
 // @llvm.memcpy.element.unordered.atomic.*(dest, src, length, elementsize)
 def int_memcpy_element_unordered_atomic
-    : Intrinsic<[],
-                [llvm_anyptr_ty, llvm_anyptr_ty, llvm_anyint_ty, llvm_i32_ty],
-                [IntrArgMemOnly, IntrWillReturn, IntrNoSync,
-                 NoCapture<ArgIndex<0>>, NoCapture<ArgIndex<1>>,
-                 WriteOnly<ArgIndex<0>>, ReadOnly<ArgIndex<1>>,
-                 ImmArg<ArgIndex<3>>]>;
+    : DefaultAttrsIntrinsic<
+          [], [llvm_anyptr_ty, llvm_anyptr_ty, llvm_anyint_ty, llvm_i32_ty],
+          [IntrArgMemOnly, NoCapture<ArgIndex<0>>, NoCapture<ArgIndex<1>>,
----------------
nikic wrote:

These noaliases are dubious, because the pointers are allowed to be equal.

I also don't think that they're actually useful for anything, I don't think argument noalias on call-sites is used for anything.

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


More information about the llvm-commits mailing list