[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