[LoopIdiom] Transform memmove-like loop into memmove (PR46179)
authorDawid Jurczak <dawid_jurek@vp.pl>
Thu, 22 Jul 2021 09:42:59 +0000 (11:42 +0200)
committerDawid Jurczak <dawid_jurek@vp.pl>
Thu, 22 Jul 2021 11:05:43 +0000 (13:05 +0200)
commit11338e998df1d577cee61e3443da750686c14475
tree470c260106ef32559d8df2f695a978fc57aab253
parentbde9415fef25e9ff6e10595a2f4f5004dd62f10a
[LoopIdiom] Transform memmove-like loop into memmove (PR46179)

The purpose of patch is to learn Loop idiom recognition pass how to recognize simple memmove patterns
in similar way like GCC: https://godbolt.org/z/fh95e83od
LoopIdiomRecognize already has machinery for memset and memcpy recognition, patch tries to extend exisiting capabilities with minimal effort.

Differential Revision: https://reviews.llvm.org/D104464
llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
llvm/test/Transforms/LoopIdiom/X86/unordered-atomic-memcpy.ll
llvm/test/Transforms/LoopIdiom/basic.ll