use AA::isNoAlias instead of open coding it.  Remove an extraneous noalias check:
there is no need to check to see if the source and dest of a memcpy are noalias,
behavior is undefined if not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119691 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/lib/Transforms/Scalar/MemCpyOptimizer.cpp
index 39f40a1..cab8bac 100644
--- a/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+++ b/lib/Transforms/Scalar/MemCpyOptimizer.cpp
@@ -689,22 +689,18 @@
     return false;
   
   // Finally, we have to make sure that the dest of the second does not
-  // alias the source of the first
+  // alias the source of the first.
   AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
-  if (AA.alias(M->getRawDest(), MSize, MDep->getRawSource(), DepSize) !=
-      AliasAnalysis::NoAlias)
-    return false;
-  else if (AA.alias(M->getRawDest(), MSize, M->getRawSource(), MSize) !=
-           AliasAnalysis::NoAlias)
-    return false;
-  else if (AA.alias(MDep->getRawDest(), DepSize, MDep->getRawSource(), DepSize)
-           != AliasAnalysis::NoAlias)
+  if (!AA.isNoAlias(M->getRawDest(), MSize, MDep->getRawSource(), DepSize) ||
+      !AA.isNoAlias(M->getRawDest(), MSize, M->getRawSource(), MSize))
     return false;
   
   // If all checks passed, then we can transform these memcpy's
-  const Type *ArgTys[3] = { M->getRawDest()->getType(),
+  const Type *ArgTys[3] = {
+    M->getRawDest()->getType(),
     MDep->getRawSource()->getType(),
-    M->getLength()->getType() };
+    M->getLength()->getType()
+  };
   Function *MemCpyFun =
     Intrinsic::getDeclaration(M->getParent()->getParent()->getParent(),
                               M->getIntrinsicID(), ArgTys, 3);