Add support for memmove
authorChris Lattner <sabre@nondot.org>
Sun, 9 Nov 2003 03:32:52 +0000 (03:32 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 9 Nov 2003 03:32:52 +0000 (03:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9824 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/Local.cpp

index f3406b76990e76ea842b95f838777054008cdf1b..0aca21a437ba90fcbb2aa3b5e1b2fd176b4da06a 100644 (file)
@@ -446,6 +446,15 @@ void GraphBuilder::visitCallSite(CallSite CS) {
         if (DSNode *N = RetNH.getNode())
           N->setModifiedMarker();
         return;
+      } else if (F->getName() == "memmove") {
+        // Merge the first & second arguments with the result, and mark the
+        // memory read and modified.
+        DSNodeHandle RetNH = getValueDest(*CS.getInstruction());
+        RetNH.mergeWith(getValueDest(**CS.arg_begin()));
+        RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
+        if (DSNode *N = RetNH.getNode())
+          N->setModifiedMarker()->setReadMarker();
+        return;
       } else if (F->getName() == "bzero") {
         // Mark the memory modified.
         DSNodeHandle H = getValueDest(**CS.arg_begin());