Index: lib/Analysis/AliasAnalysis.cpp =================================================================== --- lib/Analysis/AliasAnalysis.cpp +++ lib/Analysis/AliasAnalysis.cpp @@ -276,7 +276,7 @@ ModRefInfo AAResults::getModRefInfo(const AtomicCmpXchgInst *CX, const MemoryLocation &Loc) { // Acquire/Release cmpxchg has properties that matter for arbitrary addresses. - if (CX->getSuccessOrdering() > Monotonic) + if (CX->getSuccessOrdering() > Monotonic || CX->isVolatile()) return MRI_ModRef; // If the cmpxchg address does not alias the location, it does not access it. @@ -289,7 +289,7 @@ ModRefInfo AAResults::getModRefInfo(const AtomicRMWInst *RMW, const MemoryLocation &Loc) { // Acquire/Release atomicrmw has properties that matter for arbitrary addresses. - if (RMW->getOrdering() > Monotonic) + if (RMW->getOrdering() > Monotonic || RMW->isVolatile()) return MRI_ModRef; // If the atomicrmw address does not alias the location, it does not access it.