[BasicAA] Delete dead code related to memset/memcpy/memmove intrinsics [NFCI]
authorPhilip Reames <listmail@philipreames.com>
Wed, 6 Jan 2016 04:43:03 +0000 (04:43 +0000)
committerPhilip Reames <listmail@philipreames.com>
Wed, 6 Jan 2016 04:43:03 +0000 (04:43 +0000)
We only need to describe the writeonly property of one of the arguments. All of the rest of the semantics are nicely described by existing attributes in Intrinsics.td.

Differential Revision: http://reviews.llvm.org/D15880

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256910 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BasicAliasAnalysis.cpp

index 00f346ea115db035feada4c618acd13b078477fc..ace596dc5f6268b3f784b9a2780f62497612b501 100644 (file)
@@ -599,9 +599,11 @@ ModRefInfo BasicAAResult::getArgModRefInfo(ImmutableCallSite CS,
     case Intrinsic::memset:
     case Intrinsic::memcpy:
     case Intrinsic::memmove:
-      assert((ArgIdx == 0 || ArgIdx == 1) &&
-             "Invalid argument index for memory intrinsic");
-      return ArgIdx ? MRI_Ref : MRI_Mod;
+      // We don't currently have a writeonly attribute.  All other properties
+      // of these intrinsics are nicely described via attributes in
+      // Intrinsics.td and handled generically below.
+      if (ArgIdx == 0)
+        return MRI_Mod;
     }
 
   // We can bound the aliasing properties of memset_pattern16 just as we can