[MemCpyOpt] Teach memcpyopt to handle loads from the constant memory.
authorMichael Liao <michael.hliao@gmail.com>
Thu, 5 Aug 2021 20:48:49 +0000 (16:48 -0400)
committerMichael Liao <michael.hliao@gmail.com>
Fri, 6 Aug 2021 16:43:52 +0000 (12:43 -0400)
commitd1cacd59281937fccc682babbb8a259a6aa79c68
tree68a8ed67215e5a529f63e1887dfdfa23ed28cded
parentb2ca4dc935859b324fd7e9ca804160913a7468a5
[MemCpyOpt] Teach memcpyopt to handle loads from the constant memory.

- Loads from the constant memory (either explicit one or as the source
  of memory transfer intrinsics) won't alias any stores.

Reviewed By: asbirlea, efriedma

Differential Revision: https://reviews.llvm.org/D107605
llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
llvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll
llvm/test/Transforms/MemCpyOpt/memcpy.ll
llvm/test/Transforms/MemCpyOpt/memmove.ll
llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll