diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp index 944f532407a..31a3e02b367 100644 --- a/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/lib/Analysis/MemoryDependenceAnalysis.cpp @@ -67,6 +67,9 @@ Instruction* MemoryDependenceAnalysis::getCallSiteDependency(CallSite C, bool lo pointerSize = C->getZExtValue(); else pointerSize = ~0UL; + } else if (VAArgInst* V = dyn_cast(QI)) { + pointer = V->getOperand(0); + pointerSize = TD.getTypeSize(V->getType()); } else if (FreeInst* F = dyn_cast(QI)) { pointer = F->getPointerOperand(); @@ -130,6 +133,9 @@ Instruction* MemoryDependenceAnalysis::getDependency(Instruction* query, dependee = L->getPointerOperand(); dependeeSize = TD.getTypeSize(L->getType()); queryIsVolatile = L->isVolatile(); + } else if (VAArgInst* V = dyn_cast(QI)) { + dependee = V->getOperand(0); + dependeeSize = TD.getTypeSize(V->getType()); } else if (FreeInst* F = dyn_cast(QI)) { dependee = F->getPointerOperand(); @@ -176,6 +182,9 @@ Instruction* MemoryDependenceAnalysis::getDependency(Instruction* query, pointerSize = C->getZExtValue(); else pointerSize = ~0UL; + } else if (VAArgInst* V = dyn_cast(QI)) { + pointer = V->getOperand(0); + pointerSize = TD.getTypeSize(V->getType()); } else if (FreeInst* F = dyn_cast(QI)) { pointer = F->getPointerOperand();