diff options
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 31611df..86a2edb 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -839,6 +839,10 @@ MemoryEffects BasicAAResult::getMemoryEffects(const CallBase *Call, FuncME |= MemoryEffects::readOnly(); if (Call->hasClobberingOperandBundles()) FuncME |= MemoryEffects::writeOnly(); + if (Call->isVolatile()) { + // Volatile operations also access inaccessible memory. + FuncME |= MemoryEffects::inaccessibleMemOnly(); + } Min &= FuncME; } |