From 06b6e82f79a30e0cc16c736875069f0f64cc400a Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 10 Jul 2007 18:43:15 +0000 Subject: [PATCH] Handle vaarg instructions correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38504 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/MemoryDependenceAnalysis.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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(); -- 2.34.1