[PATCH] D98284: [DSE] Handle memcpy/memset with equal non-const sizes.

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 9 14:29:07 PST 2021


nikic added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:393
+      const Value *P2 = Later.Ptr->stripPointerCasts();
+      if (P1 == P2 || AA.isMustAlias(P1, P2))
+        return OW_Complete;
----------------
I'd directly call `AA.isMustAlias(Ealier, Later)` here and forego the manual pointer cast stripping.


================
Comment at: llvm/test/Transforms/DeadStoreElimination/memory-intrinsics-sizes.ll:47
 
 define void @memcpy_equal_size_values(i8* noalias %src, i8* noalias %dst, i64 %len) {
 ; CHECK-LABEL: @memcpy_equal_size_values(
----------------
Is it actually necessary that the parameters are noalias? This looks valid to me even if src and dst alias.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D98284



More information about the llvm-commits mailing list