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

Artur Pilipenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 16:43:49 PDT 2020


apilipenko added a comment.

Currently, if we have a loop with a safepoint poll it is not converted into a memcpy/memmove. This is because the safepoint has read semantic and prevents LoopIdiomRecognize from performing the transform. In theory we can have a transform which recognizes loops with safepoints and converts them to non-leaf memcpy/memmove. It will be up to this new transform to figure out the legality and interactions with the runtime requirements.

Also, note that a memcpy/memmove without "gc-leaf-function" attribute is not required to have a safepoint. It's lowered in a way which *may* have a safepoint. This is why it's correct to lower to a GC leaf representation and choose not to have a safepoint.


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

https://reviews.llvm.org/D88861



More information about the llvm-commits mailing list