From b9db52dcbcf4279270eab972f3d560b4e5654260 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 6 Aug 2010 18:11:28 +0000 Subject: [PATCH] Be more conservative in the face of volatile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110456 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/AliasAnalysis.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp index 6dd79b47b95..0b15334e145 100644 --- a/lib/Analysis/AliasAnalysis.cpp +++ b/lib/Analysis/AliasAnalysis.cpp @@ -195,31 +195,31 @@ AliasAnalysis::getModRefBehavior(const Function *F) { AliasAnalysis::ModRefResult AliasAnalysis::getModRefInfo(const LoadInst *L, const Value *P, unsigned Size) { + // Be conservative in the face of volatile. + if (L->isVolatile()) + return ModRef; + // If the load address doesn't alias the given address, it doesn't read // or write the specified memory. if (!alias(L->getOperand(0), getTypeStoreSize(L->getType()), P, Size)) return NoModRef; - // Be conservative in the face of volatile. - if (L->isVolatile()) - return ModRef; - // Otherwise, a load just reads. return Ref; } AliasAnalysis::ModRefResult AliasAnalysis::getModRefInfo(const StoreInst *S, const Value *P, unsigned Size) { + // Be conservative in the face of volatile. + if (S->isVolatile()) + return ModRef; + // If the store address cannot alias the pointer in question, then the // specified memory cannot be modified by the store. if (!alias(S->getOperand(1), getTypeStoreSize(S->getOperand(0)->getType()), P, Size)) return NoModRef; - // Be conservative in the face of volatile. - if (S->isVolatile()) - return ModRef; - // If the pointer is a pointer to constant memory, then it could not have been // modified by this store. if (pointsToConstantMemory(P))