[PATCH] D88861: GC-parseable element atomic memcpy/memmove

Serguei Katkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 21 03:47:46 PDT 2020


skatkov added inline comments.


================
Comment at: llvm/docs/LangRef.rst:20257
 lowered to a call to the symbol ``__llvm_memcpy_element_unordered_atomic_*``. Where '*'
-is replaced with an actual element size.
+is replaced with an actual element size. See see :ref:`RewriteStatepointsForGC intrinsic
+lowering <RewriteStatepointsForGC_intrinsic_lowering>` for details on GC specific
----------------
See see?


================
Comment at: llvm/docs/LangRef.rst:20336
 ``__llvm_memmove_element_unordered_atomic_*``. Where '*' is replaced with an
 actual element size.
 
----------------
The same link as for memcpy?


================
Comment at: llvm/docs/Statepoints.rst:836
+take a safepoint. Otherwise, the call is made GC parseable by wrapping the
+call into a statepoint. This makes is possible to take a safepoint during
+copy operation. Note that a GC parseable copy operation is not required to
----------------
"This makes it is possible"?


================
Comment at: llvm/lib/Transforms/Utils/Local.cpp:2680
+             IID != Intrinsic::experimental_deoptimize &&
+             IID != Intrinsic::memcpy_element_unordered_atomic &&
+             IID != Intrinsic::memmove_element_unordered_atomic;
----------------
I'm a bit confused here. RS4GC consider memcpy/memove as gc leaf if there is no deopt bundle.
Here we do not check for deopt bundle. Is it ok?


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

https://reviews.llvm.org/D88861



More information about the llvm-commits mailing list