[PATCH] D104349: [compiler-rt][atomics] Add `restrict` modifier to pointer arguments

Kai Luo via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 1 02:58:58 PDT 2021


lkail updated this revision to Diff 355811.
lkail retitled this revision from "[compiler-rt][atomics][RFC] Enable __atomic_exchange handling case when `val == old`" to "[compiler-rt][atomics] Add `restrict` modifier to pointer arguments".
lkail edited the summary of this revision.
lkail added a comment.

Following @theraven 's suggestion.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104349/new/

https://reviews.llvm.org/D104349

Files:
  compiler-rt/lib/builtins/atomic.c


Index: compiler-rt/lib/builtins/atomic.c
===================================================================
--- compiler-rt/lib/builtins/atomic.c
+++ compiler-rt/lib/builtins/atomic.c
@@ -225,8 +225,10 @@
 }
 
 /// Performs an atomic exchange operation between two pointers.  This is atomic
-/// with respect to the target address.
-void __atomic_exchange_c(int size, void *ptr, void *val, void *old, int model) {
+/// with respect to the target address. ptr, val and old should not alias each
+/// other.
+void __atomic_exchange_c(int size, void *restrict ptr, void *restrict val,
+                         void *restrict old, int model) {
 #define LOCK_FREE_ACTION(type)                                                 \
   *(type *)old =                                                               \
       __c11_atomic_exchange((_Atomic(type) *)ptr, *(type *)val, model);        \


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104349.355811.patch
Type: text/x-patch
Size: 888 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210701/d0dfd1fd/attachment.bin>


More information about the llvm-commits mailing list