Handle vaarg instructions correctly.

llvm-svn: 38504
diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
index 944f532..31a3e02 100644
--- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -67,6 +67,9 @@
         pointerSize = C->getZExtValue();
       else
         pointerSize = ~0UL;
+    } else if (VAArgInst* V = dyn_cast<VAArgInst>(QI)) {
+      pointer = V->getOperand(0);
+      pointerSize = TD.getTypeSize(V->getType());
     } else if (FreeInst* F = dyn_cast<FreeInst>(QI)) {
       pointer = F->getPointerOperand();
       
@@ -130,6 +133,9 @@
     dependee = L->getPointerOperand();
     dependeeSize = TD.getTypeSize(L->getType());
     queryIsVolatile = L->isVolatile();
+  } else if (VAArgInst* V = dyn_cast<VAArgInst>(QI)) {
+    dependee = V->getOperand(0);
+    dependeeSize = TD.getTypeSize(V->getType());
   } else if (FreeInst* F = dyn_cast<FreeInst>(QI)) {
     dependee = F->getPointerOperand();
     
@@ -176,6 +182,9 @@
         pointerSize = C->getZExtValue();
       else
         pointerSize = ~0UL;
+    } else if (VAArgInst* V = dyn_cast<VAArgInst>(QI)) {
+      pointer = V->getOperand(0);
+      pointerSize = TD.getTypeSize(V->getType());
     } else if (FreeInst* F = dyn_cast<FreeInst>(QI)) {
       pointer = F->getPointerOperand();